├── .editorconfig ├── .github └── FUNDING.yml ├── .gitignore ├── LICENSE ├── README.md ├── components ├── ChromeIcon.tsx ├── Coords.tsx ├── FirefoxIcon.tsx ├── InstallExtension.tsx ├── NoSSR.tsx ├── SettingsIcon.tsx └── WeatherSettings.tsx ├── extension ├── assets │ ├── icon48.png │ └── icon96.png ├── manifest.chrome.json └── manifest.firefox.json ├── next-env.d.ts ├── next.config.js ├── package.json ├── pages ├── _app.tsx ├── _document.tsx └── index.tsx ├── pnpm-lock.yaml ├── tsconfig.json ├── types └── Weather.ts └── utils └── geolocation.ts /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*.ts] 4 | indent_style = space 5 | indent_size = 2 -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: [dustinrouillard] 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # next.js 12 | /.next/ 13 | /out/ 14 | 15 | # production 16 | /dist 17 | /build 18 | 19 | # misc 20 | .DS_Store 21 | 22 | # debug 23 | npm-debug.log* 24 | yarn-debug.log* 25 | yarn-error.log* 26 | 27 | # local env files 28 | .env.local 29 | .env.development.local 30 | .env.test.local 31 | .env.production.local 32 | 33 | .vercel 34 | 35 | web-ext-artifacts/ 36 | extension/html -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License Copyright (c) 2021 Dustin Rouillard 2 | 3 | Permission is hereby granted, 4 | free of charge, to any person obtaining a copy of this software and associated 5 | documentation files (the "Software"), to deal in the Software without 6 | restriction, including without limitation the rights to use, copy, modify, merge, 7 | publish, distribute, sublicense, and/or sell copies of the Software, and to 8 | permit persons to whom the Software is furnished to do so, subject to the 9 | following conditions: 10 | 11 | The above copyright notice and this permission notice 12 | (including the next paragraph) shall be included in all copies or substantial 13 | portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF 16 | ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 17 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO 18 | EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR 19 | OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 20 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Tabatha New Tab 2 | 3 | This is a Firefox addon and a Chrome extension that replaces the current new tab and homepage with a sleek flat black design. 4 | 5 | The settings modal is a bit crude, but it gets the job done for enabling/disabling and configuring the temperature display. 6 | 7 | ## View a demo 8 | 9 | There is a hosted copy of the same application that runs in the extension hosted on [tab.dstn.to](https://tab.dstn.to) if you would like to see what it looks like. 10 | 11 | ## Preview 12 | 13 | Here is the screenshots, using Tabatha, as well as my minimal [Lights Out](https://dstn.to/lights-out-firefox) theme (Chrome version of Lights Out theme coming soon) 14 | 15 | Firefox | Chrome 16 | :-------------------------:|:-------------------------: 17 | ![Screenshot of New Tab page in Firefox](https://dustin.pics/2fd4c33b00bb5836.png) | ![Screenshot of New Tab page in Chrome](https://dustin.pics/c93710809bc6684e.png) 18 | 19 | ## Downloads 20 | 21 | **Firefox** : [Addon Store](https://dstn.to/tab-firefox)\ 22 | **Chrome** : [Chrome Webstore](https://dstn.to/tab-chrome) 23 | 24 | ## Running 25 | 26 | To run the extension yourself clone it, install the packages by running `yarn` in the project root, then run `yarn dev` and it will proceed to run the extension in a test firefox instance. 27 | -------------------------------------------------------------------------------- /components/ChromeIcon.tsx: -------------------------------------------------------------------------------- 1 | export function ChromeIcon(props) { 2 | return ( 3 | 27 | ); 28 | } 29 | -------------------------------------------------------------------------------- /components/Coords.tsx: -------------------------------------------------------------------------------- 1 | import { useState } from "react"; 2 | import styled from "styled-components"; 3 | 4 | export function Coordnates(props: { coords: { lat: number; lon: number } }) { 5 | const [showingCoords, setShowingCoords] = useState(false); 6 | 7 | return ( 8 | 9 | {props.coords.lat && props.coords.lon 10 | ? `Current location is set.` 11 | : "Current location is not set."} 12 | {showingCoords && ` (${props.coords.lat}, ${props.coords.lon})`} 13 | {props.coords.lat && props.coords.lon ? ( 14 | setShowingCoords(!showingCoords)}> 15 | {showingCoords ? "Hide" : "Show"} 16 | 17 | ) : ( 18 | <> 19 | )} 20 | 21 | ); 22 | } 23 | 24 | const ShowButton = styled.p` 25 | margin: 0; 26 | margin-left: 5px; 27 | opacity: 0.5; 28 | user-select: none; 29 | 30 | :hover { 31 | opacity: 0.4; 32 | cursor: pointer; 33 | } 34 | `; 35 | 36 | const CoordsText = styled.p` 37 | display: flex; 38 | margin: 5px 0 0px 0; 39 | `; 40 | -------------------------------------------------------------------------------- /components/FirefoxIcon.tsx: -------------------------------------------------------------------------------- 1 | export function FirefoxIcon(props) { 2 | return ( 3 | 24 | ); 25 | } 26 | -------------------------------------------------------------------------------- /components/InstallExtension.tsx: -------------------------------------------------------------------------------- 1 | import { useState } from "react"; 2 | import styled from "styled-components"; 3 | import { ChromeIcon } from "./ChromeIcon"; 4 | import { FirefoxIcon } from "./FirefoxIcon"; 5 | 6 | export function ExtensionInstall() { 7 | const [browser] = useState<"chrome" | "firefox">(() => { 8 | if (typeof window == "undefined") return "firefox"; 9 | return typeof (window as any).InstallTrigger !== "undefined" 10 | ? "firefox" 11 | : "chrome"; 12 | }); 13 | 14 | function openExtension(browser: "chrome" | "firefox") { 15 | window.open(`https://dstn.to/tab-${browser}`, "_blank"); 16 | return; 17 | } 18 | 19 | return ( 20 | 21 | 22 | Download the extension 23 | 24 | Using the extension will make the experience better, and removes this 25 | message 26 | 27 | openExtension(browser)}> 28 | 29 | {browser == "chrome" ? : } 30 | {" "} 31 | Download for {browser == "chrome" ? "Chrome" : "Firefox"} 32 | 33 | 35 | openExtension(browser == "chrome" ? "firefox" : "chrome") 36 | } 37 | > 38 | Using {browser == "chrome" ? "Firefox" : "Chrome"}? 39 | 40 | 41 | 42 | ); 43 | } 44 | 45 | const Container = styled.div` 46 | display: flex; 47 | flex-direction: column; 48 | 49 | @media (prefers-color-scheme: light) { 50 | background-color: #d4d4d4; 51 | } 52 | 53 | @media (prefers-color-scheme: dark) { 54 | background-color: #271f1f; 55 | } 56 | 57 | background-color: #271f1f; 58 | border-radius: 0 0 10px 10px; 59 | 60 | width: fit-content; 61 | height: fit-content; 62 | 63 | align-items: center; 64 | 65 | padding: 30px; 66 | `; 67 | 68 | const Outter = styled.div` 69 | height: 100%; 70 | width: 100%; 71 | display: flex; 72 | position: absolute; 73 | justify-content: center; 74 | `; 75 | 76 | const Title = styled.h3` 77 | @media (prefers-color-scheme: light) { 78 | color: #000000; 79 | } 80 | 81 | @media (prefers-color-scheme: dark) { 82 | color: #ffffff; 83 | } 84 | 85 | color: #ffffff; 86 | margin: 0; 87 | margin-bottom: 10px; 88 | `; 89 | 90 | const Subtitle = styled.p` 91 | @media (prefers-color-scheme: light) { 92 | color: #000000; 93 | } 94 | 95 | @media (prefers-color-scheme: dark) { 96 | color: #ffffff; 97 | } 98 | 99 | margin: 0; 100 | `; 101 | 102 | const DownloadButton = styled.div` 103 | width: fit-content; 104 | padding: 15px; 105 | height: 40px; 106 | margin-top: 20px; 107 | background-color: #3389ec; 108 | @media (prefers-color-scheme: light) { 109 | color: #000000; 110 | } 111 | 112 | @media (prefers-color-scheme: dark) { 113 | color: #ffffff; 114 | } 115 | 116 | border-radius: 10px; 117 | 118 | display: flex; 119 | flex-direction: row; 120 | 121 | justify-content: center; 122 | align-items: center; 123 | 124 | :hover { 125 | filter: brightness(50%); 126 | cursor: pointer; 127 | } 128 | `; 129 | 130 | const OtherBrowser = styled.p` 131 | margin: 0; 132 | margin-top: 5px; 133 | font-size: 15px; 134 | opacity: 0.6; 135 | 136 | @media (prefers-color-scheme: light) { 137 | color: #000000; 138 | } 139 | 140 | @media (prefers-color-scheme: dark) { 141 | color: #ffffff; 142 | } 143 | 144 | :hover { 145 | filter: brightness(50%); 146 | cursor: pointer; 147 | } 148 | `; 149 | 150 | const IconWrapper = styled.div` 151 | justify-content: center; 152 | align-items: center; 153 | display: flex; 154 | margin-right: 5px; 155 | font-size: 18px; 156 | `; 157 | -------------------------------------------------------------------------------- /components/NoSSR.tsx: -------------------------------------------------------------------------------- 1 | import dynamic from "next/dynamic"; 2 | import React from "react"; 3 | 4 | const NoSsr = (props) => {props.children}; 5 | 6 | export default dynamic(() => Promise.resolve(NoSsr), { 7 | ssr: false, 8 | }); 9 | -------------------------------------------------------------------------------- /components/SettingsIcon.tsx: -------------------------------------------------------------------------------- 1 | export function SettingsIcon(props) { 2 | return ( 3 | 15 | 16 | 17 | 18 | ); 19 | } 20 | -------------------------------------------------------------------------------- /components/WeatherSettings.tsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | 3 | import styled from "styled-components"; 4 | import { Coordnates } from "./Coords"; 5 | 6 | export default function WeatherSettings({ 7 | closeMenu, 8 | coords, 9 | temperatureEnabled, 10 | setTemperatureEnabled, 11 | updateGeolocation, 12 | tempUnit, 13 | setTempUnit, 14 | }: { 15 | coords: { lat: number; lon: number }; 16 | temperatureEnabled: boolean; 17 | setTemperatureEnabled: (value: boolean) => void; 18 | updateGeolocation: () => void; 19 | tempUnit: "F" | "C"; 20 | setTempUnit: (unit: "F" | "C") => void; 21 | closeMenu: () => void; 22 | }) { 23 | function switchUnit(unit: "F" | "C") { 24 | setTempUnit(unit); 25 | localStorage.setItem("tabatha_temperature_unit", unit); 26 | } 27 | 28 | function toggleTemperature(value: boolean) { 29 | setTemperatureEnabled(value); 30 | localStorage.setItem("tabatha_weather_enabled", value.toString()); 31 | } 32 | 33 | return ( 34 | 35 | 36 | Weather Settings 37 | X 38 | 39 | 40 | 41 | 42 | Current Location 43 | 44 | 45 | 46 | 47 | 48 | updateGeolocation()} blue> 49 | Find me 50 | 51 | 52 | 53 | 54 | Temperature Unit 55 | 56 | switchUnit(e.target.value as "F" | "C")} 59 | > 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | {temperatureEnabled ? "Disable" : "Enable"} Temperature 68 | 69 | 70 | toggleTemperature(!temperatureEnabled)} 72 | red={temperatureEnabled} 73 | blue={!temperatureEnabled} 74 | > 75 | {temperatureEnabled ? "Disable" : "Enable"} 76 | 77 | 78 | 79 | 80 | 81 | ); 82 | } 83 | 84 | const Container = styled.div` 85 | @media (prefers-color-scheme: light) { 86 | background-color: #d4d4d4; 87 | } 88 | 89 | @media (prefers-color-scheme: dark) { 90 | background-color: rgb(27, 29, 30); 91 | } 92 | width: 500px; 93 | height: auto; 94 | border-radius: 8px; 95 | margin: auto; 96 | padding: 15px; 97 | z-index: 100; 98 | `; 99 | 100 | const HeadingText = styled.h2` 101 | margin: 0; 102 | `; 103 | 104 | const Heading = styled.div` 105 | padding: 10px; 106 | justify-content: space-between; 107 | 108 | display: flex; 109 | `; 110 | 111 | const UnitOptions = styled.select` 112 | display: flex; 113 | flex-direction: row; 114 | justify-content: space-between; 115 | 116 | font-size: 15px; 117 | width: 80px; 118 | height: 25px; 119 | border-radius: 7px; 120 | padding: 1px; 121 | text-align: center; 122 | border: none; 123 | margin-right: 10px; 124 | color: #ffffff; 125 | background-color: #1d1d1d; 126 | `; 127 | 128 | const UnitOption = styled.option``; 129 | 130 | const CloseButton = styled.h2` 131 | display: flex; 132 | margin: 0; 133 | align-items: center; 134 | font-size: 20px; 135 | padding-right: 10px; 136 | opacity: 0.3; 137 | 138 | :hover { 139 | opacity: 0.75; 140 | cursor: pointer; 141 | } 142 | `; 143 | 144 | const Sections = styled.div` 145 | display: flex; 146 | flex-direction: column; 147 | `; 148 | 149 | const RightSection = styled.div` 150 | display: flex; 151 | flex-direction: column; 152 | `; 153 | 154 | const LeftSection = styled.div` 155 | display: flex; 156 | flex-direction: column; 157 | `; 158 | 159 | const TemperatureUnit = styled.div` 160 | display: flex; 161 | flex-direction: row; 162 | align-items: center; 163 | justify-content: space-between; 164 | `; 165 | 166 | const SetLocation = styled.div` 167 | display: flex; 168 | flex-direction: row; 169 | align-items: center; 170 | justify-content: space-between; 171 | `; 172 | 173 | const OptionTitle = styled.h3` 174 | font-size: 18px; 175 | margin: 10px; 176 | font-weight: normal; 177 | `; 178 | 179 | const OptionSubtitle = styled.h3` 180 | font-size: 12px; 181 | margin: 10px; 182 | margin-top: -10px; 183 | font-weight: normal; 184 | `; 185 | 186 | const ToggleTemperature = styled.div` 187 | display: flex; 188 | flex-direction: row; 189 | align-items: center; 190 | justify-content: space-between; 191 | `; 192 | 193 | const ToggleButton = styled.button<{ blue?: boolean; red?: boolean }>` 194 | width: 80px; 195 | height: 25px; 196 | border-radius: 20px; 197 | color: #ffffff; 198 | background-color: ${(props) => 199 | props.blue ? "blue" : props.red ? "red" : "gray"}; 200 | border: none; 201 | margin-right: 10px; 202 | `; 203 | -------------------------------------------------------------------------------- /extension/assets/icon48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dustinrouillard/tabatha/1c2691afb5fe7df650ab6921dab7661a0ac18b71/extension/assets/icon48.png -------------------------------------------------------------------------------- /extension/assets/icon96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dustinrouillard/tabatha/1c2691afb5fe7df650ab6921dab7661a0ac18b71/extension/assets/icon96.png -------------------------------------------------------------------------------- /extension/manifest.chrome.json: -------------------------------------------------------------------------------- 1 | { 2 | "manifest_version": 2, 3 | "name": "Tabatha", 4 | "version": "0.2.0", 5 | "author": "Dustin Rouillard", 6 | "chrome_url_overrides": { 7 | "newtab": "index.html" 8 | }, 9 | "description": "Sleek & dark new tab replacement", 10 | "icons": { 11 | "48": "assets/icon48.png", 12 | "96": "assets/icon96.png" 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /extension/manifest.firefox.json: -------------------------------------------------------------------------------- 1 | { 2 | "manifest_version": 2, 3 | "name": "Tabatha", 4 | "version": "0.2.0", 5 | "author": "Dustin Rouillard", 6 | "chrome_url_overrides": { 7 | "newtab": "index.html" 8 | }, 9 | "chrome_settings_overrides": { 10 | "homepage": "index.html" 11 | }, 12 | "description": "Sleek & dark new tab replacement", 13 | "icons": { 14 | "48": "assets/icon48.png", 15 | "96": "assets/icon96.png" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /next-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | 4 | // NOTE: This file should not be edited 5 | // see https://nextjs.org/docs/pages/api-reference/config/typescript for more information. 6 | -------------------------------------------------------------------------------- /next.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | output: "export", 3 | distDir: "extension/html", 4 | }; 5 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "tabatha", 3 | "version": "0.2.0", 4 | "private": true, 5 | "scripts": { 6 | "serve": "next dev", 7 | "build": "next build", 8 | "start": "next start", 9 | "extension": "next build && mv extension/html/_next extension/html/next && cp -R extension/assets extension/html && sed -i '' -e 's/\\/_next/\\/next/g' extension/html/*.html && sed -i '' -e 's/\\/_next/\\/next/g' extension/html/next/static/chunks/*.js", 10 | "dev:chrome": "pnpm extension && cp extension/manifest.chrome.json extension/html/manifest.json && web-ext run -t chromium", 11 | "dev:firefox": "pnpm extension && cp extension/manifest.firefox.json extension/html/manifest.json && web-ext run", 12 | "dev": "pnpm dev:firefox", 13 | "pg:chrome": "cp extension/manifest.chrome.json extension/html/manifest.json && web-ext build --overwrite-dest -a web-ext-artifacts/chrome", 14 | "pg:firefox": "cp extension/manifest.firefox.json extension/html/manifest.json && web-ext build --overwrite-dest -a web-ext-artifacts/firefox", 15 | "pg": "pnpm extension && pnpm pg:chrome && pnpm pg:firefox && rm -rf extension/html" 16 | }, 17 | "dependencies": { 18 | "lodash.debounce": "^4.0.8", 19 | "next": "^15.1.7", 20 | "react": "19.0.0", 21 | "react-contexify": "^6.0.0", 22 | "react-dom": "19.0.0", 23 | "styled-components": "^6.1.15" 24 | }, 25 | "devDependencies": { 26 | "@types/lodash.debounce": "^4.0.9", 27 | "@types/node": "^22.13.4", 28 | "@types/react": "^19.0.8", 29 | "@types/styled-components": "^5.1.34", 30 | "typescript": "^5.7.3", 31 | "web-ext": "^8.4.0" 32 | }, 33 | "webExt": { 34 | "sourceDir": "extension/html", 35 | "ignoreFiles": [ 36 | "package.json", 37 | "pnpm-lock.yaml", 38 | "manifest.chrome.json", 39 | "manifest.firefox.json" 40 | ] 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /pages/_app.tsx: -------------------------------------------------------------------------------- 1 | import { createGlobalStyle } from "styled-components"; 2 | 3 | const GlobalStyle = createGlobalStyle` 4 | html, 5 | body { 6 | background-color: #000000; 7 | color: #ffffff; 8 | padding: 0; 9 | margin: 0; 10 | font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, 11 | Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, 12 | sans-serif; 13 | } 14 | 15 | @media (prefers-color-scheme: light) { 16 | body { 17 | background-color: #ffffff; 18 | color: #000000; 19 | } 20 | } 21 | 22 | @media (prefers-color-scheme: dark) { 23 | body { 24 | background-color: #000000; 25 | color: #ffffff; 26 | } 27 | } 28 | 29 | a { 30 | color: inherit; 31 | text-decoration: none; 32 | 33 | :hover, :focus, :active { 34 | text-decoration: underline; 35 | } 36 | } 37 | 38 | * { 39 | box-sizing: border-box; 40 | transition: all 150ms linear; 41 | } 42 | `; 43 | 44 | export default function App({ Component, pageProps }) { 45 | return ( 46 | <> 47 | 48 | 49 | 50 | ); 51 | } 52 | -------------------------------------------------------------------------------- /pages/_document.tsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import Document, { Head, Html, Main, NextScript } from "next/document"; 3 | import { ServerStyleSheet } from "styled-components"; 4 | 5 | export default class MyDocument extends Document { 6 | static async getInitialProps(ctx) { 7 | const sheet = new ServerStyleSheet(); 8 | const originalRenderPage = ctx.renderPage; 9 | 10 | try { 11 | // wraps the collectStyles provider around our . 12 | ctx.renderPage = () => 13 | originalRenderPage({ 14 | enhanceApp: (App) => (props) => 15 | sheet.collectStyles(), 16 | }); 17 | 18 | // extract the initial props that may be present. 19 | const initialProps = await Document.getInitialProps(ctx); 20 | 21 | // returning the original props together with our styled components. 22 | return { 23 | ...initialProps, 24 | styles: ( 25 | <> 26 | {initialProps.styles} 27 | {sheet.getStyleElement()} 28 | 29 | ), 30 | }; 31 | } finally { 32 | sheet.seal(); 33 | } 34 | } 35 | 36 | render() { 37 | return ( 38 | 39 | {this.props.styleTags} 40 | 41 |
42 | 43 | 44 | 45 | ); 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /pages/index.tsx: -------------------------------------------------------------------------------- 1 | import Head from "next/head"; 2 | 3 | import { useState, useEffect } from "react"; 4 | 5 | import styled from "styled-components"; 6 | import { ExtensionInstall } from "../components/InstallExtension"; 7 | import NoSSR from "../components/NoSSR"; 8 | import { SettingsIcon } from "../components/SettingsIcon"; 9 | import WeatherSettings from "../components/WeatherSettings"; 10 | import { Weather } from "../types/Weather"; 11 | import { getUsersGeolocation } from "../utils/geolocation"; 12 | 13 | const days = [ 14 | "Sunday", 15 | "Monday", 16 | "Tuesday", 17 | "Wednesday", 18 | "Thursday", 19 | "Friday", 20 | "Saturday", 21 | ]; 22 | 23 | function getTemperatureEnabled(): boolean { 24 | if (typeof window == "undefined") return; 25 | if (!localStorage.getItem("tabatha_weather_enabled")) 26 | localStorage.setItem("tabatha_weather_enabled", "false"); 27 | return localStorage.getItem("tabatha_weather_enabled") === "true"; 28 | } 29 | 30 | function getCoords(): { lat: number; lon: number } { 31 | if (typeof window == "undefined") return; 32 | if (!localStorage.getItem("tabatha_weather_coords")) 33 | localStorage.setItem("tabatha_weather_coords", JSON.stringify({})); 34 | return JSON.parse(localStorage.getItem("tabatha_weather_coords")); 35 | } 36 | 37 | function getTemperatureUnit(): "F" | "C" { 38 | if (typeof window == "undefined") return; 39 | if (!localStorage.getItem("tabatha_temperature_unit")) 40 | localStorage.setItem("tabatha_temperature_unit", "F"); 41 | return localStorage.getItem("tabatha_temperature_unit") as "F" | "C"; 42 | } 43 | 44 | function getTimeMessage(date?: Date): string { 45 | if (!date) date = new Date(); 46 | return date.getHours() >= 12 && date.getHours() < 20 47 | ? "Good afternoon." 48 | : date.getHours() >= 20 || date.getHours() < 4 49 | ? "Good night." 50 | : date.getHours() < 12 51 | ? "Good morning." 52 | : "Good evening."; 53 | } 54 | 55 | let tempTimeout; 56 | 57 | export default function Home() { 58 | const [greeting, setGreeting] = useState(getTimeMessage()); 59 | 60 | const [time, setTime] = useState( 61 | new Date().toLocaleTimeString([], { hour: "2-digit", minute: "2-digit" }) 62 | ); 63 | const [date, setDate] = useState(days[new Date().getDay().toString()]); 64 | 65 | const [coords, setCoords] = useState(getCoords()); 66 | const [temperatureEnabled, setTemperatureEnabled] = useState( 67 | getTemperatureEnabled() 68 | ); 69 | const [temperature, setTemperature] = useState("0"); 70 | const [tempUnit, setTempUnit] = useState(getTemperatureUnit()); 71 | 72 | const [weatherSettingsVisible, showWeatherSettings] = useState(false); 73 | 74 | async function getTemperature({ lat, lon }: { lat: number; lon: number }) { 75 | if (!lat || !lon || !temperatureEnabled) return; 76 | const data: Weather = await fetch( 77 | `https://weather.dstn.to/coords/${lat}/${lon}` 78 | ).then((r) => r.json()); 79 | const temp = 80 | tempUnit == "F" 81 | ? ((data.temperature.current - 273.15) * 9) / 5 + 32 82 | : tempUnit == "C" 83 | ? data.temperature.current - 273.15 84 | : data.temperature.current; 85 | setTemperature(temp.toFixed()); 86 | } 87 | 88 | useEffect(() => { 89 | const int = setInterval(() => { 90 | const currentDate = new Date(); 91 | setTime( 92 | currentDate.toLocaleTimeString([], { 93 | hour: "2-digit", 94 | minute: "2-digit", 95 | }) 96 | ); 97 | setGreeting(getTimeMessage(currentDate)); 98 | 99 | setDate(days[currentDate.getDay().toString()]); 100 | }, 1000); 101 | 102 | return () => { 103 | clearInterval(int); 104 | }; 105 | }, []); 106 | 107 | useEffect(() => { 108 | getTemperature(coords); 109 | }, [tempUnit, temperatureEnabled]); 110 | 111 | async function updateGeolocation() { 112 | const location = await getUsersGeolocation(); 113 | setCoords(location); 114 | setTemperatureEnabled(true); 115 | localStorage.setItem("tabatha_weather_enabled", "true"); 116 | } 117 | 118 | function changeTemp({ lat, lon }) { 119 | if (lat && lon) { 120 | if (tempTimeout) clearInterval(tempTimeout); 121 | tempTimeout = setInterval(async () => { 122 | getTemperature({ lat, lon }); 123 | }, 30000); 124 | getTemperature({ lat, lon }); 125 | } 126 | } 127 | 128 | useEffect(() => { 129 | changeTemp(coords); 130 | }, [coords]); 131 | 132 | return ( 133 | <> 134 | {weatherSettingsVisible && ( 135 | <> 136 | showWeatherSettings(false)} /> 137 | 138 | showWeatherSettings(false)} 140 | coords={coords} 141 | temperatureEnabled={temperatureEnabled} 142 | setTemperatureEnabled={setTemperatureEnabled} 143 | updateGeolocation={updateGeolocation} 144 | tempUnit={tempUnit} 145 | setTempUnit={setTempUnit} 146 | /> 147 | 148 | 149 | )} 150 | 151 | 152 | Tabatha • New Tab 153 | 154 | 155 | 156 | 157 | {typeof location != "undefined" && 158 | new URL(location.href).pathname != "/index.html" && ( 159 | 160 | )} 161 | 162 | 163 | showWeatherSettings(true)} /> 164 | 165 | 166 | {temperatureEnabled && temperature != "0" && ( 167 | 168 | {temperature}° {tempUnit} 169 | 170 | )} 171 | 172 | 173 | 174 | {greeting} 175 | 176 | 177 | {date} {" "} 178 | 179 | 180 | 181 | 182 | 183 | 184 | ); 185 | } 186 | 187 | const Container = styled.div` 188 | min-height: 100vh; 189 | display: flex; 190 | `; 191 | 192 | const Content = styled.div` 193 | display: flex; 194 | flex-direction: column; 195 | `; 196 | 197 | const TopRightContent = styled.div` 198 | display: flex; 199 | flex-direction: column; 200 | position: absolute; 201 | margin: 50px; 202 | right: 0; 203 | top: 0; 204 | `; 205 | 206 | const TopLeftContent = styled.div` 207 | display: flex; 208 | flex-direction: column; 209 | position: absolute; 210 | margin: 50px; 211 | left: 0; 212 | top: 0; 213 | `; 214 | 215 | const BottomRightContent = styled.div` 216 | display: flex; 217 | flex-direction: column; 218 | position: absolute; 219 | margin: 50px; 220 | right: 0; 221 | bottom: 0; 222 | `; 223 | 224 | const Title = styled.h1` 225 | margin: 0; 226 | line-height: 1.15; 227 | font-size: 3.5rem; 228 | text-align: right; 229 | `; 230 | 231 | const Temperature = styled.p` 232 | margin: 0; 233 | font-weight: bold; 234 | line-height: 1.5; 235 | font-size: 1.5rem; 236 | opacity: 0.5; 237 | `; 238 | 239 | const Time = styled.p` 240 | margin: 0; 241 | font-weight: bold; 242 | text-align: right; 243 | line-height: 1.5; 244 | font-size: 2rem; 245 | `; 246 | 247 | const CurrentDate = styled.p` 248 | margin: 0; 249 | font-weight: bold; 250 | text-align: right; 251 | line-height: 1.5; 252 | font-size: 2rem; 253 | `; 254 | 255 | const Seperator = styled.p` 256 | margin: 0; 257 | font-size: 1.2rem; 258 | padding-left: 10px; 259 | padding-right: 10px; 260 | font-weight: bold; 261 | text-align: right; 262 | `; 263 | 264 | const ContentBody = styled.div<{ right?: boolean }>` 265 | display: flex; 266 | flex-direction: row; 267 | align-items: center; 268 | justify-content: flex-end; 269 | `; 270 | 271 | const ContentHeading = styled.div` 272 | display: flex; 273 | flex-direction: column; 274 | `; 275 | 276 | const Darken = styled.div` 277 | background-color: #000000c3; 278 | height: 100%; 279 | width: 100%; 280 | position: absolute; 281 | z-index: 10; 282 | display: flex; 283 | `; 284 | 285 | const Settings = styled(SettingsIcon)` 286 | opacity: 0.3; 287 | 288 | :hover { 289 | opacity: 0.75; 290 | text-decoration: underline; 291 | cursor: pointer; 292 | } 293 | `; 294 | 295 | const ModalWrapped = styled.div` 296 | height: 100%; 297 | width: 100%; 298 | display: flex; 299 | position: absolute; 300 | `; 301 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '9.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | importers: 8 | 9 | .: 10 | dependencies: 11 | lodash.debounce: 12 | specifier: ^4.0.8 13 | version: 4.0.8 14 | next: 15 | specifier: ^15.1.7 16 | version: 15.1.7(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 17 | react: 18 | specifier: 19.0.0 19 | version: 19.0.0 20 | react-contexify: 21 | specifier: ^6.0.0 22 | version: 6.0.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 23 | react-dom: 24 | specifier: 19.0.0 25 | version: 19.0.0(react@19.0.0) 26 | styled-components: 27 | specifier: ^6.1.15 28 | version: 6.1.15(react-dom@19.0.0(react@19.0.0))(react@19.0.0) 29 | devDependencies: 30 | '@types/lodash.debounce': 31 | specifier: ^4.0.9 32 | version: 4.0.9 33 | '@types/node': 34 | specifier: ^22.13.4 35 | version: 22.13.4 36 | '@types/react': 37 | specifier: ^19.0.8 38 | version: 19.0.8 39 | '@types/styled-components': 40 | specifier: ^5.1.34 41 | version: 5.1.34 42 | typescript: 43 | specifier: ^5.7.3 44 | version: 5.7.3 45 | web-ext: 46 | specifier: ^8.4.0 47 | version: 8.4.0(safe-compare@1.1.4) 48 | 49 | packages: 50 | 51 | '@babel/code-frame@7.26.2': 52 | resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} 53 | engines: {node: '>=6.9.0'} 54 | 55 | '@babel/helper-validator-identifier@7.25.9': 56 | resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} 57 | engines: {node: '>=6.9.0'} 58 | 59 | '@babel/runtime@7.26.7': 60 | resolution: {integrity: sha512-AOPI3D+a8dXnja+iwsUqGRjr1BbZIe771sXdapOtYI531gSqpi92vXivKcq2asu/DFpdl1ceFAKZyRzK2PCVcQ==} 61 | engines: {node: '>=6.9.0'} 62 | 63 | '@devicefarmer/adbkit-logcat@2.1.3': 64 | resolution: {integrity: sha512-yeaGFjNBc/6+svbDeul1tNHtNChw6h8pSHAt5D+JsedUrMTN7tla7B15WLDyekxsuS2XlZHRxpuC6m92wiwCNw==} 65 | engines: {node: '>= 4'} 66 | 67 | '@devicefarmer/adbkit-monkey@1.2.1': 68 | resolution: {integrity: sha512-ZzZY/b66W2Jd6NHbAhLyDWOEIBWC11VizGFk7Wx7M61JZRz7HR9Cq5P+65RKWUU7u6wgsE8Lmh9nE4Mz+U2eTg==} 69 | engines: {node: '>= 0.10.4'} 70 | 71 | '@devicefarmer/adbkit@3.3.8': 72 | resolution: {integrity: sha512-7rBLLzWQnBwutH2WZ0EWUkQdihqrnLYCUMaB44hSol9e0/cdIhuNFcqZO0xNheAU6qqHVA8sMiLofkYTgb+lmw==} 73 | engines: {node: '>= 0.10.4'} 74 | hasBin: true 75 | 76 | '@emnapi/runtime@1.3.1': 77 | resolution: {integrity: sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==} 78 | 79 | '@emotion/is-prop-valid@1.2.2': 80 | resolution: {integrity: sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw==} 81 | 82 | '@emotion/memoize@0.8.1': 83 | resolution: {integrity: sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==} 84 | 85 | '@emotion/unitless@0.8.1': 86 | resolution: {integrity: sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==} 87 | 88 | '@eslint-community/eslint-utils@4.4.1': 89 | resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==} 90 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 91 | peerDependencies: 92 | eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 93 | 94 | '@eslint-community/regexpp@4.12.1': 95 | resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} 96 | engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} 97 | 98 | '@eslint/eslintrc@2.1.4': 99 | resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} 100 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 101 | 102 | '@eslint/js@8.57.1': 103 | resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==} 104 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 105 | 106 | '@fluent/syntax@0.19.0': 107 | resolution: {integrity: sha512-5D2qVpZrgpjtqU4eNOcWGp1gnUCgjfM+vKGE2y03kKN6z5EBhtx0qdRFbg8QuNNj8wXNoX93KJoYb+NqoxswmQ==} 108 | engines: {node: '>=14.0.0', npm: '>=7.0.0'} 109 | 110 | '@fregante/relaxed-json@2.0.0': 111 | resolution: {integrity: sha512-PyUXQWB42s4jBli435TDiYuVsadwRHnMc27YaLouINktvTWsL3FcKrRMGawTayFk46X+n5bE23RjUTWQwrukWw==} 112 | engines: {node: '>= 0.10.0'} 113 | 114 | '@humanwhocodes/config-array@0.13.0': 115 | resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==} 116 | engines: {node: '>=10.10.0'} 117 | deprecated: Use @eslint/config-array instead 118 | 119 | '@humanwhocodes/module-importer@1.0.1': 120 | resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} 121 | engines: {node: '>=12.22'} 122 | 123 | '@humanwhocodes/object-schema@2.0.3': 124 | resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} 125 | deprecated: Use @eslint/object-schema instead 126 | 127 | '@img/sharp-darwin-arm64@0.33.5': 128 | resolution: {integrity: sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==} 129 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 130 | cpu: [arm64] 131 | os: [darwin] 132 | 133 | '@img/sharp-darwin-x64@0.33.5': 134 | resolution: {integrity: sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==} 135 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 136 | cpu: [x64] 137 | os: [darwin] 138 | 139 | '@img/sharp-libvips-darwin-arm64@1.0.4': 140 | resolution: {integrity: sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==} 141 | cpu: [arm64] 142 | os: [darwin] 143 | 144 | '@img/sharp-libvips-darwin-x64@1.0.4': 145 | resolution: {integrity: sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==} 146 | cpu: [x64] 147 | os: [darwin] 148 | 149 | '@img/sharp-libvips-linux-arm64@1.0.4': 150 | resolution: {integrity: sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==} 151 | cpu: [arm64] 152 | os: [linux] 153 | 154 | '@img/sharp-libvips-linux-arm@1.0.5': 155 | resolution: {integrity: sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==} 156 | cpu: [arm] 157 | os: [linux] 158 | 159 | '@img/sharp-libvips-linux-s390x@1.0.4': 160 | resolution: {integrity: sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==} 161 | cpu: [s390x] 162 | os: [linux] 163 | 164 | '@img/sharp-libvips-linux-x64@1.0.4': 165 | resolution: {integrity: sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==} 166 | cpu: [x64] 167 | os: [linux] 168 | 169 | '@img/sharp-libvips-linuxmusl-arm64@1.0.4': 170 | resolution: {integrity: sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==} 171 | cpu: [arm64] 172 | os: [linux] 173 | 174 | '@img/sharp-libvips-linuxmusl-x64@1.0.4': 175 | resolution: {integrity: sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==} 176 | cpu: [x64] 177 | os: [linux] 178 | 179 | '@img/sharp-linux-arm64@0.33.5': 180 | resolution: {integrity: sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==} 181 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 182 | cpu: [arm64] 183 | os: [linux] 184 | 185 | '@img/sharp-linux-arm@0.33.5': 186 | resolution: {integrity: sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==} 187 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 188 | cpu: [arm] 189 | os: [linux] 190 | 191 | '@img/sharp-linux-s390x@0.33.5': 192 | resolution: {integrity: sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==} 193 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 194 | cpu: [s390x] 195 | os: [linux] 196 | 197 | '@img/sharp-linux-x64@0.33.5': 198 | resolution: {integrity: sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==} 199 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 200 | cpu: [x64] 201 | os: [linux] 202 | 203 | '@img/sharp-linuxmusl-arm64@0.33.5': 204 | resolution: {integrity: sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==} 205 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 206 | cpu: [arm64] 207 | os: [linux] 208 | 209 | '@img/sharp-linuxmusl-x64@0.33.5': 210 | resolution: {integrity: sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==} 211 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 212 | cpu: [x64] 213 | os: [linux] 214 | 215 | '@img/sharp-wasm32@0.33.5': 216 | resolution: {integrity: sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==} 217 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 218 | cpu: [wasm32] 219 | 220 | '@img/sharp-win32-ia32@0.33.5': 221 | resolution: {integrity: sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==} 222 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 223 | cpu: [ia32] 224 | os: [win32] 225 | 226 | '@img/sharp-win32-x64@0.33.5': 227 | resolution: {integrity: sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==} 228 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 229 | cpu: [x64] 230 | os: [win32] 231 | 232 | '@mdn/browser-compat-data@5.6.31': 233 | resolution: {integrity: sha512-E/X4YlErVjBCMvaJbqD2Jb0B/Z+TQJyw4vN6q98iit05RLW9VEcsedaTiL81BAbYF9GICn/KpFGE9dMJi66Ydw==} 234 | 235 | '@next/env@15.1.7': 236 | resolution: {integrity: sha512-d9jnRrkuOH7Mhi+LHav2XW91HOgTAWHxjMPkXMGBc9B2b7614P7kjt8tAplRvJpbSt4nbO1lugcT/kAaWzjlLQ==} 237 | 238 | '@next/swc-darwin-arm64@15.1.7': 239 | resolution: {integrity: sha512-hPFwzPJDpA8FGj7IKV3Yf1web3oz2YsR8du4amKw8d+jAOHfYHYFpMkoF6vgSY4W6vB29RtZEklK9ayinGiCmQ==} 240 | engines: {node: '>= 10'} 241 | cpu: [arm64] 242 | os: [darwin] 243 | 244 | '@next/swc-darwin-x64@15.1.7': 245 | resolution: {integrity: sha512-2qoas+fO3OQKkU0PBUfwTiw/EYpN+kdAx62cePRyY1LqKtP09Vp5UcUntfZYajop5fDFTjSxCHfZVRxzi+9FYQ==} 246 | engines: {node: '>= 10'} 247 | cpu: [x64] 248 | os: [darwin] 249 | 250 | '@next/swc-linux-arm64-gnu@15.1.7': 251 | resolution: {integrity: sha512-sKLLwDX709mPdzxMnRIXLIT9zaX2w0GUlkLYQnKGoXeWUhcvpCrK+yevcwCJPdTdxZEUA0mOXGLdPsGkudGdnA==} 252 | engines: {node: '>= 10'} 253 | cpu: [arm64] 254 | os: [linux] 255 | 256 | '@next/swc-linux-arm64-musl@15.1.7': 257 | resolution: {integrity: sha512-zblK1OQbQWdC8fxdX4fpsHDw+VSpBPGEUX4PhSE9hkaWPrWoeIJn+baX53vbsbDRaDKd7bBNcXRovY1hEhFd7w==} 258 | engines: {node: '>= 10'} 259 | cpu: [arm64] 260 | os: [linux] 261 | 262 | '@next/swc-linux-x64-gnu@15.1.7': 263 | resolution: {integrity: sha512-GOzXutxuLvLHFDAPsMP2zDBMl1vfUHHpdNpFGhxu90jEzH6nNIgmtw/s1MDwpTOiM+MT5V8+I1hmVFeAUhkbgQ==} 264 | engines: {node: '>= 10'} 265 | cpu: [x64] 266 | os: [linux] 267 | 268 | '@next/swc-linux-x64-musl@15.1.7': 269 | resolution: {integrity: sha512-WrZ7jBhR7ATW1z5iEQ0ZJfE2twCNSXbpCSaAunF3BKcVeHFADSI/AW1y5Xt3DzTqPF1FzQlwQTewqetAABhZRQ==} 270 | engines: {node: '>= 10'} 271 | cpu: [x64] 272 | os: [linux] 273 | 274 | '@next/swc-win32-arm64-msvc@15.1.7': 275 | resolution: {integrity: sha512-LDnj1f3OVbou1BqvvXVqouJZKcwq++mV2F+oFHptToZtScIEnhNRJAhJzqAtTE2dB31qDYL45xJwrc+bLeKM2Q==} 276 | engines: {node: '>= 10'} 277 | cpu: [arm64] 278 | os: [win32] 279 | 280 | '@next/swc-win32-x64-msvc@15.1.7': 281 | resolution: {integrity: sha512-dC01f1quuf97viOfW05/K8XYv2iuBgAxJZl7mbCKEjMgdQl5JjAKJ0D2qMKZCgPWDeFbFT0Q0nYWwytEW0DWTQ==} 282 | engines: {node: '>= 10'} 283 | cpu: [x64] 284 | os: [win32] 285 | 286 | '@nodelib/fs.scandir@2.1.5': 287 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 288 | engines: {node: '>= 8'} 289 | 290 | '@nodelib/fs.stat@2.0.5': 291 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 292 | engines: {node: '>= 8'} 293 | 294 | '@nodelib/fs.walk@1.2.8': 295 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 296 | engines: {node: '>= 8'} 297 | 298 | '@pnpm/config.env-replace@1.1.0': 299 | resolution: {integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==} 300 | engines: {node: '>=12.22.0'} 301 | 302 | '@pnpm/network.ca-file@1.0.2': 303 | resolution: {integrity: sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==} 304 | engines: {node: '>=12.22.0'} 305 | 306 | '@pnpm/npm-conf@2.3.1': 307 | resolution: {integrity: sha512-c83qWb22rNRuB0UaVCI0uRPNRr8Z0FWnEIvT47jiHAmOIUHbBOg5XvV7pM5x+rKn9HRpjxquDbXYSXr3fAKFcw==} 308 | engines: {node: '>=12'} 309 | 310 | '@swc/counter@0.1.3': 311 | resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} 312 | 313 | '@swc/helpers@0.5.15': 314 | resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} 315 | 316 | '@types/hoist-non-react-statics@3.3.6': 317 | resolution: {integrity: sha512-lPByRJUer/iN/xa4qpyL0qmL11DqNW81iU/IG1S3uvRUq4oKagz8VCxZjiWkumgt66YT3vOdDgZ0o32sGKtCEw==} 318 | 319 | '@types/lodash.debounce@4.0.9': 320 | resolution: {integrity: sha512-Ma5JcgTREwpLRwMM+XwBR7DaWe96nC38uCBDFKZWbNKD+osjVzdpnUSwBcqCptrp16sSOLBAUb50Car5I0TCsQ==} 321 | 322 | '@types/lodash@4.17.15': 323 | resolution: {integrity: sha512-w/P33JFeySuhN6JLkysYUK2gEmy9kHHFN7E8ro0tkfmlDOgxBDzWEZ/J8cWA+fHqFevpswDTFZnDx+R9lbL6xw==} 324 | 325 | '@types/minimatch@3.0.5': 326 | resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==} 327 | 328 | '@types/node@22.13.4': 329 | resolution: {integrity: sha512-ywP2X0DYtX3y08eFVx5fNIw7/uIv8hYUKgXoK8oayJlLnKcRfEYCxWMVE1XagUdVtCJlZT1AU4LXEABW+L1Peg==} 330 | 331 | '@types/react@19.0.8': 332 | resolution: {integrity: sha512-9P/o1IGdfmQxrujGbIMDyYaaCykhLKc0NGCtYcECNUr9UAaDe4gwvV9bR6tvd5Br1SG0j+PBpbKr2UYY8CwqSw==} 333 | 334 | '@types/styled-components@5.1.34': 335 | resolution: {integrity: sha512-mmiVvwpYklFIv9E8qfxuPyIt/OuyIrn6gMOAMOFUO3WJfSrSE+sGUoa4PiZj77Ut7bKZpaa6o1fBKS/4TOEvnA==} 336 | 337 | '@types/stylis@4.2.5': 338 | resolution: {integrity: sha512-1Xve+NMN7FWjY14vLoY5tL3BVEQ/n42YLwaqJIPYhotZ9uBHt87VceMwWQpzmdEt2TNXIorIFG+YeCUUW7RInw==} 339 | 340 | '@types/yauzl@2.10.3': 341 | resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} 342 | 343 | '@ungap/structured-clone@1.3.0': 344 | resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} 345 | 346 | abort-controller@3.0.0: 347 | resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} 348 | engines: {node: '>=6.5'} 349 | 350 | acorn-jsx@5.3.2: 351 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} 352 | peerDependencies: 353 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 354 | 355 | acorn@8.14.0: 356 | resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} 357 | engines: {node: '>=0.4.0'} 358 | hasBin: true 359 | 360 | addons-linter@7.8.0: 361 | resolution: {integrity: sha512-SnDJUAtrHu1RUMIiIZXNN8wF0ze7IbDokwUy5HZYlCkNTn8E4RcI74xhdHtCdtoQprAmyhxePP/hFf+9XPhe8w==} 362 | engines: {node: '>=18.0.0'} 363 | hasBin: true 364 | 365 | addons-moz-compare@1.3.0: 366 | resolution: {integrity: sha512-/rXpQeaY0nOKhNx00pmZXdk5Mu+KhVlL3/pSBuAYwrxRrNiTvI/9xfQI8Lmm7DMMl+PDhtfAHY/0ibTpdeoQQQ==} 367 | 368 | addons-scanner-utils@9.12.0: 369 | resolution: {integrity: sha512-Nn+mOgJhdSZKkycXd5GYfSfoyT1lEGbCVoCBKriEFceuP0dJxVBuFwuRD8+PuXegQQBw7COTS5DwM4nj+bK8Mg==} 370 | peerDependencies: 371 | body-parser: 1.20.3 372 | express: 4.21.0 373 | node-fetch: 2.6.11 374 | safe-compare: 1.1.4 375 | peerDependenciesMeta: 376 | body-parser: 377 | optional: true 378 | express: 379 | optional: true 380 | node-fetch: 381 | optional: true 382 | safe-compare: 383 | optional: true 384 | 385 | adm-zip@0.5.16: 386 | resolution: {integrity: sha512-TGw5yVi4saajsSEgz25grObGHEUaDrniwvA2qwSC060KfqGPdglhvPMA2lPIoxs3PQIItj2iag35fONcQqgUaQ==} 387 | engines: {node: '>=12.0'} 388 | 389 | agent-base@7.1.3: 390 | resolution: {integrity: sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==} 391 | engines: {node: '>= 14'} 392 | 393 | ajv@6.12.6: 394 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} 395 | 396 | ajv@8.17.1: 397 | resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} 398 | 399 | ansi-align@3.0.1: 400 | resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} 401 | 402 | ansi-regex@5.0.1: 403 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 404 | engines: {node: '>=8'} 405 | 406 | ansi-regex@6.1.0: 407 | resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} 408 | engines: {node: '>=12'} 409 | 410 | ansi-styles@4.3.0: 411 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 412 | engines: {node: '>=8'} 413 | 414 | ansi-styles@6.2.1: 415 | resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} 416 | engines: {node: '>=12'} 417 | 418 | argparse@2.0.1: 419 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} 420 | 421 | array-differ@4.0.0: 422 | resolution: {integrity: sha512-Q6VPTLMsmXZ47ENG3V+wQyZS1ZxXMxFyYzA+Z/GMrJ6yIutAIEf9wTyroTzmGjNfox9/h3GdGBCVh43GVFx4Uw==} 423 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 424 | 425 | array-union@3.0.1: 426 | resolution: {integrity: sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==} 427 | engines: {node: '>=12'} 428 | 429 | async@3.2.6: 430 | resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} 431 | 432 | atomic-sleep@1.0.0: 433 | resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==} 434 | engines: {node: '>=8.0.0'} 435 | 436 | atomically@2.0.3: 437 | resolution: {integrity: sha512-kU6FmrwZ3Lx7/7y3hPS5QnbJfaohcIul5fGqf7ok+4KklIEk9tJ0C2IQPdacSbVUWv6zVHXEBWoWd6NrVMT7Cw==} 438 | 439 | balanced-match@1.0.2: 440 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 441 | 442 | base64-js@1.5.1: 443 | resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} 444 | 445 | big-integer@1.6.52: 446 | resolution: {integrity: sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==} 447 | engines: {node: '>=0.6'} 448 | 449 | bluebird@3.7.2: 450 | resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} 451 | 452 | boolbase@1.0.0: 453 | resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} 454 | 455 | boxen@8.0.1: 456 | resolution: {integrity: sha512-F3PH5k5juxom4xktynS7MoFY+NUWH5LC4CnH11YB8NPew+HLpmBLCybSAEyb2F+4pRXhuhWqFesoQd6DAyc2hw==} 457 | engines: {node: '>=18'} 458 | 459 | bplist-parser@0.2.0: 460 | resolution: {integrity: sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==} 461 | engines: {node: '>= 5.10.0'} 462 | 463 | brace-expansion@1.1.11: 464 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 465 | 466 | buffer-alloc-unsafe@1.1.0: 467 | resolution: {integrity: sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==} 468 | 469 | buffer-alloc@1.2.0: 470 | resolution: {integrity: sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==} 471 | 472 | buffer-crc32@0.2.13: 473 | resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} 474 | 475 | buffer-fill@1.0.0: 476 | resolution: {integrity: sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==} 477 | 478 | buffer-from@1.1.2: 479 | resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} 480 | 481 | buffer@6.0.3: 482 | resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} 483 | 484 | bundle-name@3.0.0: 485 | resolution: {integrity: sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==} 486 | engines: {node: '>=12'} 487 | 488 | busboy@1.6.0: 489 | resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} 490 | engines: {node: '>=10.16.0'} 491 | 492 | callsites@3.1.0: 493 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 494 | engines: {node: '>=6'} 495 | 496 | camelcase@8.0.0: 497 | resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==} 498 | engines: {node: '>=16'} 499 | 500 | camelize@1.0.1: 501 | resolution: {integrity: sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==} 502 | 503 | caniuse-lite@1.0.30001699: 504 | resolution: {integrity: sha512-b+uH5BakXZ9Do9iK+CkDmctUSEqZl+SP056vc5usa0PL+ev5OHw003rZXcnjNDv3L8P5j6rwT6C0BPKSikW08w==} 505 | 506 | chalk@4.1.2: 507 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 508 | engines: {node: '>=10'} 509 | 510 | chalk@5.4.1: 511 | resolution: {integrity: sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==} 512 | engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} 513 | 514 | cheerio-select@2.1.0: 515 | resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==} 516 | 517 | cheerio@1.0.0-rc.12: 518 | resolution: {integrity: sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==} 519 | engines: {node: '>= 6'} 520 | 521 | chrome-launcher@1.1.2: 522 | resolution: {integrity: sha512-YclTJey34KUm5jB1aEJCq807bSievi7Nb/TU4Gu504fUYi3jw3KCIaH6L7nFWQhdEgH3V+wCh+kKD1P5cXnfxw==} 523 | engines: {node: '>=12.13.0'} 524 | hasBin: true 525 | 526 | cli-boxes@3.0.0: 527 | resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} 528 | engines: {node: '>=10'} 529 | 530 | client-only@0.0.1: 531 | resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} 532 | 533 | cliui@8.0.1: 534 | resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} 535 | engines: {node: '>=12'} 536 | 537 | clone@1.0.4: 538 | resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} 539 | engines: {node: '>=0.8'} 540 | 541 | clsx@1.2.1: 542 | resolution: {integrity: sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==} 543 | engines: {node: '>=6'} 544 | 545 | color-convert@2.0.1: 546 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 547 | engines: {node: '>=7.0.0'} 548 | 549 | color-name@1.1.4: 550 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 551 | 552 | color-string@1.9.1: 553 | resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} 554 | 555 | color@4.2.3: 556 | resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} 557 | engines: {node: '>=12.5.0'} 558 | 559 | columnify@1.6.0: 560 | resolution: {integrity: sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q==} 561 | engines: {node: '>=8.0.0'} 562 | 563 | commander@2.9.0: 564 | resolution: {integrity: sha512-bmkUukX8wAOjHdN26xj5c4ctEV22TQ7dQYhSmuckKhToXrkUn0iIaolHdIxYYqD55nhpSPA9zPQ1yP57GdXP2A==} 565 | engines: {node: '>= 0.6.x'} 566 | 567 | commander@9.5.0: 568 | resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} 569 | engines: {node: ^12.20.0 || >=14} 570 | 571 | common-tags@1.8.2: 572 | resolution: {integrity: sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==} 573 | engines: {node: '>=4.0.0'} 574 | 575 | concat-map@0.0.1: 576 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 577 | 578 | concat-stream@1.6.2: 579 | resolution: {integrity: sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==} 580 | engines: {'0': node >= 0.8} 581 | 582 | config-chain@1.1.13: 583 | resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} 584 | 585 | configstore@7.0.0: 586 | resolution: {integrity: sha512-yk7/5PN5im4qwz0WFZW3PXnzHgPu9mX29Y8uZ3aefe2lBPC1FYttWZRcaW9fKkT0pBCJyuQ2HfbmPVaODi9jcQ==} 587 | engines: {node: '>=18'} 588 | 589 | core-util-is@1.0.3: 590 | resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} 591 | 592 | cross-spawn@7.0.6: 593 | resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} 594 | engines: {node: '>= 8'} 595 | 596 | css-color-keywords@1.0.0: 597 | resolution: {integrity: sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==} 598 | engines: {node: '>=4'} 599 | 600 | css-select@5.1.0: 601 | resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} 602 | 603 | css-to-react-native@3.2.0: 604 | resolution: {integrity: sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ==} 605 | 606 | css-what@6.1.0: 607 | resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} 608 | engines: {node: '>= 6'} 609 | 610 | csstype@3.1.3: 611 | resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} 612 | 613 | debounce@1.2.1: 614 | resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==} 615 | 616 | debug@2.6.9: 617 | resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} 618 | peerDependencies: 619 | supports-color: '*' 620 | peerDependenciesMeta: 621 | supports-color: 622 | optional: true 623 | 624 | debug@4.3.7: 625 | resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} 626 | engines: {node: '>=6.0'} 627 | peerDependencies: 628 | supports-color: '*' 629 | peerDependenciesMeta: 630 | supports-color: 631 | optional: true 632 | 633 | debug@4.4.0: 634 | resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} 635 | engines: {node: '>=6.0'} 636 | peerDependencies: 637 | supports-color: '*' 638 | peerDependenciesMeta: 639 | supports-color: 640 | optional: true 641 | 642 | decamelize@6.0.0: 643 | resolution: {integrity: sha512-Fv96DCsdOgB6mdGl67MT5JaTNKRzrzill5OH5s8bjYJXVlcXyPYGyPsUkWyGV5p1TXI5esYIYMMeDJL0hEIwaA==} 644 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 645 | 646 | deep-extend@0.6.0: 647 | resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} 648 | engines: {node: '>=4.0.0'} 649 | 650 | deep-is@0.1.4: 651 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} 652 | 653 | deepmerge@4.3.1: 654 | resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} 655 | engines: {node: '>=0.10.0'} 656 | 657 | default-browser-id@3.0.0: 658 | resolution: {integrity: sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==} 659 | engines: {node: '>=12'} 660 | 661 | default-browser@4.0.0: 662 | resolution: {integrity: sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==} 663 | engines: {node: '>=14.16'} 664 | 665 | defaults@1.0.4: 666 | resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} 667 | 668 | define-lazy-prop@3.0.0: 669 | resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} 670 | engines: {node: '>=12'} 671 | 672 | detect-libc@2.0.3: 673 | resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} 674 | engines: {node: '>=8'} 675 | 676 | doctrine@3.0.0: 677 | resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} 678 | engines: {node: '>=6.0.0'} 679 | 680 | dom-serializer@2.0.0: 681 | resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} 682 | 683 | domelementtype@2.3.0: 684 | resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} 685 | 686 | domhandler@5.0.3: 687 | resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} 688 | engines: {node: '>= 4'} 689 | 690 | domutils@3.2.2: 691 | resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} 692 | 693 | dot-prop@9.0.0: 694 | resolution: {integrity: sha512-1gxPBJpI/pcjQhKgIU91II6Wkay+dLcN3M6rf2uwP8hRur3HtQXjVrdAK3sjC0piaEuxzMwjXChcETiJl47lAQ==} 695 | engines: {node: '>=18'} 696 | 697 | emoji-regex@10.4.0: 698 | resolution: {integrity: sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==} 699 | 700 | emoji-regex@8.0.0: 701 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 702 | 703 | entities@4.5.0: 704 | resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} 705 | engines: {node: '>=0.12'} 706 | 707 | error-ex@1.3.2: 708 | resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} 709 | 710 | es6-error@4.1.1: 711 | resolution: {integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==} 712 | 713 | escalade@3.2.0: 714 | resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} 715 | engines: {node: '>=6'} 716 | 717 | escape-goat@4.0.0: 718 | resolution: {integrity: sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==} 719 | engines: {node: '>=12'} 720 | 721 | escape-string-regexp@4.0.0: 722 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 723 | engines: {node: '>=10'} 724 | 725 | eslint-plugin-no-unsanitized@4.1.2: 726 | resolution: {integrity: sha512-ydF3PMFKEIkP71ZbLHFvu6/FW8SvRv6VV/gECfrQkqyD5+5oCAtPz8ZHy0GRuMDtNe2jsNdPCQXX4LSbkapAVQ==} 727 | peerDependencies: 728 | eslint: ^8 || ^9 729 | 730 | eslint-scope@7.2.2: 731 | resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} 732 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 733 | 734 | eslint-visitor-keys@3.4.3: 735 | resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} 736 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 737 | 738 | eslint-visitor-keys@4.2.0: 739 | resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} 740 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 741 | 742 | eslint@8.57.1: 743 | resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==} 744 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 745 | deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. 746 | hasBin: true 747 | 748 | espree@10.3.0: 749 | resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==} 750 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 751 | 752 | espree@9.6.1: 753 | resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} 754 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 755 | 756 | esprima@4.0.1: 757 | resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} 758 | engines: {node: '>=4'} 759 | hasBin: true 760 | 761 | esquery@1.6.0: 762 | resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} 763 | engines: {node: '>=0.10'} 764 | 765 | esrecurse@4.3.0: 766 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} 767 | engines: {node: '>=4.0'} 768 | 769 | estraverse@5.3.0: 770 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} 771 | engines: {node: '>=4.0'} 772 | 773 | esutils@2.0.3: 774 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 775 | engines: {node: '>=0.10.0'} 776 | 777 | event-target-shim@5.0.1: 778 | resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} 779 | engines: {node: '>=6'} 780 | 781 | events@3.3.0: 782 | resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} 783 | engines: {node: '>=0.8.x'} 784 | 785 | execa@5.1.1: 786 | resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} 787 | engines: {node: '>=10'} 788 | 789 | execa@7.2.0: 790 | resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==} 791 | engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} 792 | 793 | fast-deep-equal@3.1.3: 794 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 795 | 796 | fast-json-patch@3.1.1: 797 | resolution: {integrity: sha512-vf6IHUX2SBcA+5/+4883dsIjpBTqmfBjmYiWK1savxQmFk4JfBMLa7ynTYOs1Rolp/T1betJxHiGD3g1Mn8lUQ==} 798 | 799 | fast-json-stable-stringify@2.1.0: 800 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} 801 | 802 | fast-levenshtein@2.0.6: 803 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} 804 | 805 | fast-redact@3.5.0: 806 | resolution: {integrity: sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==} 807 | engines: {node: '>=6'} 808 | 809 | fast-uri@3.0.6: 810 | resolution: {integrity: sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==} 811 | 812 | fastq@1.19.0: 813 | resolution: {integrity: sha512-7SFSRCNjBQIZH/xZR3iy5iQYR8aGBE0h3VG6/cwlbrpdciNYBMotQav8c1XI3HjHH+NikUpP53nPdlZSdWmFzA==} 814 | 815 | fd-slicer@1.1.0: 816 | resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} 817 | 818 | file-entry-cache@6.0.1: 819 | resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} 820 | engines: {node: ^10.12.0 || >=12.0.0} 821 | 822 | find-up@5.0.0: 823 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} 824 | engines: {node: '>=10'} 825 | 826 | firefox-profile@4.7.0: 827 | resolution: {integrity: sha512-aGApEu5bfCNbA4PGUZiRJAIU6jKmghV2UVdklXAofnNtiDjqYw0czLS46W7IfFqVKgKhFB8Ao2YoNGHY4BoIMQ==} 828 | engines: {node: '>=18'} 829 | hasBin: true 830 | 831 | first-chunk-stream@3.0.0: 832 | resolution: {integrity: sha512-LNRvR4hr/S8cXXkIY5pTgVP7L3tq6LlYWcg9nWBuW7o1NMxKZo6oOVa/6GIekMGI0Iw7uC+HWimMe9u/VAeKqw==} 833 | engines: {node: '>=8'} 834 | 835 | flat-cache@3.2.0: 836 | resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} 837 | engines: {node: ^10.12.0 || >=12.0.0} 838 | 839 | flatted@3.3.2: 840 | resolution: {integrity: sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==} 841 | 842 | fs-extra@11.3.0: 843 | resolution: {integrity: sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==} 844 | engines: {node: '>=14.14'} 845 | 846 | fs.realpath@1.0.0: 847 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} 848 | 849 | fx-runner@1.4.0: 850 | resolution: {integrity: sha512-rci1g6U0rdTg6bAaBboP7XdRu01dzTAaKXxFf+PUqGuCv6Xu7o8NZdY1D5MvKGIjb6EdS1g3VlXOgksir1uGkg==} 851 | hasBin: true 852 | 853 | get-caller-file@2.0.5: 854 | resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} 855 | engines: {node: 6.* || 8.* || >= 10.*} 856 | 857 | get-east-asian-width@1.3.0: 858 | resolution: {integrity: sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==} 859 | engines: {node: '>=18'} 860 | 861 | get-stream@6.0.1: 862 | resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} 863 | engines: {node: '>=10'} 864 | 865 | glob-parent@6.0.2: 866 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 867 | engines: {node: '>=10.13.0'} 868 | 869 | glob-to-regexp@0.4.1: 870 | resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} 871 | 872 | glob@7.2.3: 873 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} 874 | deprecated: Glob versions prior to v9 are no longer supported 875 | 876 | global-directory@4.0.1: 877 | resolution: {integrity: sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==} 878 | engines: {node: '>=18'} 879 | 880 | globals@13.24.0: 881 | resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} 882 | engines: {node: '>=8'} 883 | 884 | graceful-fs@4.2.10: 885 | resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} 886 | 887 | graceful-fs@4.2.11: 888 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} 889 | 890 | graceful-readlink@1.0.1: 891 | resolution: {integrity: sha512-8tLu60LgxF6XpdbK8OW3FA+IfTNBn1ZHGHKF4KQbEeSkajYw5PlYJcKluntgegDPTg8UkHjpet1T82vk6TQ68w==} 892 | 893 | graphemer@1.4.0: 894 | resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} 895 | 896 | growly@1.3.0: 897 | resolution: {integrity: sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw==} 898 | 899 | has-flag@4.0.0: 900 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 901 | engines: {node: '>=8'} 902 | 903 | hoist-non-react-statics@3.3.2: 904 | resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} 905 | 906 | htmlparser2@8.0.2: 907 | resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==} 908 | 909 | https-proxy-agent@7.0.6: 910 | resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} 911 | engines: {node: '>= 14'} 912 | 913 | human-signals@2.1.0: 914 | resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} 915 | engines: {node: '>=10.17.0'} 916 | 917 | human-signals@4.3.1: 918 | resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==} 919 | engines: {node: '>=14.18.0'} 920 | 921 | ieee754@1.2.1: 922 | resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} 923 | 924 | ignore@5.3.2: 925 | resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} 926 | engines: {node: '>= 4'} 927 | 928 | image-size@1.2.0: 929 | resolution: {integrity: sha512-4S8fwbO6w3GeCVN6OPtA9I5IGKkcDMPcKndtUlpJuCwu7JLjtj7JZpwqLuyY2nrmQT3AWsCJLSKPsc2mPBSl3w==} 930 | engines: {node: '>=16.x'} 931 | hasBin: true 932 | 933 | immediate@3.0.6: 934 | resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} 935 | 936 | import-fresh@3.3.0: 937 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} 938 | engines: {node: '>=6'} 939 | 940 | imurmurhash@0.1.4: 941 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} 942 | engines: {node: '>=0.8.19'} 943 | 944 | inflight@1.0.6: 945 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 946 | deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. 947 | 948 | inherits@2.0.4: 949 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 950 | 951 | ini@1.3.8: 952 | resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} 953 | 954 | ini@4.1.1: 955 | resolution: {integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==} 956 | engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} 957 | 958 | ini@4.1.3: 959 | resolution: {integrity: sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==} 960 | engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} 961 | 962 | is-absolute@0.1.7: 963 | resolution: {integrity: sha512-Xi9/ZSn4NFapG8RP98iNPMOeaV3mXPisxKxzKtHVqr3g56j/fBn+yZmnxSVAA8lmZbl2J9b/a4kJvfU3hqQYgA==} 964 | engines: {node: '>=0.10.0'} 965 | 966 | is-arrayish@0.2.1: 967 | resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} 968 | 969 | is-arrayish@0.3.2: 970 | resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} 971 | 972 | is-docker@2.2.1: 973 | resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} 974 | engines: {node: '>=8'} 975 | hasBin: true 976 | 977 | is-docker@3.0.0: 978 | resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} 979 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 980 | hasBin: true 981 | 982 | is-extglob@2.1.1: 983 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 984 | engines: {node: '>=0.10.0'} 985 | 986 | is-fullwidth-code-point@3.0.0: 987 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 988 | engines: {node: '>=8'} 989 | 990 | is-glob@4.0.3: 991 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 992 | engines: {node: '>=0.10.0'} 993 | 994 | is-in-ci@1.0.0: 995 | resolution: {integrity: sha512-eUuAjybVTHMYWm/U+vBO1sY/JOCgoPCXRxzdju0K+K0BiGW0SChEL1MLC0PoCIR1OlPo5YAp8HuQoUlsWEICwg==} 996 | engines: {node: '>=18'} 997 | hasBin: true 998 | 999 | is-inside-container@1.0.0: 1000 | resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} 1001 | engines: {node: '>=14.16'} 1002 | hasBin: true 1003 | 1004 | is-installed-globally@1.0.0: 1005 | resolution: {integrity: sha512-K55T22lfpQ63N4KEN57jZUAaAYqYHEe8veb/TycJRk9DdSCLLcovXz/mL6mOnhQaZsQGwPhuFopdQIlqGSEjiQ==} 1006 | engines: {node: '>=18'} 1007 | 1008 | is-npm@6.0.0: 1009 | resolution: {integrity: sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ==} 1010 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1011 | 1012 | is-path-inside@3.0.3: 1013 | resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} 1014 | engines: {node: '>=8'} 1015 | 1016 | is-path-inside@4.0.0: 1017 | resolution: {integrity: sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==} 1018 | engines: {node: '>=12'} 1019 | 1020 | is-relative@0.1.3: 1021 | resolution: {integrity: sha512-wBOr+rNM4gkAZqoLRJI4myw5WzzIdQosFAAbnvfXP5z1LyzgAI3ivOKehC5KfqlQJZoihVhirgtCBj378Eg8GA==} 1022 | engines: {node: '>=0.10.0'} 1023 | 1024 | is-stream@2.0.1: 1025 | resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} 1026 | engines: {node: '>=8'} 1027 | 1028 | is-stream@3.0.0: 1029 | resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} 1030 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1031 | 1032 | is-utf8@0.2.1: 1033 | resolution: {integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==} 1034 | 1035 | is-wsl@2.2.0: 1036 | resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} 1037 | engines: {node: '>=8'} 1038 | 1039 | isarray@1.0.0: 1040 | resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} 1041 | 1042 | isexe@1.1.2: 1043 | resolution: {integrity: sha512-d2eJzK691yZwPHcv1LbeAOa91yMJ9QmfTgSO1oXB65ezVhXQsxBac2vEB4bMVms9cGzaA99n6V2viHMq82VLDw==} 1044 | 1045 | isexe@2.0.0: 1046 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 1047 | 1048 | jose@5.9.6: 1049 | resolution: {integrity: sha512-AMlnetc9+CV9asI19zHmrgS/WYsWUwCn2R7RzlbJWD7F9eWYUTGyBmU9o6PxngtLGOiDGPRu+Uc4fhKzbpteZQ==} 1050 | 1051 | js-tokens@4.0.0: 1052 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 1053 | 1054 | js-yaml@4.1.0: 1055 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} 1056 | hasBin: true 1057 | 1058 | json-buffer@3.0.1: 1059 | resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} 1060 | 1061 | json-merge-patch@1.0.2: 1062 | resolution: {integrity: sha512-M6Vp2GN9L7cfuMXiWOmHj9bEFbeC250iVtcKQbqVgEsDVYnIsrNsbU+h/Y/PkbBQCtEa4Bez+Ebv0zfbC8ObLg==} 1063 | 1064 | json-parse-even-better-errors@3.0.2: 1065 | resolution: {integrity: sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==} 1066 | engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} 1067 | 1068 | json-schema-traverse@0.4.1: 1069 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} 1070 | 1071 | json-schema-traverse@1.0.0: 1072 | resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} 1073 | 1074 | json-stable-stringify-without-jsonify@1.0.1: 1075 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} 1076 | 1077 | jsonfile@6.1.0: 1078 | resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} 1079 | 1080 | jszip@3.10.1: 1081 | resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==} 1082 | 1083 | keyv@4.5.4: 1084 | resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} 1085 | 1086 | ky@1.7.5: 1087 | resolution: {integrity: sha512-HzhziW6sc5m0pwi5M196+7cEBtbt0lCYi67wNsiwMUmz833wloE0gbzJPWKs1gliFKQb34huItDQX97LyOdPdA==} 1088 | engines: {node: '>=18'} 1089 | 1090 | latest-version@9.0.0: 1091 | resolution: {integrity: sha512-7W0vV3rqv5tokqkBAFV1LbR7HPOWzXQDpDgEuib/aJ1jsZZx6x3c2mBI+TJhJzOhkGeaLbCKEHXEXLfirtG2JA==} 1092 | engines: {node: '>=18'} 1093 | 1094 | levn@0.4.1: 1095 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} 1096 | engines: {node: '>= 0.8.0'} 1097 | 1098 | lie@3.3.0: 1099 | resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==} 1100 | 1101 | lighthouse-logger@2.0.1: 1102 | resolution: {integrity: sha512-ioBrW3s2i97noEmnXxmUq7cjIcVRjT5HBpAYy8zE11CxU9HqlWHHeRxfeN1tn8F7OEMVPIC9x1f8t3Z7US9ehQ==} 1103 | 1104 | lines-and-columns@2.0.4: 1105 | resolution: {integrity: sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A==} 1106 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1107 | 1108 | locate-path@6.0.0: 1109 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} 1110 | engines: {node: '>=10'} 1111 | 1112 | lodash.debounce@4.0.8: 1113 | resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} 1114 | 1115 | lodash.merge@4.6.2: 1116 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 1117 | 1118 | make-error@1.3.6: 1119 | resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} 1120 | 1121 | marky@1.2.5: 1122 | resolution: {integrity: sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q==} 1123 | 1124 | merge-stream@2.0.0: 1125 | resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} 1126 | 1127 | mimic-fn@2.1.0: 1128 | resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} 1129 | engines: {node: '>=6'} 1130 | 1131 | mimic-fn@4.0.0: 1132 | resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} 1133 | engines: {node: '>=12'} 1134 | 1135 | minimatch@3.1.2: 1136 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 1137 | 1138 | minimist@1.2.8: 1139 | resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} 1140 | 1141 | ms@2.0.0: 1142 | resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} 1143 | 1144 | ms@2.1.3: 1145 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 1146 | 1147 | multimatch@6.0.0: 1148 | resolution: {integrity: sha512-I7tSVxHGPlmPN/enE3mS1aOSo6bWBfls+3HmuEeCUBCE7gWnm3cBXCBkpurzFjVRwC6Kld8lLaZ1Iv5vOcjvcQ==} 1149 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1150 | 1151 | nanoid@3.3.8: 1152 | resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} 1153 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 1154 | hasBin: true 1155 | 1156 | natural-compare@1.4.0: 1157 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} 1158 | 1159 | next@15.1.7: 1160 | resolution: {integrity: sha512-GNeINPGS9c6OZKCvKypbL8GTsT5GhWPp4DM0fzkXJuXMilOO2EeFxuAY6JZbtk6XIl6Ws10ag3xRINDjSO5+wg==} 1161 | engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0} 1162 | hasBin: true 1163 | peerDependencies: 1164 | '@opentelemetry/api': ^1.1.0 1165 | '@playwright/test': ^1.41.2 1166 | babel-plugin-react-compiler: '*' 1167 | react: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 1168 | react-dom: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 1169 | sass: ^1.3.0 1170 | peerDependenciesMeta: 1171 | '@opentelemetry/api': 1172 | optional: true 1173 | '@playwright/test': 1174 | optional: true 1175 | babel-plugin-react-compiler: 1176 | optional: true 1177 | sass: 1178 | optional: true 1179 | 1180 | node-forge@1.3.1: 1181 | resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} 1182 | engines: {node: '>= 6.13.0'} 1183 | 1184 | node-notifier@10.0.1: 1185 | resolution: {integrity: sha512-YX7TSyDukOZ0g+gmzjB6abKu+hTGvO8+8+gIFDsRCU2t8fLV/P2unmt+LGFaIa4y64aX98Qksa97rgz4vMNeLQ==} 1186 | 1187 | npm-run-path@4.0.1: 1188 | resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} 1189 | engines: {node: '>=8'} 1190 | 1191 | npm-run-path@5.3.0: 1192 | resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} 1193 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1194 | 1195 | nth-check@2.1.1: 1196 | resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} 1197 | 1198 | on-exit-leak-free@2.1.2: 1199 | resolution: {integrity: sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==} 1200 | engines: {node: '>=14.0.0'} 1201 | 1202 | once@1.4.0: 1203 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 1204 | 1205 | onetime@5.1.2: 1206 | resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} 1207 | engines: {node: '>=6'} 1208 | 1209 | onetime@6.0.0: 1210 | resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} 1211 | engines: {node: '>=12'} 1212 | 1213 | open@9.1.0: 1214 | resolution: {integrity: sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==} 1215 | engines: {node: '>=14.16'} 1216 | 1217 | optionator@0.9.4: 1218 | resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} 1219 | engines: {node: '>= 0.8.0'} 1220 | 1221 | os-shim@0.1.3: 1222 | resolution: {integrity: sha512-jd0cvB8qQ5uVt0lvCIexBaROw1KyKm5sbulg2fWOHjETisuCzWyt+eTZKEMs8v6HwzoGs8xik26jg7eCM6pS+A==} 1223 | engines: {node: '>= 0.4.0'} 1224 | 1225 | p-limit@3.1.0: 1226 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} 1227 | engines: {node: '>=10'} 1228 | 1229 | p-locate@5.0.0: 1230 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} 1231 | engines: {node: '>=10'} 1232 | 1233 | package-json@10.0.1: 1234 | resolution: {integrity: sha512-ua1L4OgXSBdsu1FPb7F3tYH0F48a6kxvod4pLUlGY9COeJAJQNX/sNH2IiEmsxw7lqYiAwrdHMjz1FctOsyDQg==} 1235 | engines: {node: '>=18'} 1236 | 1237 | pako@1.0.11: 1238 | resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} 1239 | 1240 | parent-module@1.0.1: 1241 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 1242 | engines: {node: '>=6'} 1243 | 1244 | parse-json@7.1.1: 1245 | resolution: {integrity: sha512-SgOTCX/EZXtZxBE5eJ97P4yGM5n37BwRU+YMsH4vNzFqJV/oWFXXCmwFlgWUM4PrakybVOueJJ6pwHqSVhTFDw==} 1246 | engines: {node: '>=16'} 1247 | 1248 | parse5-htmlparser2-tree-adapter@7.1.0: 1249 | resolution: {integrity: sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==} 1250 | 1251 | parse5@7.2.1: 1252 | resolution: {integrity: sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==} 1253 | 1254 | path-exists@4.0.0: 1255 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 1256 | engines: {node: '>=8'} 1257 | 1258 | path-is-absolute@1.0.1: 1259 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} 1260 | engines: {node: '>=0.10.0'} 1261 | 1262 | path-key@3.1.1: 1263 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 1264 | engines: {node: '>=8'} 1265 | 1266 | path-key@4.0.0: 1267 | resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} 1268 | engines: {node: '>=12'} 1269 | 1270 | pend@1.2.0: 1271 | resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} 1272 | 1273 | picocolors@1.1.1: 1274 | resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} 1275 | 1276 | pino-abstract-transport@1.2.0: 1277 | resolution: {integrity: sha512-Guhh8EZfPCfH+PMXAb6rKOjGQEoy0xlAIn+irODG5kgfYV+BQ0rGYYWTIel3P5mmyXqkYkPmdIkywsn6QKUR1Q==} 1278 | 1279 | pino-std-serializers@6.2.2: 1280 | resolution: {integrity: sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==} 1281 | 1282 | pino-std-serializers@7.0.0: 1283 | resolution: {integrity: sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==} 1284 | 1285 | pino@8.20.0: 1286 | resolution: {integrity: sha512-uhIfMj5TVp+WynVASaVEJFTncTUe4dHBq6CWplu/vBgvGHhvBvQfxz+vcOrnnBQdORH3izaGEurLfNlq3YxdFQ==} 1287 | hasBin: true 1288 | 1289 | pino@9.4.0: 1290 | resolution: {integrity: sha512-nbkQb5+9YPhQRz/BeQmrWpEknAaqjpAqRK8NwJpmrX/JHu7JuZC5G1CeAwJDJfGes4h+YihC6in3Q2nGb+Y09w==} 1291 | hasBin: true 1292 | 1293 | postcss-value-parser@4.2.0: 1294 | resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} 1295 | 1296 | postcss@8.4.31: 1297 | resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} 1298 | engines: {node: ^10 || ^12 || >=14} 1299 | 1300 | postcss@8.4.49: 1301 | resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==} 1302 | engines: {node: ^10 || ^12 || >=14} 1303 | 1304 | prelude-ls@1.2.1: 1305 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} 1306 | engines: {node: '>= 0.8.0'} 1307 | 1308 | process-nextick-args@2.0.1: 1309 | resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} 1310 | 1311 | process-warning@3.0.0: 1312 | resolution: {integrity: sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==} 1313 | 1314 | process-warning@4.0.1: 1315 | resolution: {integrity: sha512-3c2LzQ3rY9d0hc1emcsHhfT9Jwz0cChib/QN89oME2R451w5fy3f0afAhERFZAwrbDU43wk12d0ORBpDVME50Q==} 1316 | 1317 | process@0.11.10: 1318 | resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} 1319 | engines: {node: '>= 0.6.0'} 1320 | 1321 | promise-toolbox@0.21.0: 1322 | resolution: {integrity: sha512-NV8aTmpwrZv+Iys54sSFOBx3tuVaOBvvrft5PNppnxy9xpU/akHbaWIril22AB22zaPgrgwKdD0KsrM0ptUtpg==} 1323 | engines: {node: '>=6'} 1324 | 1325 | proto-list@1.2.4: 1326 | resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} 1327 | 1328 | punycode@2.3.1: 1329 | resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} 1330 | engines: {node: '>=6'} 1331 | 1332 | pupa@3.1.0: 1333 | resolution: {integrity: sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==} 1334 | engines: {node: '>=12.20'} 1335 | 1336 | queue-microtask@1.2.3: 1337 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 1338 | 1339 | queue@6.0.2: 1340 | resolution: {integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==} 1341 | 1342 | quick-format-unescaped@4.0.4: 1343 | resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==} 1344 | 1345 | rc@1.2.8: 1346 | resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} 1347 | hasBin: true 1348 | 1349 | react-contexify@6.0.0: 1350 | resolution: {integrity: sha512-jMhz6yZI81Jv3UDj7TXqCkhdkCFEEmvwGCPXsQuA2ZUC8EbCuVQ6Cy8FzKMXa0y454XTDClBN2YFvvmoFlrFkg==} 1351 | peerDependencies: 1352 | react: '>=16' 1353 | react-dom: '>=16' 1354 | 1355 | react-dom@19.0.0: 1356 | resolution: {integrity: sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==} 1357 | peerDependencies: 1358 | react: ^19.0.0 1359 | 1360 | react-is@16.13.1: 1361 | resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} 1362 | 1363 | react@19.0.0: 1364 | resolution: {integrity: sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==} 1365 | engines: {node: '>=0.10.0'} 1366 | 1367 | readable-stream@2.3.8: 1368 | resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} 1369 | 1370 | readable-stream@4.7.0: 1371 | resolution: {integrity: sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==} 1372 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1373 | 1374 | real-require@0.2.0: 1375 | resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==} 1376 | engines: {node: '>= 12.13.0'} 1377 | 1378 | regenerator-runtime@0.14.1: 1379 | resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} 1380 | 1381 | registry-auth-token@5.1.0: 1382 | resolution: {integrity: sha512-GdekYuwLXLxMuFTwAPg5UKGLW/UXzQrZvH/Zj791BQif5T05T0RsaLfHc9q3ZOKi7n+BoprPD9mJ0O0k4xzUlw==} 1383 | engines: {node: '>=14'} 1384 | 1385 | registry-url@6.0.1: 1386 | resolution: {integrity: sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==} 1387 | engines: {node: '>=12'} 1388 | 1389 | require-directory@2.1.1: 1390 | resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} 1391 | engines: {node: '>=0.10.0'} 1392 | 1393 | require-from-string@2.0.2: 1394 | resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} 1395 | engines: {node: '>=0.10.0'} 1396 | 1397 | resolve-from@4.0.0: 1398 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 1399 | engines: {node: '>=4'} 1400 | 1401 | reusify@1.0.4: 1402 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 1403 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 1404 | 1405 | rimraf@3.0.2: 1406 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} 1407 | deprecated: Rimraf versions prior to v4 are no longer supported 1408 | hasBin: true 1409 | 1410 | run-applescript@5.0.0: 1411 | resolution: {integrity: sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==} 1412 | engines: {node: '>=12'} 1413 | 1414 | run-parallel@1.2.0: 1415 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 1416 | 1417 | safe-buffer@5.1.2: 1418 | resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} 1419 | 1420 | safe-buffer@5.2.1: 1421 | resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} 1422 | 1423 | safe-compare@1.1.4: 1424 | resolution: {integrity: sha512-b9wZ986HHCo/HbKrRpBJb2kqXMK9CEWIE1egeEvZsYn69ay3kdfl9nG3RyOcR+jInTDf7a86WQ1d4VJX7goSSQ==} 1425 | 1426 | safe-stable-stringify@2.5.0: 1427 | resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==} 1428 | engines: {node: '>=10'} 1429 | 1430 | sax@1.4.1: 1431 | resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} 1432 | 1433 | scheduler@0.25.0: 1434 | resolution: {integrity: sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==} 1435 | 1436 | semver@7.6.3: 1437 | resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} 1438 | engines: {node: '>=10'} 1439 | hasBin: true 1440 | 1441 | semver@7.7.1: 1442 | resolution: {integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==} 1443 | engines: {node: '>=10'} 1444 | hasBin: true 1445 | 1446 | setimmediate@1.0.5: 1447 | resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} 1448 | 1449 | shallowequal@1.1.0: 1450 | resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==} 1451 | 1452 | sharp@0.33.5: 1453 | resolution: {integrity: sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==} 1454 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} 1455 | 1456 | shebang-command@2.0.0: 1457 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 1458 | engines: {node: '>=8'} 1459 | 1460 | shebang-regex@3.0.0: 1461 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 1462 | engines: {node: '>=8'} 1463 | 1464 | shell-quote@1.7.3: 1465 | resolution: {integrity: sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==} 1466 | 1467 | shellwords@0.1.1: 1468 | resolution: {integrity: sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==} 1469 | 1470 | signal-exit@3.0.7: 1471 | resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} 1472 | 1473 | simple-swizzle@0.2.2: 1474 | resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} 1475 | 1476 | sonic-boom@3.8.1: 1477 | resolution: {integrity: sha512-y4Z8LCDBuum+PBP3lSV7RHrXscqksve/bi0as7mhwVnBW+/wUqKT/2Kb7um8yqcFy0duYbbPxzt89Zy2nOCaxg==} 1478 | 1479 | sonic-boom@4.2.0: 1480 | resolution: {integrity: sha512-INb7TM37/mAcsGmc9hyyI6+QR3rR1zVRu36B0NeGXKnOOLiZOfER5SA+N7X7k3yUYRzLWafduTDvJAfDswwEww==} 1481 | 1482 | source-map-js@1.2.1: 1483 | resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} 1484 | engines: {node: '>=0.10.0'} 1485 | 1486 | source-map-support@0.5.21: 1487 | resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} 1488 | 1489 | source-map@0.6.1: 1490 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} 1491 | engines: {node: '>=0.10.0'} 1492 | 1493 | spawn-sync@1.0.15: 1494 | resolution: {integrity: sha512-9DWBgrgYZzNghseho0JOuh+5fg9u6QWhAWa51QC7+U5rCheZ/j1DrEZnyE0RBBRqZ9uEXGPgSSM0nky6burpVw==} 1495 | 1496 | split2@4.2.0: 1497 | resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} 1498 | engines: {node: '>= 10.x'} 1499 | 1500 | split@1.0.1: 1501 | resolution: {integrity: sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==} 1502 | 1503 | streamsearch@1.1.0: 1504 | resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} 1505 | engines: {node: '>=10.0.0'} 1506 | 1507 | string-width@4.2.3: 1508 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 1509 | engines: {node: '>=8'} 1510 | 1511 | string-width@7.2.0: 1512 | resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} 1513 | engines: {node: '>=18'} 1514 | 1515 | string_decoder@1.1.1: 1516 | resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} 1517 | 1518 | string_decoder@1.3.0: 1519 | resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} 1520 | 1521 | strip-ansi@6.0.1: 1522 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 1523 | engines: {node: '>=8'} 1524 | 1525 | strip-ansi@7.1.0: 1526 | resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} 1527 | engines: {node: '>=12'} 1528 | 1529 | strip-bom-buf@2.0.0: 1530 | resolution: {integrity: sha512-gLFNHucd6gzb8jMsl5QmZ3QgnUJmp7qn4uUSHNwEXumAp7YizoGYw19ZUVfuq4aBOQUtyn2k8X/CwzWB73W2lQ==} 1531 | engines: {node: '>=8'} 1532 | 1533 | strip-bom-stream@4.0.0: 1534 | resolution: {integrity: sha512-0ApK3iAkHv6WbgLICw/J4nhwHeDZsBxIIsOD+gHgZICL6SeJ0S9f/WZqemka9cjkTyMN5geId6e8U5WGFAn3cQ==} 1535 | engines: {node: '>=8'} 1536 | 1537 | strip-bom@5.0.0: 1538 | resolution: {integrity: sha512-p+byADHF7SzEcVnLvc/r3uognM1hUhObuHXxJcgLCfD194XAkaLbjq3Wzb0N5G2tgIjH0dgT708Z51QxMeu60A==} 1539 | engines: {node: '>=12'} 1540 | 1541 | strip-final-newline@2.0.0: 1542 | resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} 1543 | engines: {node: '>=6'} 1544 | 1545 | strip-final-newline@3.0.0: 1546 | resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} 1547 | engines: {node: '>=12'} 1548 | 1549 | strip-json-comments@2.0.1: 1550 | resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} 1551 | engines: {node: '>=0.10.0'} 1552 | 1553 | strip-json-comments@3.1.1: 1554 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 1555 | engines: {node: '>=8'} 1556 | 1557 | strip-json-comments@5.0.1: 1558 | resolution: {integrity: sha512-0fk9zBqO67Nq5M/m45qHCJxylV/DhBlIOVExqgOMiCCrzrhU6tCibRXNqE3jwJLftzE9SNuZtYbpzcO+i9FiKw==} 1559 | engines: {node: '>=14.16'} 1560 | 1561 | stubborn-fs@1.2.5: 1562 | resolution: {integrity: sha512-H2N9c26eXjzL/S/K+i/RHHcFanE74dptvvjM8iwzwbVcWY/zjBbgRqF3K0DY4+OD+uTTASTBvDoxPDaPN02D7g==} 1563 | 1564 | styled-components@6.1.15: 1565 | resolution: {integrity: sha512-PpOTEztW87Ua2xbmLa7yssjNyUF9vE7wdldRfn1I2E6RTkqknkBYpj771OxM/xrvRGinLy2oysa7GOd7NcZZIA==} 1566 | engines: {node: '>= 16'} 1567 | peerDependencies: 1568 | react: '>= 16.8.0' 1569 | react-dom: '>= 16.8.0' 1570 | 1571 | styled-jsx@5.1.6: 1572 | resolution: {integrity: sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==} 1573 | engines: {node: '>= 12.0.0'} 1574 | peerDependencies: 1575 | '@babel/core': '*' 1576 | babel-plugin-macros: '*' 1577 | react: '>= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0' 1578 | peerDependenciesMeta: 1579 | '@babel/core': 1580 | optional: true 1581 | babel-plugin-macros: 1582 | optional: true 1583 | 1584 | stylis@4.3.2: 1585 | resolution: {integrity: sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg==} 1586 | 1587 | supports-color@7.2.0: 1588 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 1589 | engines: {node: '>=8'} 1590 | 1591 | text-table@0.2.0: 1592 | resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} 1593 | 1594 | thread-stream@2.7.0: 1595 | resolution: {integrity: sha512-qQiRWsU/wvNolI6tbbCKd9iKaTnCXsTwVxhhKM6nctPdujTyztjlbUkUTUymidWcMnZ5pWR0ej4a0tjsW021vw==} 1596 | 1597 | thread-stream@3.1.0: 1598 | resolution: {integrity: sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==} 1599 | 1600 | through@2.3.8: 1601 | resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} 1602 | 1603 | titleize@3.0.0: 1604 | resolution: {integrity: sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==} 1605 | engines: {node: '>=12'} 1606 | 1607 | tmp@0.2.3: 1608 | resolution: {integrity: sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==} 1609 | engines: {node: '>=14.14'} 1610 | 1611 | tslib@2.6.2: 1612 | resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} 1613 | 1614 | tslib@2.8.1: 1615 | resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} 1616 | 1617 | type-check@0.4.0: 1618 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} 1619 | engines: {node: '>= 0.8.0'} 1620 | 1621 | type-fest@0.20.2: 1622 | resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} 1623 | engines: {node: '>=10'} 1624 | 1625 | type-fest@3.13.1: 1626 | resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} 1627 | engines: {node: '>=14.16'} 1628 | 1629 | type-fest@4.34.1: 1630 | resolution: {integrity: sha512-6kSc32kT0rbwxD6QL1CYe8IqdzN/J/ILMrNK+HMQCKH3insCDRY/3ITb0vcBss0a3t72fzh2YSzj8ko1HgwT3g==} 1631 | engines: {node: '>=16'} 1632 | 1633 | typedarray@0.0.6: 1634 | resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} 1635 | 1636 | typescript@5.7.3: 1637 | resolution: {integrity: sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==} 1638 | engines: {node: '>=14.17'} 1639 | hasBin: true 1640 | 1641 | undici-types@6.20.0: 1642 | resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} 1643 | 1644 | universalify@2.0.1: 1645 | resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} 1646 | engines: {node: '>= 10.0.0'} 1647 | 1648 | untildify@4.0.0: 1649 | resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} 1650 | engines: {node: '>=8'} 1651 | 1652 | upath@2.0.1: 1653 | resolution: {integrity: sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==} 1654 | engines: {node: '>=4'} 1655 | 1656 | update-notifier@7.3.1: 1657 | resolution: {integrity: sha512-+dwUY4L35XFYEzE+OAL3sarJdUioVovq+8f7lcIJ7wnmnYQV5UD1Y/lcwaMSyaQ6Bj3JMj1XSTjZbNLHn/19yA==} 1658 | engines: {node: '>=18'} 1659 | 1660 | uri-js@4.4.1: 1661 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 1662 | 1663 | util-deprecate@1.0.2: 1664 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 1665 | 1666 | uuid@8.3.2: 1667 | resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} 1668 | hasBin: true 1669 | 1670 | watchpack@2.4.2: 1671 | resolution: {integrity: sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==} 1672 | engines: {node: '>=10.13.0'} 1673 | 1674 | wcwidth@1.0.1: 1675 | resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} 1676 | 1677 | web-ext@8.4.0: 1678 | resolution: {integrity: sha512-zO0GNacJeqw3fwbBvgHC2G8reieyN+oCKiMQepX3iv2fm9KEBqg1gdbcdEvi7edfj+gjgxyXhVlFcHIvcEM2Cg==} 1679 | engines: {node: '>=18.0.0', npm: '>=8.0.0'} 1680 | hasBin: true 1681 | 1682 | when-exit@2.1.4: 1683 | resolution: {integrity: sha512-4rnvd3A1t16PWzrBUcSDZqcAmsUIy4minDXT/CZ8F2mVDgd65i4Aalimgz1aQkRGU0iH5eT5+6Rx2TK8o443Pg==} 1684 | 1685 | when@3.7.7: 1686 | resolution: {integrity: sha512-9lFZp/KHoqH6bPKjbWqa+3Dg/K/r2v0X/3/G2x4DBGchVS2QX2VXL3cZV994WQVnTM1/PD71Az25nAzryEUugw==} 1687 | 1688 | which@1.2.4: 1689 | resolution: {integrity: sha512-zDRAqDSBudazdfM9zpiI30Fu9ve47htYXcGi3ln0wfKu2a7SmrT6F3VDoYONu//48V8Vz4TdCRNPjtvyRO3yBA==} 1690 | hasBin: true 1691 | 1692 | which@2.0.2: 1693 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 1694 | engines: {node: '>= 8'} 1695 | hasBin: true 1696 | 1697 | widest-line@5.0.0: 1698 | resolution: {integrity: sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==} 1699 | engines: {node: '>=18'} 1700 | 1701 | winreg@0.0.12: 1702 | resolution: {integrity: sha512-typ/+JRmi7RqP1NanzFULK36vczznSNN8kWVA9vIqXyv8GhghUlwhGp1Xj3Nms1FsPcNnsQrJOR10N58/nQ9hQ==} 1703 | 1704 | word-wrap@1.2.5: 1705 | resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} 1706 | engines: {node: '>=0.10.0'} 1707 | 1708 | wrap-ansi@7.0.0: 1709 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} 1710 | engines: {node: '>=10'} 1711 | 1712 | wrap-ansi@9.0.0: 1713 | resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==} 1714 | engines: {node: '>=18'} 1715 | 1716 | wrappy@1.0.2: 1717 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 1718 | 1719 | ws@8.18.0: 1720 | resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} 1721 | engines: {node: '>=10.0.0'} 1722 | peerDependencies: 1723 | bufferutil: ^4.0.1 1724 | utf-8-validate: '>=5.0.2' 1725 | peerDependenciesMeta: 1726 | bufferutil: 1727 | optional: true 1728 | utf-8-validate: 1729 | optional: true 1730 | 1731 | xdg-basedir@5.1.0: 1732 | resolution: {integrity: sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==} 1733 | engines: {node: '>=12'} 1734 | 1735 | xml2js@0.6.2: 1736 | resolution: {integrity: sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==} 1737 | engines: {node: '>=4.0.0'} 1738 | 1739 | xmlbuilder@11.0.1: 1740 | resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==} 1741 | engines: {node: '>=4.0'} 1742 | 1743 | y18n@5.0.8: 1744 | resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} 1745 | engines: {node: '>=10'} 1746 | 1747 | yargs-parser@21.1.1: 1748 | resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} 1749 | engines: {node: '>=12'} 1750 | 1751 | yargs@17.7.2: 1752 | resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} 1753 | engines: {node: '>=12'} 1754 | 1755 | yauzl@2.10.0: 1756 | resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==} 1757 | 1758 | yocto-queue@0.1.0: 1759 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 1760 | engines: {node: '>=10'} 1761 | 1762 | zip-dir@2.0.0: 1763 | resolution: {integrity: sha512-uhlsJZWz26FLYXOD6WVuq+fIcZ3aBPGo/cFdiLlv3KNwpa52IF3ISV8fLhQLiqVu5No3VhlqlgthN6gehil1Dg==} 1764 | 1765 | snapshots: 1766 | 1767 | '@babel/code-frame@7.26.2': 1768 | dependencies: 1769 | '@babel/helper-validator-identifier': 7.25.9 1770 | js-tokens: 4.0.0 1771 | picocolors: 1.1.1 1772 | 1773 | '@babel/helper-validator-identifier@7.25.9': {} 1774 | 1775 | '@babel/runtime@7.26.7': 1776 | dependencies: 1777 | regenerator-runtime: 0.14.1 1778 | 1779 | '@devicefarmer/adbkit-logcat@2.1.3': {} 1780 | 1781 | '@devicefarmer/adbkit-monkey@1.2.1': {} 1782 | 1783 | '@devicefarmer/adbkit@3.3.8': 1784 | dependencies: 1785 | '@devicefarmer/adbkit-logcat': 2.1.3 1786 | '@devicefarmer/adbkit-monkey': 1.2.1 1787 | bluebird: 3.7.2 1788 | commander: 9.5.0 1789 | debug: 4.3.7 1790 | node-forge: 1.3.1 1791 | split: 1.0.1 1792 | transitivePeerDependencies: 1793 | - supports-color 1794 | 1795 | '@emnapi/runtime@1.3.1': 1796 | dependencies: 1797 | tslib: 2.8.1 1798 | optional: true 1799 | 1800 | '@emotion/is-prop-valid@1.2.2': 1801 | dependencies: 1802 | '@emotion/memoize': 0.8.1 1803 | 1804 | '@emotion/memoize@0.8.1': {} 1805 | 1806 | '@emotion/unitless@0.8.1': {} 1807 | 1808 | '@eslint-community/eslint-utils@4.4.1(eslint@8.57.1)': 1809 | dependencies: 1810 | eslint: 8.57.1 1811 | eslint-visitor-keys: 3.4.3 1812 | 1813 | '@eslint-community/regexpp@4.12.1': {} 1814 | 1815 | '@eslint/eslintrc@2.1.4': 1816 | dependencies: 1817 | ajv: 6.12.6 1818 | debug: 4.4.0 1819 | espree: 9.6.1 1820 | globals: 13.24.0 1821 | ignore: 5.3.2 1822 | import-fresh: 3.3.0 1823 | js-yaml: 4.1.0 1824 | minimatch: 3.1.2 1825 | strip-json-comments: 3.1.1 1826 | transitivePeerDependencies: 1827 | - supports-color 1828 | 1829 | '@eslint/js@8.57.1': {} 1830 | 1831 | '@fluent/syntax@0.19.0': {} 1832 | 1833 | '@fregante/relaxed-json@2.0.0': {} 1834 | 1835 | '@humanwhocodes/config-array@0.13.0': 1836 | dependencies: 1837 | '@humanwhocodes/object-schema': 2.0.3 1838 | debug: 4.4.0 1839 | minimatch: 3.1.2 1840 | transitivePeerDependencies: 1841 | - supports-color 1842 | 1843 | '@humanwhocodes/module-importer@1.0.1': {} 1844 | 1845 | '@humanwhocodes/object-schema@2.0.3': {} 1846 | 1847 | '@img/sharp-darwin-arm64@0.33.5': 1848 | optionalDependencies: 1849 | '@img/sharp-libvips-darwin-arm64': 1.0.4 1850 | optional: true 1851 | 1852 | '@img/sharp-darwin-x64@0.33.5': 1853 | optionalDependencies: 1854 | '@img/sharp-libvips-darwin-x64': 1.0.4 1855 | optional: true 1856 | 1857 | '@img/sharp-libvips-darwin-arm64@1.0.4': 1858 | optional: true 1859 | 1860 | '@img/sharp-libvips-darwin-x64@1.0.4': 1861 | optional: true 1862 | 1863 | '@img/sharp-libvips-linux-arm64@1.0.4': 1864 | optional: true 1865 | 1866 | '@img/sharp-libvips-linux-arm@1.0.5': 1867 | optional: true 1868 | 1869 | '@img/sharp-libvips-linux-s390x@1.0.4': 1870 | optional: true 1871 | 1872 | '@img/sharp-libvips-linux-x64@1.0.4': 1873 | optional: true 1874 | 1875 | '@img/sharp-libvips-linuxmusl-arm64@1.0.4': 1876 | optional: true 1877 | 1878 | '@img/sharp-libvips-linuxmusl-x64@1.0.4': 1879 | optional: true 1880 | 1881 | '@img/sharp-linux-arm64@0.33.5': 1882 | optionalDependencies: 1883 | '@img/sharp-libvips-linux-arm64': 1.0.4 1884 | optional: true 1885 | 1886 | '@img/sharp-linux-arm@0.33.5': 1887 | optionalDependencies: 1888 | '@img/sharp-libvips-linux-arm': 1.0.5 1889 | optional: true 1890 | 1891 | '@img/sharp-linux-s390x@0.33.5': 1892 | optionalDependencies: 1893 | '@img/sharp-libvips-linux-s390x': 1.0.4 1894 | optional: true 1895 | 1896 | '@img/sharp-linux-x64@0.33.5': 1897 | optionalDependencies: 1898 | '@img/sharp-libvips-linux-x64': 1.0.4 1899 | optional: true 1900 | 1901 | '@img/sharp-linuxmusl-arm64@0.33.5': 1902 | optionalDependencies: 1903 | '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 1904 | optional: true 1905 | 1906 | '@img/sharp-linuxmusl-x64@0.33.5': 1907 | optionalDependencies: 1908 | '@img/sharp-libvips-linuxmusl-x64': 1.0.4 1909 | optional: true 1910 | 1911 | '@img/sharp-wasm32@0.33.5': 1912 | dependencies: 1913 | '@emnapi/runtime': 1.3.1 1914 | optional: true 1915 | 1916 | '@img/sharp-win32-ia32@0.33.5': 1917 | optional: true 1918 | 1919 | '@img/sharp-win32-x64@0.33.5': 1920 | optional: true 1921 | 1922 | '@mdn/browser-compat-data@5.6.31': {} 1923 | 1924 | '@next/env@15.1.7': {} 1925 | 1926 | '@next/swc-darwin-arm64@15.1.7': 1927 | optional: true 1928 | 1929 | '@next/swc-darwin-x64@15.1.7': 1930 | optional: true 1931 | 1932 | '@next/swc-linux-arm64-gnu@15.1.7': 1933 | optional: true 1934 | 1935 | '@next/swc-linux-arm64-musl@15.1.7': 1936 | optional: true 1937 | 1938 | '@next/swc-linux-x64-gnu@15.1.7': 1939 | optional: true 1940 | 1941 | '@next/swc-linux-x64-musl@15.1.7': 1942 | optional: true 1943 | 1944 | '@next/swc-win32-arm64-msvc@15.1.7': 1945 | optional: true 1946 | 1947 | '@next/swc-win32-x64-msvc@15.1.7': 1948 | optional: true 1949 | 1950 | '@nodelib/fs.scandir@2.1.5': 1951 | dependencies: 1952 | '@nodelib/fs.stat': 2.0.5 1953 | run-parallel: 1.2.0 1954 | 1955 | '@nodelib/fs.stat@2.0.5': {} 1956 | 1957 | '@nodelib/fs.walk@1.2.8': 1958 | dependencies: 1959 | '@nodelib/fs.scandir': 2.1.5 1960 | fastq: 1.19.0 1961 | 1962 | '@pnpm/config.env-replace@1.1.0': {} 1963 | 1964 | '@pnpm/network.ca-file@1.0.2': 1965 | dependencies: 1966 | graceful-fs: 4.2.10 1967 | 1968 | '@pnpm/npm-conf@2.3.1': 1969 | dependencies: 1970 | '@pnpm/config.env-replace': 1.1.0 1971 | '@pnpm/network.ca-file': 1.0.2 1972 | config-chain: 1.1.13 1973 | 1974 | '@swc/counter@0.1.3': {} 1975 | 1976 | '@swc/helpers@0.5.15': 1977 | dependencies: 1978 | tslib: 2.8.1 1979 | 1980 | '@types/hoist-non-react-statics@3.3.6': 1981 | dependencies: 1982 | '@types/react': 19.0.8 1983 | hoist-non-react-statics: 3.3.2 1984 | 1985 | '@types/lodash.debounce@4.0.9': 1986 | dependencies: 1987 | '@types/lodash': 4.17.15 1988 | 1989 | '@types/lodash@4.17.15': {} 1990 | 1991 | '@types/minimatch@3.0.5': {} 1992 | 1993 | '@types/node@22.13.4': 1994 | dependencies: 1995 | undici-types: 6.20.0 1996 | 1997 | '@types/react@19.0.8': 1998 | dependencies: 1999 | csstype: 3.1.3 2000 | 2001 | '@types/styled-components@5.1.34': 2002 | dependencies: 2003 | '@types/hoist-non-react-statics': 3.3.6 2004 | '@types/react': 19.0.8 2005 | csstype: 3.1.3 2006 | 2007 | '@types/stylis@4.2.5': {} 2008 | 2009 | '@types/yauzl@2.10.3': 2010 | dependencies: 2011 | '@types/node': 22.13.4 2012 | 2013 | '@ungap/structured-clone@1.3.0': {} 2014 | 2015 | abort-controller@3.0.0: 2016 | dependencies: 2017 | event-target-shim: 5.0.1 2018 | 2019 | acorn-jsx@5.3.2(acorn@8.14.0): 2020 | dependencies: 2021 | acorn: 8.14.0 2022 | 2023 | acorn@8.14.0: {} 2024 | 2025 | addons-linter@7.8.0(safe-compare@1.1.4): 2026 | dependencies: 2027 | '@fluent/syntax': 0.19.0 2028 | '@fregante/relaxed-json': 2.0.0 2029 | '@mdn/browser-compat-data': 5.6.31 2030 | addons-moz-compare: 1.3.0 2031 | addons-scanner-utils: 9.12.0(safe-compare@1.1.4) 2032 | ajv: 8.17.1 2033 | chalk: 4.1.2 2034 | cheerio: 1.0.0-rc.12 2035 | columnify: 1.6.0 2036 | common-tags: 1.8.2 2037 | deepmerge: 4.3.1 2038 | eslint: 8.57.1 2039 | eslint-plugin-no-unsanitized: 4.1.2(eslint@8.57.1) 2040 | eslint-visitor-keys: 4.2.0 2041 | espree: 10.3.0 2042 | esprima: 4.0.1 2043 | fast-json-patch: 3.1.1 2044 | image-size: 1.2.0 2045 | json-merge-patch: 1.0.2 2046 | pino: 8.20.0 2047 | semver: 7.6.3 2048 | source-map-support: 0.5.21 2049 | upath: 2.0.1 2050 | yargs: 17.7.2 2051 | yauzl: 2.10.0 2052 | transitivePeerDependencies: 2053 | - body-parser 2054 | - express 2055 | - node-fetch 2056 | - safe-compare 2057 | - supports-color 2058 | 2059 | addons-moz-compare@1.3.0: {} 2060 | 2061 | addons-scanner-utils@9.12.0(safe-compare@1.1.4): 2062 | dependencies: 2063 | '@types/yauzl': 2.10.3 2064 | common-tags: 1.8.2 2065 | first-chunk-stream: 3.0.0 2066 | strip-bom-stream: 4.0.0 2067 | upath: 2.0.1 2068 | yauzl: 2.10.0 2069 | optionalDependencies: 2070 | safe-compare: 1.1.4 2071 | 2072 | adm-zip@0.5.16: {} 2073 | 2074 | agent-base@7.1.3: {} 2075 | 2076 | ajv@6.12.6: 2077 | dependencies: 2078 | fast-deep-equal: 3.1.3 2079 | fast-json-stable-stringify: 2.1.0 2080 | json-schema-traverse: 0.4.1 2081 | uri-js: 4.4.1 2082 | 2083 | ajv@8.17.1: 2084 | dependencies: 2085 | fast-deep-equal: 3.1.3 2086 | fast-uri: 3.0.6 2087 | json-schema-traverse: 1.0.0 2088 | require-from-string: 2.0.2 2089 | 2090 | ansi-align@3.0.1: 2091 | dependencies: 2092 | string-width: 4.2.3 2093 | 2094 | ansi-regex@5.0.1: {} 2095 | 2096 | ansi-regex@6.1.0: {} 2097 | 2098 | ansi-styles@4.3.0: 2099 | dependencies: 2100 | color-convert: 2.0.1 2101 | 2102 | ansi-styles@6.2.1: {} 2103 | 2104 | argparse@2.0.1: {} 2105 | 2106 | array-differ@4.0.0: {} 2107 | 2108 | array-union@3.0.1: {} 2109 | 2110 | async@3.2.6: {} 2111 | 2112 | atomic-sleep@1.0.0: {} 2113 | 2114 | atomically@2.0.3: 2115 | dependencies: 2116 | stubborn-fs: 1.2.5 2117 | when-exit: 2.1.4 2118 | 2119 | balanced-match@1.0.2: {} 2120 | 2121 | base64-js@1.5.1: {} 2122 | 2123 | big-integer@1.6.52: {} 2124 | 2125 | bluebird@3.7.2: {} 2126 | 2127 | boolbase@1.0.0: {} 2128 | 2129 | boxen@8.0.1: 2130 | dependencies: 2131 | ansi-align: 3.0.1 2132 | camelcase: 8.0.0 2133 | chalk: 5.4.1 2134 | cli-boxes: 3.0.0 2135 | string-width: 7.2.0 2136 | type-fest: 4.34.1 2137 | widest-line: 5.0.0 2138 | wrap-ansi: 9.0.0 2139 | 2140 | bplist-parser@0.2.0: 2141 | dependencies: 2142 | big-integer: 1.6.52 2143 | 2144 | brace-expansion@1.1.11: 2145 | dependencies: 2146 | balanced-match: 1.0.2 2147 | concat-map: 0.0.1 2148 | 2149 | buffer-alloc-unsafe@1.1.0: 2150 | optional: true 2151 | 2152 | buffer-alloc@1.2.0: 2153 | dependencies: 2154 | buffer-alloc-unsafe: 1.1.0 2155 | buffer-fill: 1.0.0 2156 | optional: true 2157 | 2158 | buffer-crc32@0.2.13: {} 2159 | 2160 | buffer-fill@1.0.0: 2161 | optional: true 2162 | 2163 | buffer-from@1.1.2: {} 2164 | 2165 | buffer@6.0.3: 2166 | dependencies: 2167 | base64-js: 1.5.1 2168 | ieee754: 1.2.1 2169 | 2170 | bundle-name@3.0.0: 2171 | dependencies: 2172 | run-applescript: 5.0.0 2173 | 2174 | busboy@1.6.0: 2175 | dependencies: 2176 | streamsearch: 1.1.0 2177 | 2178 | callsites@3.1.0: {} 2179 | 2180 | camelcase@8.0.0: {} 2181 | 2182 | camelize@1.0.1: {} 2183 | 2184 | caniuse-lite@1.0.30001699: {} 2185 | 2186 | chalk@4.1.2: 2187 | dependencies: 2188 | ansi-styles: 4.3.0 2189 | supports-color: 7.2.0 2190 | 2191 | chalk@5.4.1: {} 2192 | 2193 | cheerio-select@2.1.0: 2194 | dependencies: 2195 | boolbase: 1.0.0 2196 | css-select: 5.1.0 2197 | css-what: 6.1.0 2198 | domelementtype: 2.3.0 2199 | domhandler: 5.0.3 2200 | domutils: 3.2.2 2201 | 2202 | cheerio@1.0.0-rc.12: 2203 | dependencies: 2204 | cheerio-select: 2.1.0 2205 | dom-serializer: 2.0.0 2206 | domhandler: 5.0.3 2207 | domutils: 3.2.2 2208 | htmlparser2: 8.0.2 2209 | parse5: 7.2.1 2210 | parse5-htmlparser2-tree-adapter: 7.1.0 2211 | 2212 | chrome-launcher@1.1.2: 2213 | dependencies: 2214 | '@types/node': 22.13.4 2215 | escape-string-regexp: 4.0.0 2216 | is-wsl: 2.2.0 2217 | lighthouse-logger: 2.0.1 2218 | transitivePeerDependencies: 2219 | - supports-color 2220 | 2221 | cli-boxes@3.0.0: {} 2222 | 2223 | client-only@0.0.1: {} 2224 | 2225 | cliui@8.0.1: 2226 | dependencies: 2227 | string-width: 4.2.3 2228 | strip-ansi: 6.0.1 2229 | wrap-ansi: 7.0.0 2230 | 2231 | clone@1.0.4: {} 2232 | 2233 | clsx@1.2.1: {} 2234 | 2235 | color-convert@2.0.1: 2236 | dependencies: 2237 | color-name: 1.1.4 2238 | 2239 | color-name@1.1.4: {} 2240 | 2241 | color-string@1.9.1: 2242 | dependencies: 2243 | color-name: 1.1.4 2244 | simple-swizzle: 0.2.2 2245 | optional: true 2246 | 2247 | color@4.2.3: 2248 | dependencies: 2249 | color-convert: 2.0.1 2250 | color-string: 1.9.1 2251 | optional: true 2252 | 2253 | columnify@1.6.0: 2254 | dependencies: 2255 | strip-ansi: 6.0.1 2256 | wcwidth: 1.0.1 2257 | 2258 | commander@2.9.0: 2259 | dependencies: 2260 | graceful-readlink: 1.0.1 2261 | 2262 | commander@9.5.0: {} 2263 | 2264 | common-tags@1.8.2: {} 2265 | 2266 | concat-map@0.0.1: {} 2267 | 2268 | concat-stream@1.6.2: 2269 | dependencies: 2270 | buffer-from: 1.1.2 2271 | inherits: 2.0.4 2272 | readable-stream: 2.3.8 2273 | typedarray: 0.0.6 2274 | 2275 | config-chain@1.1.13: 2276 | dependencies: 2277 | ini: 1.3.8 2278 | proto-list: 1.2.4 2279 | 2280 | configstore@7.0.0: 2281 | dependencies: 2282 | atomically: 2.0.3 2283 | dot-prop: 9.0.0 2284 | graceful-fs: 4.2.11 2285 | xdg-basedir: 5.1.0 2286 | 2287 | core-util-is@1.0.3: {} 2288 | 2289 | cross-spawn@7.0.6: 2290 | dependencies: 2291 | path-key: 3.1.1 2292 | shebang-command: 2.0.0 2293 | which: 2.0.2 2294 | 2295 | css-color-keywords@1.0.0: {} 2296 | 2297 | css-select@5.1.0: 2298 | dependencies: 2299 | boolbase: 1.0.0 2300 | css-what: 6.1.0 2301 | domhandler: 5.0.3 2302 | domutils: 3.2.2 2303 | nth-check: 2.1.1 2304 | 2305 | css-to-react-native@3.2.0: 2306 | dependencies: 2307 | camelize: 1.0.1 2308 | css-color-keywords: 1.0.0 2309 | postcss-value-parser: 4.2.0 2310 | 2311 | css-what@6.1.0: {} 2312 | 2313 | csstype@3.1.3: {} 2314 | 2315 | debounce@1.2.1: {} 2316 | 2317 | debug@2.6.9: 2318 | dependencies: 2319 | ms: 2.0.0 2320 | 2321 | debug@4.3.7: 2322 | dependencies: 2323 | ms: 2.1.3 2324 | 2325 | debug@4.4.0: 2326 | dependencies: 2327 | ms: 2.1.3 2328 | 2329 | decamelize@6.0.0: {} 2330 | 2331 | deep-extend@0.6.0: {} 2332 | 2333 | deep-is@0.1.4: {} 2334 | 2335 | deepmerge@4.3.1: {} 2336 | 2337 | default-browser-id@3.0.0: 2338 | dependencies: 2339 | bplist-parser: 0.2.0 2340 | untildify: 4.0.0 2341 | 2342 | default-browser@4.0.0: 2343 | dependencies: 2344 | bundle-name: 3.0.0 2345 | default-browser-id: 3.0.0 2346 | execa: 7.2.0 2347 | titleize: 3.0.0 2348 | 2349 | defaults@1.0.4: 2350 | dependencies: 2351 | clone: 1.0.4 2352 | 2353 | define-lazy-prop@3.0.0: {} 2354 | 2355 | detect-libc@2.0.3: 2356 | optional: true 2357 | 2358 | doctrine@3.0.0: 2359 | dependencies: 2360 | esutils: 2.0.3 2361 | 2362 | dom-serializer@2.0.0: 2363 | dependencies: 2364 | domelementtype: 2.3.0 2365 | domhandler: 5.0.3 2366 | entities: 4.5.0 2367 | 2368 | domelementtype@2.3.0: {} 2369 | 2370 | domhandler@5.0.3: 2371 | dependencies: 2372 | domelementtype: 2.3.0 2373 | 2374 | domutils@3.2.2: 2375 | dependencies: 2376 | dom-serializer: 2.0.0 2377 | domelementtype: 2.3.0 2378 | domhandler: 5.0.3 2379 | 2380 | dot-prop@9.0.0: 2381 | dependencies: 2382 | type-fest: 4.34.1 2383 | 2384 | emoji-regex@10.4.0: {} 2385 | 2386 | emoji-regex@8.0.0: {} 2387 | 2388 | entities@4.5.0: {} 2389 | 2390 | error-ex@1.3.2: 2391 | dependencies: 2392 | is-arrayish: 0.2.1 2393 | 2394 | es6-error@4.1.1: {} 2395 | 2396 | escalade@3.2.0: {} 2397 | 2398 | escape-goat@4.0.0: {} 2399 | 2400 | escape-string-regexp@4.0.0: {} 2401 | 2402 | eslint-plugin-no-unsanitized@4.1.2(eslint@8.57.1): 2403 | dependencies: 2404 | eslint: 8.57.1 2405 | 2406 | eslint-scope@7.2.2: 2407 | dependencies: 2408 | esrecurse: 4.3.0 2409 | estraverse: 5.3.0 2410 | 2411 | eslint-visitor-keys@3.4.3: {} 2412 | 2413 | eslint-visitor-keys@4.2.0: {} 2414 | 2415 | eslint@8.57.1: 2416 | dependencies: 2417 | '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.1) 2418 | '@eslint-community/regexpp': 4.12.1 2419 | '@eslint/eslintrc': 2.1.4 2420 | '@eslint/js': 8.57.1 2421 | '@humanwhocodes/config-array': 0.13.0 2422 | '@humanwhocodes/module-importer': 1.0.1 2423 | '@nodelib/fs.walk': 1.2.8 2424 | '@ungap/structured-clone': 1.3.0 2425 | ajv: 6.12.6 2426 | chalk: 4.1.2 2427 | cross-spawn: 7.0.6 2428 | debug: 4.4.0 2429 | doctrine: 3.0.0 2430 | escape-string-regexp: 4.0.0 2431 | eslint-scope: 7.2.2 2432 | eslint-visitor-keys: 3.4.3 2433 | espree: 9.6.1 2434 | esquery: 1.6.0 2435 | esutils: 2.0.3 2436 | fast-deep-equal: 3.1.3 2437 | file-entry-cache: 6.0.1 2438 | find-up: 5.0.0 2439 | glob-parent: 6.0.2 2440 | globals: 13.24.0 2441 | graphemer: 1.4.0 2442 | ignore: 5.3.2 2443 | imurmurhash: 0.1.4 2444 | is-glob: 4.0.3 2445 | is-path-inside: 3.0.3 2446 | js-yaml: 4.1.0 2447 | json-stable-stringify-without-jsonify: 1.0.1 2448 | levn: 0.4.1 2449 | lodash.merge: 4.6.2 2450 | minimatch: 3.1.2 2451 | natural-compare: 1.4.0 2452 | optionator: 0.9.4 2453 | strip-ansi: 6.0.1 2454 | text-table: 0.2.0 2455 | transitivePeerDependencies: 2456 | - supports-color 2457 | 2458 | espree@10.3.0: 2459 | dependencies: 2460 | acorn: 8.14.0 2461 | acorn-jsx: 5.3.2(acorn@8.14.0) 2462 | eslint-visitor-keys: 4.2.0 2463 | 2464 | espree@9.6.1: 2465 | dependencies: 2466 | acorn: 8.14.0 2467 | acorn-jsx: 5.3.2(acorn@8.14.0) 2468 | eslint-visitor-keys: 3.4.3 2469 | 2470 | esprima@4.0.1: {} 2471 | 2472 | esquery@1.6.0: 2473 | dependencies: 2474 | estraverse: 5.3.0 2475 | 2476 | esrecurse@4.3.0: 2477 | dependencies: 2478 | estraverse: 5.3.0 2479 | 2480 | estraverse@5.3.0: {} 2481 | 2482 | esutils@2.0.3: {} 2483 | 2484 | event-target-shim@5.0.1: {} 2485 | 2486 | events@3.3.0: {} 2487 | 2488 | execa@5.1.1: 2489 | dependencies: 2490 | cross-spawn: 7.0.6 2491 | get-stream: 6.0.1 2492 | human-signals: 2.1.0 2493 | is-stream: 2.0.1 2494 | merge-stream: 2.0.0 2495 | npm-run-path: 4.0.1 2496 | onetime: 5.1.2 2497 | signal-exit: 3.0.7 2498 | strip-final-newline: 2.0.0 2499 | 2500 | execa@7.2.0: 2501 | dependencies: 2502 | cross-spawn: 7.0.6 2503 | get-stream: 6.0.1 2504 | human-signals: 4.3.1 2505 | is-stream: 3.0.0 2506 | merge-stream: 2.0.0 2507 | npm-run-path: 5.3.0 2508 | onetime: 6.0.0 2509 | signal-exit: 3.0.7 2510 | strip-final-newline: 3.0.0 2511 | 2512 | fast-deep-equal@3.1.3: {} 2513 | 2514 | fast-json-patch@3.1.1: {} 2515 | 2516 | fast-json-stable-stringify@2.1.0: {} 2517 | 2518 | fast-levenshtein@2.0.6: {} 2519 | 2520 | fast-redact@3.5.0: {} 2521 | 2522 | fast-uri@3.0.6: {} 2523 | 2524 | fastq@1.19.0: 2525 | dependencies: 2526 | reusify: 1.0.4 2527 | 2528 | fd-slicer@1.1.0: 2529 | dependencies: 2530 | pend: 1.2.0 2531 | 2532 | file-entry-cache@6.0.1: 2533 | dependencies: 2534 | flat-cache: 3.2.0 2535 | 2536 | find-up@5.0.0: 2537 | dependencies: 2538 | locate-path: 6.0.0 2539 | path-exists: 4.0.0 2540 | 2541 | firefox-profile@4.7.0: 2542 | dependencies: 2543 | adm-zip: 0.5.16 2544 | fs-extra: 11.3.0 2545 | ini: 4.1.3 2546 | minimist: 1.2.8 2547 | xml2js: 0.6.2 2548 | 2549 | first-chunk-stream@3.0.0: {} 2550 | 2551 | flat-cache@3.2.0: 2552 | dependencies: 2553 | flatted: 3.3.2 2554 | keyv: 4.5.4 2555 | rimraf: 3.0.2 2556 | 2557 | flatted@3.3.2: {} 2558 | 2559 | fs-extra@11.3.0: 2560 | dependencies: 2561 | graceful-fs: 4.2.11 2562 | jsonfile: 6.1.0 2563 | universalify: 2.0.1 2564 | 2565 | fs.realpath@1.0.0: {} 2566 | 2567 | fx-runner@1.4.0: 2568 | dependencies: 2569 | commander: 2.9.0 2570 | shell-quote: 1.7.3 2571 | spawn-sync: 1.0.15 2572 | when: 3.7.7 2573 | which: 1.2.4 2574 | winreg: 0.0.12 2575 | 2576 | get-caller-file@2.0.5: {} 2577 | 2578 | get-east-asian-width@1.3.0: {} 2579 | 2580 | get-stream@6.0.1: {} 2581 | 2582 | glob-parent@6.0.2: 2583 | dependencies: 2584 | is-glob: 4.0.3 2585 | 2586 | glob-to-regexp@0.4.1: {} 2587 | 2588 | glob@7.2.3: 2589 | dependencies: 2590 | fs.realpath: 1.0.0 2591 | inflight: 1.0.6 2592 | inherits: 2.0.4 2593 | minimatch: 3.1.2 2594 | once: 1.4.0 2595 | path-is-absolute: 1.0.1 2596 | 2597 | global-directory@4.0.1: 2598 | dependencies: 2599 | ini: 4.1.1 2600 | 2601 | globals@13.24.0: 2602 | dependencies: 2603 | type-fest: 0.20.2 2604 | 2605 | graceful-fs@4.2.10: {} 2606 | 2607 | graceful-fs@4.2.11: {} 2608 | 2609 | graceful-readlink@1.0.1: {} 2610 | 2611 | graphemer@1.4.0: {} 2612 | 2613 | growly@1.3.0: {} 2614 | 2615 | has-flag@4.0.0: {} 2616 | 2617 | hoist-non-react-statics@3.3.2: 2618 | dependencies: 2619 | react-is: 16.13.1 2620 | 2621 | htmlparser2@8.0.2: 2622 | dependencies: 2623 | domelementtype: 2.3.0 2624 | domhandler: 5.0.3 2625 | domutils: 3.2.2 2626 | entities: 4.5.0 2627 | 2628 | https-proxy-agent@7.0.6: 2629 | dependencies: 2630 | agent-base: 7.1.3 2631 | debug: 4.4.0 2632 | transitivePeerDependencies: 2633 | - supports-color 2634 | 2635 | human-signals@2.1.0: {} 2636 | 2637 | human-signals@4.3.1: {} 2638 | 2639 | ieee754@1.2.1: {} 2640 | 2641 | ignore@5.3.2: {} 2642 | 2643 | image-size@1.2.0: 2644 | dependencies: 2645 | queue: 6.0.2 2646 | 2647 | immediate@3.0.6: {} 2648 | 2649 | import-fresh@3.3.0: 2650 | dependencies: 2651 | parent-module: 1.0.1 2652 | resolve-from: 4.0.0 2653 | 2654 | imurmurhash@0.1.4: {} 2655 | 2656 | inflight@1.0.6: 2657 | dependencies: 2658 | once: 1.4.0 2659 | wrappy: 1.0.2 2660 | 2661 | inherits@2.0.4: {} 2662 | 2663 | ini@1.3.8: {} 2664 | 2665 | ini@4.1.1: {} 2666 | 2667 | ini@4.1.3: {} 2668 | 2669 | is-absolute@0.1.7: 2670 | dependencies: 2671 | is-relative: 0.1.3 2672 | 2673 | is-arrayish@0.2.1: {} 2674 | 2675 | is-arrayish@0.3.2: 2676 | optional: true 2677 | 2678 | is-docker@2.2.1: {} 2679 | 2680 | is-docker@3.0.0: {} 2681 | 2682 | is-extglob@2.1.1: {} 2683 | 2684 | is-fullwidth-code-point@3.0.0: {} 2685 | 2686 | is-glob@4.0.3: 2687 | dependencies: 2688 | is-extglob: 2.1.1 2689 | 2690 | is-in-ci@1.0.0: {} 2691 | 2692 | is-inside-container@1.0.0: 2693 | dependencies: 2694 | is-docker: 3.0.0 2695 | 2696 | is-installed-globally@1.0.0: 2697 | dependencies: 2698 | global-directory: 4.0.1 2699 | is-path-inside: 4.0.0 2700 | 2701 | is-npm@6.0.0: {} 2702 | 2703 | is-path-inside@3.0.3: {} 2704 | 2705 | is-path-inside@4.0.0: {} 2706 | 2707 | is-relative@0.1.3: {} 2708 | 2709 | is-stream@2.0.1: {} 2710 | 2711 | is-stream@3.0.0: {} 2712 | 2713 | is-utf8@0.2.1: {} 2714 | 2715 | is-wsl@2.2.0: 2716 | dependencies: 2717 | is-docker: 2.2.1 2718 | 2719 | isarray@1.0.0: {} 2720 | 2721 | isexe@1.1.2: {} 2722 | 2723 | isexe@2.0.0: {} 2724 | 2725 | jose@5.9.6: {} 2726 | 2727 | js-tokens@4.0.0: {} 2728 | 2729 | js-yaml@4.1.0: 2730 | dependencies: 2731 | argparse: 2.0.1 2732 | 2733 | json-buffer@3.0.1: {} 2734 | 2735 | json-merge-patch@1.0.2: 2736 | dependencies: 2737 | fast-deep-equal: 3.1.3 2738 | 2739 | json-parse-even-better-errors@3.0.2: {} 2740 | 2741 | json-schema-traverse@0.4.1: {} 2742 | 2743 | json-schema-traverse@1.0.0: {} 2744 | 2745 | json-stable-stringify-without-jsonify@1.0.1: {} 2746 | 2747 | jsonfile@6.1.0: 2748 | dependencies: 2749 | universalify: 2.0.1 2750 | optionalDependencies: 2751 | graceful-fs: 4.2.11 2752 | 2753 | jszip@3.10.1: 2754 | dependencies: 2755 | lie: 3.3.0 2756 | pako: 1.0.11 2757 | readable-stream: 2.3.8 2758 | setimmediate: 1.0.5 2759 | 2760 | keyv@4.5.4: 2761 | dependencies: 2762 | json-buffer: 3.0.1 2763 | 2764 | ky@1.7.5: {} 2765 | 2766 | latest-version@9.0.0: 2767 | dependencies: 2768 | package-json: 10.0.1 2769 | 2770 | levn@0.4.1: 2771 | dependencies: 2772 | prelude-ls: 1.2.1 2773 | type-check: 0.4.0 2774 | 2775 | lie@3.3.0: 2776 | dependencies: 2777 | immediate: 3.0.6 2778 | 2779 | lighthouse-logger@2.0.1: 2780 | dependencies: 2781 | debug: 2.6.9 2782 | marky: 1.2.5 2783 | transitivePeerDependencies: 2784 | - supports-color 2785 | 2786 | lines-and-columns@2.0.4: {} 2787 | 2788 | locate-path@6.0.0: 2789 | dependencies: 2790 | p-locate: 5.0.0 2791 | 2792 | lodash.debounce@4.0.8: {} 2793 | 2794 | lodash.merge@4.6.2: {} 2795 | 2796 | make-error@1.3.6: {} 2797 | 2798 | marky@1.2.5: {} 2799 | 2800 | merge-stream@2.0.0: {} 2801 | 2802 | mimic-fn@2.1.0: {} 2803 | 2804 | mimic-fn@4.0.0: {} 2805 | 2806 | minimatch@3.1.2: 2807 | dependencies: 2808 | brace-expansion: 1.1.11 2809 | 2810 | minimist@1.2.8: {} 2811 | 2812 | ms@2.0.0: {} 2813 | 2814 | ms@2.1.3: {} 2815 | 2816 | multimatch@6.0.0: 2817 | dependencies: 2818 | '@types/minimatch': 3.0.5 2819 | array-differ: 4.0.0 2820 | array-union: 3.0.1 2821 | minimatch: 3.1.2 2822 | 2823 | nanoid@3.3.8: {} 2824 | 2825 | natural-compare@1.4.0: {} 2826 | 2827 | next@15.1.7(react-dom@19.0.0(react@19.0.0))(react@19.0.0): 2828 | dependencies: 2829 | '@next/env': 15.1.7 2830 | '@swc/counter': 0.1.3 2831 | '@swc/helpers': 0.5.15 2832 | busboy: 1.6.0 2833 | caniuse-lite: 1.0.30001699 2834 | postcss: 8.4.31 2835 | react: 19.0.0 2836 | react-dom: 19.0.0(react@19.0.0) 2837 | styled-jsx: 5.1.6(react@19.0.0) 2838 | optionalDependencies: 2839 | '@next/swc-darwin-arm64': 15.1.7 2840 | '@next/swc-darwin-x64': 15.1.7 2841 | '@next/swc-linux-arm64-gnu': 15.1.7 2842 | '@next/swc-linux-arm64-musl': 15.1.7 2843 | '@next/swc-linux-x64-gnu': 15.1.7 2844 | '@next/swc-linux-x64-musl': 15.1.7 2845 | '@next/swc-win32-arm64-msvc': 15.1.7 2846 | '@next/swc-win32-x64-msvc': 15.1.7 2847 | sharp: 0.33.5 2848 | transitivePeerDependencies: 2849 | - '@babel/core' 2850 | - babel-plugin-macros 2851 | 2852 | node-forge@1.3.1: {} 2853 | 2854 | node-notifier@10.0.1: 2855 | dependencies: 2856 | growly: 1.3.0 2857 | is-wsl: 2.2.0 2858 | semver: 7.7.1 2859 | shellwords: 0.1.1 2860 | uuid: 8.3.2 2861 | which: 2.0.2 2862 | 2863 | npm-run-path@4.0.1: 2864 | dependencies: 2865 | path-key: 3.1.1 2866 | 2867 | npm-run-path@5.3.0: 2868 | dependencies: 2869 | path-key: 4.0.0 2870 | 2871 | nth-check@2.1.1: 2872 | dependencies: 2873 | boolbase: 1.0.0 2874 | 2875 | on-exit-leak-free@2.1.2: {} 2876 | 2877 | once@1.4.0: 2878 | dependencies: 2879 | wrappy: 1.0.2 2880 | 2881 | onetime@5.1.2: 2882 | dependencies: 2883 | mimic-fn: 2.1.0 2884 | 2885 | onetime@6.0.0: 2886 | dependencies: 2887 | mimic-fn: 4.0.0 2888 | 2889 | open@9.1.0: 2890 | dependencies: 2891 | default-browser: 4.0.0 2892 | define-lazy-prop: 3.0.0 2893 | is-inside-container: 1.0.0 2894 | is-wsl: 2.2.0 2895 | 2896 | optionator@0.9.4: 2897 | dependencies: 2898 | deep-is: 0.1.4 2899 | fast-levenshtein: 2.0.6 2900 | levn: 0.4.1 2901 | prelude-ls: 1.2.1 2902 | type-check: 0.4.0 2903 | word-wrap: 1.2.5 2904 | 2905 | os-shim@0.1.3: {} 2906 | 2907 | p-limit@3.1.0: 2908 | dependencies: 2909 | yocto-queue: 0.1.0 2910 | 2911 | p-locate@5.0.0: 2912 | dependencies: 2913 | p-limit: 3.1.0 2914 | 2915 | package-json@10.0.1: 2916 | dependencies: 2917 | ky: 1.7.5 2918 | registry-auth-token: 5.1.0 2919 | registry-url: 6.0.1 2920 | semver: 7.7.1 2921 | 2922 | pako@1.0.11: {} 2923 | 2924 | parent-module@1.0.1: 2925 | dependencies: 2926 | callsites: 3.1.0 2927 | 2928 | parse-json@7.1.1: 2929 | dependencies: 2930 | '@babel/code-frame': 7.26.2 2931 | error-ex: 1.3.2 2932 | json-parse-even-better-errors: 3.0.2 2933 | lines-and-columns: 2.0.4 2934 | type-fest: 3.13.1 2935 | 2936 | parse5-htmlparser2-tree-adapter@7.1.0: 2937 | dependencies: 2938 | domhandler: 5.0.3 2939 | parse5: 7.2.1 2940 | 2941 | parse5@7.2.1: 2942 | dependencies: 2943 | entities: 4.5.0 2944 | 2945 | path-exists@4.0.0: {} 2946 | 2947 | path-is-absolute@1.0.1: {} 2948 | 2949 | path-key@3.1.1: {} 2950 | 2951 | path-key@4.0.0: {} 2952 | 2953 | pend@1.2.0: {} 2954 | 2955 | picocolors@1.1.1: {} 2956 | 2957 | pino-abstract-transport@1.2.0: 2958 | dependencies: 2959 | readable-stream: 4.7.0 2960 | split2: 4.2.0 2961 | 2962 | pino-std-serializers@6.2.2: {} 2963 | 2964 | pino-std-serializers@7.0.0: {} 2965 | 2966 | pino@8.20.0: 2967 | dependencies: 2968 | atomic-sleep: 1.0.0 2969 | fast-redact: 3.5.0 2970 | on-exit-leak-free: 2.1.2 2971 | pino-abstract-transport: 1.2.0 2972 | pino-std-serializers: 6.2.2 2973 | process-warning: 3.0.0 2974 | quick-format-unescaped: 4.0.4 2975 | real-require: 0.2.0 2976 | safe-stable-stringify: 2.5.0 2977 | sonic-boom: 3.8.1 2978 | thread-stream: 2.7.0 2979 | 2980 | pino@9.4.0: 2981 | dependencies: 2982 | atomic-sleep: 1.0.0 2983 | fast-redact: 3.5.0 2984 | on-exit-leak-free: 2.1.2 2985 | pino-abstract-transport: 1.2.0 2986 | pino-std-serializers: 7.0.0 2987 | process-warning: 4.0.1 2988 | quick-format-unescaped: 4.0.4 2989 | real-require: 0.2.0 2990 | safe-stable-stringify: 2.5.0 2991 | sonic-boom: 4.2.0 2992 | thread-stream: 3.1.0 2993 | 2994 | postcss-value-parser@4.2.0: {} 2995 | 2996 | postcss@8.4.31: 2997 | dependencies: 2998 | nanoid: 3.3.8 2999 | picocolors: 1.1.1 3000 | source-map-js: 1.2.1 3001 | 3002 | postcss@8.4.49: 3003 | dependencies: 3004 | nanoid: 3.3.8 3005 | picocolors: 1.1.1 3006 | source-map-js: 1.2.1 3007 | 3008 | prelude-ls@1.2.1: {} 3009 | 3010 | process-nextick-args@2.0.1: {} 3011 | 3012 | process-warning@3.0.0: {} 3013 | 3014 | process-warning@4.0.1: {} 3015 | 3016 | process@0.11.10: {} 3017 | 3018 | promise-toolbox@0.21.0: 3019 | dependencies: 3020 | make-error: 1.3.6 3021 | 3022 | proto-list@1.2.4: {} 3023 | 3024 | punycode@2.3.1: {} 3025 | 3026 | pupa@3.1.0: 3027 | dependencies: 3028 | escape-goat: 4.0.0 3029 | 3030 | queue-microtask@1.2.3: {} 3031 | 3032 | queue@6.0.2: 3033 | dependencies: 3034 | inherits: 2.0.4 3035 | 3036 | quick-format-unescaped@4.0.4: {} 3037 | 3038 | rc@1.2.8: 3039 | dependencies: 3040 | deep-extend: 0.6.0 3041 | ini: 1.3.8 3042 | minimist: 1.2.8 3043 | strip-json-comments: 2.0.1 3044 | 3045 | react-contexify@6.0.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0): 3046 | dependencies: 3047 | clsx: 1.2.1 3048 | react: 19.0.0 3049 | react-dom: 19.0.0(react@19.0.0) 3050 | 3051 | react-dom@19.0.0(react@19.0.0): 3052 | dependencies: 3053 | react: 19.0.0 3054 | scheduler: 0.25.0 3055 | 3056 | react-is@16.13.1: {} 3057 | 3058 | react@19.0.0: {} 3059 | 3060 | readable-stream@2.3.8: 3061 | dependencies: 3062 | core-util-is: 1.0.3 3063 | inherits: 2.0.4 3064 | isarray: 1.0.0 3065 | process-nextick-args: 2.0.1 3066 | safe-buffer: 5.1.2 3067 | string_decoder: 1.1.1 3068 | util-deprecate: 1.0.2 3069 | 3070 | readable-stream@4.7.0: 3071 | dependencies: 3072 | abort-controller: 3.0.0 3073 | buffer: 6.0.3 3074 | events: 3.3.0 3075 | process: 0.11.10 3076 | string_decoder: 1.3.0 3077 | 3078 | real-require@0.2.0: {} 3079 | 3080 | regenerator-runtime@0.14.1: {} 3081 | 3082 | registry-auth-token@5.1.0: 3083 | dependencies: 3084 | '@pnpm/npm-conf': 2.3.1 3085 | 3086 | registry-url@6.0.1: 3087 | dependencies: 3088 | rc: 1.2.8 3089 | 3090 | require-directory@2.1.1: {} 3091 | 3092 | require-from-string@2.0.2: {} 3093 | 3094 | resolve-from@4.0.0: {} 3095 | 3096 | reusify@1.0.4: {} 3097 | 3098 | rimraf@3.0.2: 3099 | dependencies: 3100 | glob: 7.2.3 3101 | 3102 | run-applescript@5.0.0: 3103 | dependencies: 3104 | execa: 5.1.1 3105 | 3106 | run-parallel@1.2.0: 3107 | dependencies: 3108 | queue-microtask: 1.2.3 3109 | 3110 | safe-buffer@5.1.2: {} 3111 | 3112 | safe-buffer@5.2.1: {} 3113 | 3114 | safe-compare@1.1.4: 3115 | dependencies: 3116 | buffer-alloc: 1.2.0 3117 | optional: true 3118 | 3119 | safe-stable-stringify@2.5.0: {} 3120 | 3121 | sax@1.4.1: {} 3122 | 3123 | scheduler@0.25.0: {} 3124 | 3125 | semver@7.6.3: {} 3126 | 3127 | semver@7.7.1: {} 3128 | 3129 | setimmediate@1.0.5: {} 3130 | 3131 | shallowequal@1.1.0: {} 3132 | 3133 | sharp@0.33.5: 3134 | dependencies: 3135 | color: 4.2.3 3136 | detect-libc: 2.0.3 3137 | semver: 7.7.1 3138 | optionalDependencies: 3139 | '@img/sharp-darwin-arm64': 0.33.5 3140 | '@img/sharp-darwin-x64': 0.33.5 3141 | '@img/sharp-libvips-darwin-arm64': 1.0.4 3142 | '@img/sharp-libvips-darwin-x64': 1.0.4 3143 | '@img/sharp-libvips-linux-arm': 1.0.5 3144 | '@img/sharp-libvips-linux-arm64': 1.0.4 3145 | '@img/sharp-libvips-linux-s390x': 1.0.4 3146 | '@img/sharp-libvips-linux-x64': 1.0.4 3147 | '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 3148 | '@img/sharp-libvips-linuxmusl-x64': 1.0.4 3149 | '@img/sharp-linux-arm': 0.33.5 3150 | '@img/sharp-linux-arm64': 0.33.5 3151 | '@img/sharp-linux-s390x': 0.33.5 3152 | '@img/sharp-linux-x64': 0.33.5 3153 | '@img/sharp-linuxmusl-arm64': 0.33.5 3154 | '@img/sharp-linuxmusl-x64': 0.33.5 3155 | '@img/sharp-wasm32': 0.33.5 3156 | '@img/sharp-win32-ia32': 0.33.5 3157 | '@img/sharp-win32-x64': 0.33.5 3158 | optional: true 3159 | 3160 | shebang-command@2.0.0: 3161 | dependencies: 3162 | shebang-regex: 3.0.0 3163 | 3164 | shebang-regex@3.0.0: {} 3165 | 3166 | shell-quote@1.7.3: {} 3167 | 3168 | shellwords@0.1.1: {} 3169 | 3170 | signal-exit@3.0.7: {} 3171 | 3172 | simple-swizzle@0.2.2: 3173 | dependencies: 3174 | is-arrayish: 0.3.2 3175 | optional: true 3176 | 3177 | sonic-boom@3.8.1: 3178 | dependencies: 3179 | atomic-sleep: 1.0.0 3180 | 3181 | sonic-boom@4.2.0: 3182 | dependencies: 3183 | atomic-sleep: 1.0.0 3184 | 3185 | source-map-js@1.2.1: {} 3186 | 3187 | source-map-support@0.5.21: 3188 | dependencies: 3189 | buffer-from: 1.1.2 3190 | source-map: 0.6.1 3191 | 3192 | source-map@0.6.1: {} 3193 | 3194 | spawn-sync@1.0.15: 3195 | dependencies: 3196 | concat-stream: 1.6.2 3197 | os-shim: 0.1.3 3198 | 3199 | split2@4.2.0: {} 3200 | 3201 | split@1.0.1: 3202 | dependencies: 3203 | through: 2.3.8 3204 | 3205 | streamsearch@1.1.0: {} 3206 | 3207 | string-width@4.2.3: 3208 | dependencies: 3209 | emoji-regex: 8.0.0 3210 | is-fullwidth-code-point: 3.0.0 3211 | strip-ansi: 6.0.1 3212 | 3213 | string-width@7.2.0: 3214 | dependencies: 3215 | emoji-regex: 10.4.0 3216 | get-east-asian-width: 1.3.0 3217 | strip-ansi: 7.1.0 3218 | 3219 | string_decoder@1.1.1: 3220 | dependencies: 3221 | safe-buffer: 5.1.2 3222 | 3223 | string_decoder@1.3.0: 3224 | dependencies: 3225 | safe-buffer: 5.2.1 3226 | 3227 | strip-ansi@6.0.1: 3228 | dependencies: 3229 | ansi-regex: 5.0.1 3230 | 3231 | strip-ansi@7.1.0: 3232 | dependencies: 3233 | ansi-regex: 6.1.0 3234 | 3235 | strip-bom-buf@2.0.0: 3236 | dependencies: 3237 | is-utf8: 0.2.1 3238 | 3239 | strip-bom-stream@4.0.0: 3240 | dependencies: 3241 | first-chunk-stream: 3.0.0 3242 | strip-bom-buf: 2.0.0 3243 | 3244 | strip-bom@5.0.0: {} 3245 | 3246 | strip-final-newline@2.0.0: {} 3247 | 3248 | strip-final-newline@3.0.0: {} 3249 | 3250 | strip-json-comments@2.0.1: {} 3251 | 3252 | strip-json-comments@3.1.1: {} 3253 | 3254 | strip-json-comments@5.0.1: {} 3255 | 3256 | stubborn-fs@1.2.5: {} 3257 | 3258 | styled-components@6.1.15(react-dom@19.0.0(react@19.0.0))(react@19.0.0): 3259 | dependencies: 3260 | '@emotion/is-prop-valid': 1.2.2 3261 | '@emotion/unitless': 0.8.1 3262 | '@types/stylis': 4.2.5 3263 | css-to-react-native: 3.2.0 3264 | csstype: 3.1.3 3265 | postcss: 8.4.49 3266 | react: 19.0.0 3267 | react-dom: 19.0.0(react@19.0.0) 3268 | shallowequal: 1.1.0 3269 | stylis: 4.3.2 3270 | tslib: 2.6.2 3271 | 3272 | styled-jsx@5.1.6(react@19.0.0): 3273 | dependencies: 3274 | client-only: 0.0.1 3275 | react: 19.0.0 3276 | 3277 | stylis@4.3.2: {} 3278 | 3279 | supports-color@7.2.0: 3280 | dependencies: 3281 | has-flag: 4.0.0 3282 | 3283 | text-table@0.2.0: {} 3284 | 3285 | thread-stream@2.7.0: 3286 | dependencies: 3287 | real-require: 0.2.0 3288 | 3289 | thread-stream@3.1.0: 3290 | dependencies: 3291 | real-require: 0.2.0 3292 | 3293 | through@2.3.8: {} 3294 | 3295 | titleize@3.0.0: {} 3296 | 3297 | tmp@0.2.3: {} 3298 | 3299 | tslib@2.6.2: {} 3300 | 3301 | tslib@2.8.1: {} 3302 | 3303 | type-check@0.4.0: 3304 | dependencies: 3305 | prelude-ls: 1.2.1 3306 | 3307 | type-fest@0.20.2: {} 3308 | 3309 | type-fest@3.13.1: {} 3310 | 3311 | type-fest@4.34.1: {} 3312 | 3313 | typedarray@0.0.6: {} 3314 | 3315 | typescript@5.7.3: {} 3316 | 3317 | undici-types@6.20.0: {} 3318 | 3319 | universalify@2.0.1: {} 3320 | 3321 | untildify@4.0.0: {} 3322 | 3323 | upath@2.0.1: {} 3324 | 3325 | update-notifier@7.3.1: 3326 | dependencies: 3327 | boxen: 8.0.1 3328 | chalk: 5.4.1 3329 | configstore: 7.0.0 3330 | is-in-ci: 1.0.0 3331 | is-installed-globally: 1.0.0 3332 | is-npm: 6.0.0 3333 | latest-version: 9.0.0 3334 | pupa: 3.1.0 3335 | semver: 7.7.1 3336 | xdg-basedir: 5.1.0 3337 | 3338 | uri-js@4.4.1: 3339 | dependencies: 3340 | punycode: 2.3.1 3341 | 3342 | util-deprecate@1.0.2: {} 3343 | 3344 | uuid@8.3.2: {} 3345 | 3346 | watchpack@2.4.2: 3347 | dependencies: 3348 | glob-to-regexp: 0.4.1 3349 | graceful-fs: 4.2.11 3350 | 3351 | wcwidth@1.0.1: 3352 | dependencies: 3353 | defaults: 1.0.4 3354 | 3355 | web-ext@8.4.0(safe-compare@1.1.4): 3356 | dependencies: 3357 | '@babel/runtime': 7.26.7 3358 | '@devicefarmer/adbkit': 3.3.8 3359 | addons-linter: 7.8.0(safe-compare@1.1.4) 3360 | camelcase: 8.0.0 3361 | chrome-launcher: 1.1.2 3362 | debounce: 1.2.1 3363 | decamelize: 6.0.0 3364 | es6-error: 4.1.1 3365 | firefox-profile: 4.7.0 3366 | fx-runner: 1.4.0 3367 | https-proxy-agent: 7.0.6 3368 | jose: 5.9.6 3369 | jszip: 3.10.1 3370 | multimatch: 6.0.0 3371 | node-notifier: 10.0.1 3372 | open: 9.1.0 3373 | parse-json: 7.1.1 3374 | pino: 9.4.0 3375 | promise-toolbox: 0.21.0 3376 | source-map-support: 0.5.21 3377 | strip-bom: 5.0.0 3378 | strip-json-comments: 5.0.1 3379 | tmp: 0.2.3 3380 | update-notifier: 7.3.1 3381 | watchpack: 2.4.2 3382 | ws: 8.18.0 3383 | yargs: 17.7.2 3384 | zip-dir: 2.0.0 3385 | transitivePeerDependencies: 3386 | - body-parser 3387 | - bufferutil 3388 | - express 3389 | - node-fetch 3390 | - safe-compare 3391 | - supports-color 3392 | - utf-8-validate 3393 | 3394 | when-exit@2.1.4: {} 3395 | 3396 | when@3.7.7: {} 3397 | 3398 | which@1.2.4: 3399 | dependencies: 3400 | is-absolute: 0.1.7 3401 | isexe: 1.1.2 3402 | 3403 | which@2.0.2: 3404 | dependencies: 3405 | isexe: 2.0.0 3406 | 3407 | widest-line@5.0.0: 3408 | dependencies: 3409 | string-width: 7.2.0 3410 | 3411 | winreg@0.0.12: {} 3412 | 3413 | word-wrap@1.2.5: {} 3414 | 3415 | wrap-ansi@7.0.0: 3416 | dependencies: 3417 | ansi-styles: 4.3.0 3418 | string-width: 4.2.3 3419 | strip-ansi: 6.0.1 3420 | 3421 | wrap-ansi@9.0.0: 3422 | dependencies: 3423 | ansi-styles: 6.2.1 3424 | string-width: 7.2.0 3425 | strip-ansi: 7.1.0 3426 | 3427 | wrappy@1.0.2: {} 3428 | 3429 | ws@8.18.0: {} 3430 | 3431 | xdg-basedir@5.1.0: {} 3432 | 3433 | xml2js@0.6.2: 3434 | dependencies: 3435 | sax: 1.4.1 3436 | xmlbuilder: 11.0.1 3437 | 3438 | xmlbuilder@11.0.1: {} 3439 | 3440 | y18n@5.0.8: {} 3441 | 3442 | yargs-parser@21.1.1: {} 3443 | 3444 | yargs@17.7.2: 3445 | dependencies: 3446 | cliui: 8.0.1 3447 | escalade: 3.2.0 3448 | get-caller-file: 2.0.5 3449 | require-directory: 2.1.1 3450 | string-width: 4.2.3 3451 | y18n: 5.0.8 3452 | yargs-parser: 21.1.1 3453 | 3454 | yauzl@2.10.0: 3455 | dependencies: 3456 | buffer-crc32: 0.2.13 3457 | fd-slicer: 1.1.0 3458 | 3459 | yocto-queue@0.1.0: {} 3460 | 3461 | zip-dir@2.0.0: 3462 | dependencies: 3463 | async: 3.2.6 3464 | jszip: 3.10.1 3465 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es5", 4 | "lib": [ 5 | "dom", 6 | "dom.iterable", 7 | "esnext" 8 | ], 9 | "allowJs": true, 10 | "skipLibCheck": true, 11 | "strict": false, 12 | "forceConsistentCasingInFileNames": true, 13 | "noEmit": true, 14 | "esModuleInterop": true, 15 | "module": "esnext", 16 | "moduleResolution": "node", 17 | "resolveJsonModule": true, 18 | "isolatedModules": true, 19 | "jsx": "preserve", 20 | "incremental": true 21 | }, 22 | "include": [ 23 | "next-env.d.ts", 24 | "**/*.ts", 25 | "**/*.tsx" 26 | ], 27 | "exclude": [ 28 | "node_modules" 29 | ] 30 | } 31 | -------------------------------------------------------------------------------- /types/Weather.ts: -------------------------------------------------------------------------------- 1 | export interface Weather { 2 | zip: string; 3 | city: string; 4 | temperature: Temperature; 5 | humidity: number; 6 | conditions: Condition[]; 7 | } 8 | 9 | export interface Condition { 10 | code: string; 11 | description: string; 12 | } 13 | 14 | export interface Temperature { 15 | current: number; 16 | max: number; 17 | min: number; 18 | } 19 | -------------------------------------------------------------------------------- /utils/geolocation.ts: -------------------------------------------------------------------------------- 1 | export async function getUsersGeolocation(): Promise<{ lat: number; lon: number }> { 2 | return new Promise((resolve, reject) => window.navigator.geolocation.getCurrentPosition((data) => { 3 | localStorage.setItem("tabatha_weather_coords", JSON.stringify({ lat: Number(data.coords.latitude.toFixed(6)), lon: Number(data.coords.longitude.toFixed(6)) })); 4 | resolve({ lat: Number(data.coords.latitude.toFixed(6)), lon: Number(data.coords.longitude.toFixed(6)) }); 5 | }, (error) => { 6 | console.error(error, 'error'); 7 | reject(error); 8 | })); 9 | } --------------------------------------------------------------------------------