diff --git a/.dockerignore b/.dockerignore index 801cf157..5d76eb1d 100644 --- a/.dockerignore +++ b/.dockerignore @@ -3,3 +3,14 @@ node_modules/ npm-debug.log yarn-error.log .github/ +.env.example +.env +dist/ +.git/ +.astro/ +~/ +.gitignore +biome.json +docker-compose.yml +Dockerfile +README.md diff --git a/.env b/.env deleted file mode 100644 index a01f1f2e..00000000 --- a/.env +++ /dev/null @@ -1 +0,0 @@ -MASQR=1 \ No newline at end of file diff --git a/.gitignore b/.gitignore index accc2e54..8e9c0bad 100644 --- a/.gitignore +++ b/.gitignore @@ -1,25 +1,36 @@ -# Logs -logs -*.log +# build output +dist/ +server/*.js + +# generated types +.astro/ + +# dependencies +node_modules/ +package-lock.json + +# logs npm-debug.log* yarn-debug.log* yarn-error.log* pnpm-debug.log* -lerna-debug.log* - -node_modules -package-lock.json -dist-ssr -dist -*.local +# environment variables +.env +.env.production -# Editor directories and files -.idea +# macOS-specific files .DS_Store -*.suo -*.ntvs* -*.njsproj -*.sln -*.sw? + +# jetbrains setting folder +.idea/ + +# nebula catalog database +database.sqlite + + +# YOUR config +config.toml + +# Goofy PNPM problem ~/ diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 00000000..bba93bb9 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "workerware"] + path = workerware + url = https://github.com/mercuryworkshop/workerware diff --git a/.prettierignore b/.prettierignore deleted file mode 100644 index a94d1d77..00000000 --- a/.prettierignore +++ /dev/null @@ -1,9 +0,0 @@ -# Build artifacts -dist/ - -# Other things that don't need to be reformatted -public/uv/ -public/dynamic/ -pnpm-lock.yaml -package-lock.json -package.json diff --git a/.prettierrc b/.prettierrc deleted file mode 100644 index 9a846d7d..00000000 --- a/.prettierrc +++ /dev/null @@ -1,8 +0,0 @@ -{ - "singleQuote": false, - "endOfLine": "crlf", - "tabWidth": 2, - "useTabs": false, - "trailingComma": "none", - "plugins": ["prettier-plugin-tailwindcss"] -} diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 00000000..2592970b --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,4 @@ +{ + "recommendations": ["astro-build.astro-vscode"], + "unwantedRecommendations": [] +} diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 00000000..e368c540 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,11 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "command": "./node_modules/.bin/astro dev", + "name": "Development server", + "request": "launch", + "type": "node-terminal" + } + ] +} diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index 44a46f46..00000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "editor.tabSize": 2, - "editor.insertSpaces": true, - "editor.formatOnSave": true, - "editor.formatOnPaste": true, - "editor.defaultFormatter": "esbenp.prettier-vscode", - "files.autoSave": "afterDelay", - "files.autoSaveDelay": 0, - "css.lint.unknownAtRules": "ignore", - "editor.linkedEditing": true, - "css.lint.unknownProperties": "ignore" -} diff --git a/Checkfailed.html b/Checkfailed.html deleted file mode 100644 index 7decc99c..00000000 --- a/Checkfailed.html +++ /dev/null @@ -1,40 +0,0 @@ - - - - Welcome to nginx! - - - -

Welcome to nginx!

-

- If you see this page, the nginx web server is successfully installed and - working. Further configuration is required. If you are expecting another - page, please check your network or - Refresh this page -

- -

- For online documentation and support please refer to - nginx.org.
- Commercial support is available at - nginx.com. -

- -

Thank you for using nginx.

- - - diff --git a/Dockerfile b/Dockerfile index 06df85ce..6167567f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,14 +1,19 @@ -FROM node:21-alpine +FROM node:22-alpine WORKDIR /app COPY package*.json . COPY . . +RUN apk update +RUN apk add python3 py3-pip alpine-sdk openssl-dev build-base python3-dev +RUN python3 -m pip install setuptools --break-system-packages +RUN cp -n config.example.toml config.toml RUN npm i -g pnpm RUN pnpm install RUN pnpm run build - +RUN export TERM=xterm-256color +VOLUME /app EXPOSE 8080 - -CMD ["pnpm", "start"] +ENTRYPOINT ["pnpm"] +CMD ["start", "--color"] diff --git a/README.md b/README.md index 67e250e9..9b7651ed 100644 --- a/README.md +++ b/README.md @@ -1,67 +1,318 @@ -# Nebula - -NebulaWeb is an official flagship of Nebula Services and Nebula Developer Labs. NebulaWeb is a stunning, sleek, and functional web-proxy with support for thousands of popular sites. With NebulaWeb, the sky is the limit. - -![license](https://img.shields.io/badge/License-GNU%20AGPL%20v3-blue) - -## Features - -- Stunning and highly functional UI -- 3 different backend proxies -- Hides your IP from sites -- [List of officially supported sites](https://github.com/NebulaServices/Nebula/blob/dev/docs/officially-supported-sites.md) -- Full mobile support -- `about:blank` cloaking) - -# Deployment - -Table of contents - -- Deployment - ---- - -## Deployment - -Run these commands on your server: -`git clone https://github.com/NebulaServices/Nebula.git` -`pnpm i` -`npm run bstart` - -You may also need to run `npm i -g pnpm tsx` -Thanks for using Nebula! - -## Tech Stack - -- TypeScript, Tailwind -- Fastify -- TSX -- Framer motion -- react-i18next -- Ultraviolet (proxy) -- Dynamic (proxy) -- Rammerhead (proxy) -- TompHTTP Bare Server Node - -## Support - -For support, join our discord: discord.gg/unblocker - -## Demo - -[Click here to see a demo of Nebula](https://nebulaproxy.io/) - -## Acknowledgements - -- [UV (one of the proxies we use)](https://github.com/titaniumnetwork-dev/Ultraviolet) -- [Dynamic (one of the proxies we use)](https://github.com/NebulaServices/Dynamic) -- [Rammerhead (one of the proxies we use)](https://github.com/binary-person/rammerhead) -- [Bare Server Node](https://github.com/tomphttp/bare-server-node) -- [Catppuccin (for the themes)](https://github.com/catppuccin/catppuccin) - -## License - -(Nebula's license is now GNU AGPL V3 as of v7.10) -Copyright Nebula Services 2021 - Present -
-This project uses the AGLP GNU V3 license. +
+ +ruby + +repo size +website status +commit a week + +
+ +
+

Get Started

+ To get started, press one of the buttons below to deploy Incog +
+
+ + Terminal + + + + Docker + + +
+ +## NOTE: + +- This will **NOT** deploy on Github Pages, Netlify, Vercel, Gitlab Pages or any other _static_ host +- This will **NOT** work on Render +--- + +## How to get links + +[![Nebula Services Discord](https://invidget.switchblade.xyz/unblocker?theme=darl)](https://discord.gg/unblocker) +[![Titanium Network Discord](https://invidget.switchblade.xyz/unblock?theme=dark)](https://discord.gg/unblock) + +--- + +## Features + +- Multiple Proxy "Backends": + - [Ultraviolet](https://github.com/titaniumnetwork-dev/ultraviolet) + - [RammerHead](https://github.com/binary-person/rammerhead) +--- + +## Contributors + +- [Rifting](https://github.com/rifting) - Owner & Maintainer +- [MotorTruck1221](https://motortruck1221.com) - Maintainer +--- + +## Tech Stack + +- [Astro](https://astro.build) +- [Fastify](https://fastify.dev) +- [Ultraviolet](https://github.com/titaniumnetwork-dev/ultraviolet) +- [RammerHead](https://github.com/binary-person/rammerhead) +- [Epoxy](https://github.com/mercuryworkshop/epoxy-tls) +- [Libcurl.js](https://github.com/ading2210/libcurl.js) +- HTML, CSS, and JavaScript (DUH) +--- + +## Catalog/Marketplace + +- By default the marketplace is enabled, and uses SQLite +- If you would like to disable the catalog, see [#config](#config) +- For big production instances I would recommend using Postgres over SQLite. To do this see [#config](#config) +- To use postgres via the provided docker-compose files, see [#docker](#docker) + + +### How to make a plugin + +- Plugins extend the functionality of either the proxied page(s) or the service worker. +- This guide provides an incredibly basic example of how to make either. + +#### Prerequisites: + - Make sure you have joined our [Discord server](https://discord.gg/unblocker) so you can submit your plugin. + - Some knowledge of JS/TS + +##### Serviceworker plugin: + +- These plugins are handled by Workerware see [here](https://github.com/mercuryworkshop/workerware) for docs. + +1. Create an index.js (or other file name) file: +```bash +touch index.js +``` + +2. Edit that file to include the either of these: + - Code encased in a string: + ```js + function setup() { + // This function MUST return the following attributes: + return { + function: `console.log('Example code.')`, + name: 'com.example', // Technically could be named anything. Recommended to use the same name for everything (name when submitting and this) + events: ['fetch'] // See: https://github.com/mercuryworkshop/workerware for the event types you can use. (Also typed if your using typescript) + } + } + + //This can be named anything. However, it's recommended to use `entryFunc` + self.entryFunc = setup; //DO NOT call the function here. Only assign the reference otherwise, it will error. + ``` + - Code in an arrow function: + ```js + const example = () => { + console.log('Example code') + } + + function setup() { + //This function MUST return the following attributes: + return { + function: example, //Do not call the function, only assign the reference to the function. + name: 'com.example', // Technicall could be name anything. Recommended to use the same name for everything (name when submitting and this) + event: ['fetch'] // Se https://github.com/mercuryworkshop/workerware for the event types you can use. (Also typed if using typescript) + } + } + + //This can be named anything. However, it's recommended to use `entryFunc` + self.entryFunc = setup; //DO NOT call the function here. Only assign the reference otherwise, it will error. + ``` + +> [!WARNING] +> The only *allowed* way to pass code to the `function` param is either a string or an arrow function. Named functions ***WILL NOT WORK***. +> +> Example of a named function: `function example() {/* Some form of code */}`. +> +> If a named function is used where it shouldn't be, your plugin will not be approved nor will it work properly. + +3. Submit your plugin in the [Discord](https://discord.gg/unblocker)! + +##### Proxied page plugins + +- The allow modification of websites that UV proxies, (EX: you could add vencord to discord with this) + +1. Create an index.js file (or another file name) +```bash +touch index.js +``` + +2. Edit that file with your code and the following: +```js +//Name this whatever. +function example() { + //You MUST return the following + return { + host: "example.com", //The host to match (so if the user visits example.com it will inject the html below. + html: "", //Must return a string (and be valid HTML or your plugin will break). How you get that string is up to you + injectTo: "head" // Can be "head" or "body" + } +} + +//Technically this could be named anything, recommended to call it `entryFunc` +self.entryFunc = example; //DO NOT run the function here. That will cause errors. Only assign the reference to the function here. +``` + +3. Submit it in our [Discord](https://discord.gg/unblocker)! + +--- + +## Deployment + +### Terminal + +Prerequisites: +- Node & npm +- Git + +1. Clone the repo: +```bash +git clone https://github.com/nebulaservices/nebula --recursive && cd nebula +``` + +2. Install all of the dependencies: +```bash +npm i +``` + +3. Create a `config.toml` file +```bash +cp config.example.toml config.toml +``` + +4. Modify the `config.toml` file to you liking (docs [here](#environment)) +``` +nano config.toml +``` + +5. Build the frontend & server: +```bash +npm run build +``` + +6. Start the server +```bash +npm start +``` + +> [!NOTE] +> You can run `npm run bstart` to build and start together +--- + +### Docker + +- There are two ways to deploy with docker: + - [Normal docker](#normal-docker) + - [Docker Compose](#docker-compose) + +#### Normal Docker + +Prerequisites: +- Git +- Docker + +1. Clone the repo (skip if using prebuilt image): +```bash +git clone https://github.com/nebulaservices/nebula --recursive && cd nebula +``` + +2. Create an `config.toml` file (if using prebuilt image, copy the example from the repo): +```bash +cp config.example.toml config.toml +``` + +3. Modify the `config.toml` file to your liking (docs [here](#environment)) +```bash +nano config.toml +``` + +4. Build the docker image (skip if using prebuilt): +```bash +docker build nebula:latest +``` +5. Run the docker images: + + - Prebuilt: + ```bash + docker run -v ./config.toml:/app/config.toml ghcr.io/nebulaservices/nebula:latest + ``` + - Image you built yourself: + ```bash + docker run -v ./config.toml:/app/config.toml nebula:latest + ``` + +#### Docker Compose + +Prerequisites: +- Git +- Docker w/compose + +1. Clone the repo (skip if using prebuilt image): +```bash +git clone https://github.com/nebulaservices/nebula --recursive +``` + +2. Create an `config.toml` file (if using prebuilt image, copy the example from the repo): +```bash +cp config.example.toml config.toml +``` + +3. Modify the `config.toml` file to your liking (docs on that [here](#environment)] +```bash +nano config.toml +``` + +4. Build the docker image (skip if using prebuilt): +```bash +docker compose -f ./docker-compose.build.yml build +``` + +5. Run the docker image: + + - Prebuilt: + ```bash + docker compose up + ``` + - Image you built yourself: + ```bash + docker compose -f ./docker-compose.build.yml up + ``` +#### Extra (Postgres) + +- To use Postgres over SQlite, uncomment the DB section in the `docker-compose` file (or use your own postgres DB!). Then, modify the `config.toml` (See: [#config](#config) for knowledge on how to do this) +- To use Postgres over SQlite in a normal docker environment (no compose), you'll have to set one up and then modify the `config.toml` to use it. (See: [#config](#config) for knowledge on how to do this) + +--- + +## Config + +- There are a couple of configuration options for nebula. Most of the time, the defaults are fine, but there are instances where you may not want certain options enabled or certain things running. +- An example config file is located [here](./config.example.toml). +- Config format is in TOML + +| Variable | Description | Type | Default | +|:----------:|:-------------:|:------:|:---------:| +| `marketplace` | The options below are for the marketplace section | `object` | N/A | +| `enabled` | Enable marketplace functionality | `boolean` | `true` | +| `psk` | The password and authentication key for the marketplace. ***CHANGE FROM DEFAULT*** | `string` | `CHANGEME` | +|----------------------------| ----------------------------------------------------------------------------|------------|--------------| +| `db` | The below options are for the db (database) section | `object` | N/A | +| `name` | The database name to use | `string` | `database` | +| `username` | The username for the DB | `string` | `username` | +| `password` | The database password. ***CHANGE FROM DEFAULT VALUE*** | `string` | `password` | +| `postgres` | Whether to use postgres over sqlite *(recommended for large production instances)* | `boolean` | `false` | +|----------------------------| ----------------------------------------------------------------------------|------------|--------------| +| `postgres` | The below options are for the postgres section. (Only worry about this if you enabled postgres in the db section.) | `object` | N/A | +| `domain` | Either the TLD or the IP address of your postgres server. | `string` | `''` | +| `port` | The port your postgres server is listening on | `number` | `5432` | +|----------------------------| ----------------------------------------------------------------------------|------------|--------------| +| `server.server` | The below options are to configure the server. | `object` | N/A | +| `port` | What port the server should listen on. *(Note: Can also be configured via environment variable `PORT`)* | `number` | `8080` | +| `wisp` | Whether the server should use the inbuilt wisp server. (Disabled if your using an external wisp server) | `boolean` | `true` | +| `logging` | Whether or not to enable logging. *Note: Logs are massive* | `boolean` | `true` | +|----------------------------| ----------------------------------------------------------------------------|------------|--------------| +| `server.rammerhead` | Configure the Rammerhead server. ***DO NOT TOUCH UNLESS YOU ARE CERTAIN YOU KNOW WHAT YOU ARE DOING*** | `object` | N/A | +| `reverseproxy` | Whether or not the Rammerhead server is behind a reverse proxy | `boolean` | `true` | +| `localstorage_sync` | Whether or not to use localstorage sync | `boolean` | `true` | +| `http2` | Whether to allow http2 or not | `boolean` | `true` | diff --git a/astro.config.ts b/astro.config.ts new file mode 100644 index 00000000..8c36981c --- /dev/null +++ b/astro.config.ts @@ -0,0 +1,118 @@ +import { fileURLToPath } from "node:url"; +import node from "@astrojs/node"; +import svelte from "@astrojs/svelte"; +import tailwind from "@astrojs/tailwind"; +import { baremuxPath } from "@mercuryworkshop/bare-mux/node"; +import { epoxyPath } from "@mercuryworkshop/epoxy-transport"; +import { libcurlPath } from "@mercuryworkshop/libcurl-transport"; +import playformCompress from "@playform/compress"; +import { uvPath } from "@titaniumnetwork-dev/ultraviolet"; +import icon from "astro-icon"; +import { defineConfig, envField } from "astro/config"; +import { viteStaticCopy } from "vite-plugin-static-copy"; +import { version } from "./package.json"; +import { parsedDoc } from "./server/config.js"; +const workerwarePath = fileURLToPath(new URL("./workerware/src", import.meta.url)); + +export default defineConfig({ + experimental: { + env: { + schema: { + VERSION: envField.string({ + context: "client", + access: "public", + optional: true, + default: version + }), + MARKETPLACE_ENABLED: envField.boolean({ + context: "client", + access: "public", + optional: true, + default: parsedDoc.marketplace.enabled + }) + } + } + }, + integrations: [ + tailwind(), + icon(), + svelte(), + playformCompress({ + CSS: false, + HTML: true, + Image: true, + JavaScript: true, + SVG: true + }) + ], + vite: { + plugins: [ + viteStaticCopy({ + targets: [ + { + src: `${uvPath}/**/*`.replace(/\\/g, "/"), + dest: "uv", + overwrite: false + }, + { + src: `${epoxyPath}/**/*`.replace(/\\/g, "/"), + dest: "epoxy", + overwrite: false + }, + { + src: `${libcurlPath}/**/*`.replace(/\\/g, "/"), + dest: "libcurl", + overwrite: false + }, + { + src: `${baremuxPath}/**/*`.replace(/\\/g, "/"), + dest: "baremux", + overwrite: false + }, + { + src: `${workerwarePath}/**/*`.replace(/\\/g, "/"), + dest: "workerware", + overwrite: false + } + ] + }) + ], + server: { + proxy: { + "/api/catalog-stats": { + target: "http://localhost:8080/api/catalog-stats", + changeOrigin: true, + rewrite: (path) => path.replace(/^\/api\/catalog-stats/, "") + }, + "/api/catalog-assets": { + target: "http://localhost:8080/api/catalog-assets", + changeOrigin: true, + rewrite: (path) => path.replace(/^\/api\/catalog-assets/, "") + }, + "/api/packages": { + target: "http://localhost:8080/api/packages", + changeOrigin: true, + rewrite: (path) => path.replace(/^\/api\/packages/, "") + }, + "/packages": { + target: "http://localhost:8080", + changeOrigin: true + }, + "/wisp/": { + target: "ws://localhost:8080/wisp/", + changeOrigin: true, + ws: true, + rewrite: (path) => path.replace(/^\/wisp\//, "") + }, + "/styles": { + target: "http://localhost:8080", + changeOrigin: true + } + } + } + }, + output: "server", + adapter: node({ + mode: "middleware" + }) +}); diff --git a/biome.json b/biome.json new file mode 100644 index 00000000..53feb84a --- /dev/null +++ b/biome.json @@ -0,0 +1,32 @@ +{ + "$schema": "https://biomejs.dev/schemas/1.9.3/schema.json", + "files": { + "ignore": ["~/", "**/dist/**", ".github/**"], + "include": ["**/**", "server/**"] + }, + "formatter": { + "indentStyle": "space", + "indentWidth": 4, + "lineWidth": 100, + "ignore": ["pnpm-lock.yaml", "package.json"] + }, + "organizeImports": { "enabled": true }, + "linter": { "enabled": false }, + "javascript": { + "formatter": { + "trailingCommas": "none", + "quoteStyle": "double", + "semicolons": "always" + } + }, + "json": { + "parser": { + "allowComments": true, + "allowTrailingCommas": true + }, + "formatter": { + "indentStyle": "space", + "trailingCommas": "none" + } + } +} diff --git a/config.example.toml b/config.example.toml new file mode 100644 index 00000000..92286c04 --- /dev/null +++ b/config.example.toml @@ -0,0 +1,24 @@ +[marketplace] +enabled = true # Turn on or off the marketplace entirely +psk = "CHANGEME" # Change this to something more secure. +level = 1 + +[db] +name = "database" # Your databsae name +username = "username" # The username of your DB (SQLITE just ignores this) +password = "password" # The password to your DB (SQLITE ignores this) +postgres = false # Enable to use postgres over sqlite (recommended for large prod instances) + +[postgres] # Set the "domain" to either and ip address or a actual domain +domain = "" +port = 5432 + +[server.server] +port = 8080 +wisp = true +logging = true # Disable for the tons & tons of logs to go away (useful for debugging but otherwise eh) + +[server.rammerhead] # Don't touch this section unless you KNOW what you are doing +reverseproxy = true +localstorage_sync = true +http2 = true diff --git a/database_assets/com.nebula.gruvbox/gruvbox.css b/database_assets/com.nebula.gruvbox/gruvbox.css new file mode 100644 index 00000000..eceedbfe --- /dev/null +++ b/database_assets/com.nebula.gruvbox/gruvbox.css @@ -0,0 +1,22 @@ +:root { + --background-primary: #282828; + --background-lighter: #3c3836; + --navbar-color: #504945; + --navbar-height: 60px; + --navbar-text-color: #fbf1c7; + --navbar-link-color: #ebdbb2; + --navbar-link-hover-color: #fabd2f; + --navbar-font: "Roboto", sans-serif; + --input-text-color: #b8bb26; + --input-placeholder-color: #928374; + --input-background-color: #1d2021; + --input-border-color: #b8bb26; + --input-border-size: 1.3px; + --navbar-logo-filter: none; + --dropdown-option-hover-color: #665c54; + --tab-color: #1d2021; + --border-color: #b8bb26; + --highlight-color: #fe8019; + --accent-color: #83a598; + --secondary-text-color: #d3869b; +} diff --git a/database_assets/com.nebula.gruvbox/gruvbox.jpeg b/database_assets/com.nebula.gruvbox/gruvbox.jpeg new file mode 100644 index 00000000..3d79448f Binary files /dev/null and b/database_assets/com.nebula.gruvbox/gruvbox.jpeg differ diff --git a/database_assets/com.nebula.lightTheme/light.css b/database_assets/com.nebula.lightTheme/light.css new file mode 100644 index 00000000..1c477295 --- /dev/null +++ b/database_assets/com.nebula.lightTheme/light.css @@ -0,0 +1,18 @@ +:root { + --background-primary: hsl(310 50% 90%); + --background-lighter: hsl(310 50% 90%); + --navbar-color: hsl(310 50% 100%); + --navbar-height: 60px; + --navbar-text-color: hsl(310 50% 15%); + --navbar-link-color: hsl(310 50% 15%); + --navbar-link-hover-color: hsl(310 50% 90%); + --navbar-font: "Roboto"; + --input-text-color: hsl(310 50% 15%); + --input-placeholder-color: white; + --input-background-color: hsl(310 50% 100%); + --input-border-color: hsl(310 50% 25%); + --input-border-size: 1.3px; + --navbar-logo-filter: none; + --tab-color: var(--black); + --border-color: hsl(310 50% 25%); +} diff --git a/database_assets/com.nebula.lightTheme/light.png b/database_assets/com.nebula.lightTheme/light.png new file mode 100644 index 00000000..439ab601 Binary files /dev/null and b/database_assets/com.nebula.lightTheme/light.png differ diff --git a/database_assets/com.nebula.oled/oled.css b/database_assets/com.nebula.oled/oled.css new file mode 100644 index 00000000..b11e18ab --- /dev/null +++ b/database_assets/com.nebula.oled/oled.css @@ -0,0 +1,19 @@ +:root { + --background-primary: #000000; + --background-lighter: #000000; + --navbar-color: #00000f; + --navbar-height: 60px; + --navbar-text-color: #4763ff; + --navbar-link-color: #4763ff; + --navbar-link-hover-color: gray; + --navbar-font: "Roboto"; + --input-text-color: #4763ff; + --input-placeholder-color: white; + --input-background-color: #000000; + --input-border-color: #4763ff; + --input-border-size: 1.3px; + --navbar-logo-filter: none; + --dropdown-option-hover-color: #000000; + --tab-color: #000000; + --border-color: #4763ff; +} diff --git a/database_assets/com.nebula.oled/oled.jpg b/database_assets/com.nebula.oled/oled.jpg new file mode 100644 index 00000000..115e5bcb Binary files /dev/null and b/database_assets/com.nebula.oled/oled.jpg differ diff --git a/database_assets/com.nebula.retro/retro.css b/database_assets/com.nebula.retro/retro.css new file mode 100644 index 00000000..0b110420 --- /dev/null +++ b/database_assets/com.nebula.retro/retro.css @@ -0,0 +1,24 @@ +:root { + --background-primary: #000000; + --background-lighter: #000000; + --navbar-color: #020805; + --navbar-height: 60px; + --navbar-text-color: #3cb371; + --navbar-link-color: #3cb371; + --navbar-link-hover-color: white; + --input-text-color: #3cb371; + --input-placeholder-color: white; + --input-background-color: #000000; + --input-border-color: #3cb371; + --input-border-size: 1.3px; + --navbar-logo-filter: none; + --dropdown-option-hover-color: #000000; + --tab-color: #000000; + --border-color: #3cb371; + --font-family: "terminal"; +} + +@font-face { + font-family: terminal; + src: url("./terminal.ttf"); +} diff --git a/database_assets/com.nebula.retro/retro.png b/database_assets/com.nebula.retro/retro.png new file mode 100644 index 00000000..bcad7d8d Binary files /dev/null and b/database_assets/com.nebula.retro/retro.png differ diff --git a/database_assets/com.nebula.retro/terminal.ttf b/database_assets/com.nebula.retro/terminal.ttf new file mode 100644 index 00000000..4977028d Binary files /dev/null and b/database_assets/com.nebula.retro/terminal.ttf differ diff --git a/docker-compose.build.yml b/docker-compose.build.yml new file mode 100644 index 00000000..03315d5b --- /dev/null +++ b/docker-compose.build.yml @@ -0,0 +1,21 @@ +services: + nebula: + image: ghcr.io/nebulaservices/nebula:latest + container_name: nebula + build: . + restart: unless-stopped + ports: + # HOST:CONTAINER (DO NOT CHANGE THE CONTAINER PORT, UNLESS EDITED IN THE config.toml FILE) + - 8080:8080 + volumes: + - ./config.toml:/app/config.toml +# Uncomment the the below stuff to use POSTGRES! +# db: +# image: postgres +# restart: unless-stopped +# environment: +# POSTGRES_PASSWORD: password #CHANGE THIS +# POSTGRES_USER: username +# POSTGRES_DB: db +# volumes: +# - ./db:/var/lib/postgresql/data diff --git a/docker-compose.yml b/docker-compose.yml index 3c1fe8a0..01b89649 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,13 +1,20 @@ -version: "3" - -services: - nebula: - image: nebula:latest - build: - context: . - dockerfile: Dockerfile - container_name: nebula - restart: unless-stopped - ports: - # Host:Container (DO NOT MODIFY THE CONTAINER PORT) - - "8081:8080" +services: + nebula: + image: ghcr.io/nebulaservices/nebula:latest + container_name: nebula + restart: unless-stopped + ports: + # HOST:CONTAINER (DO NOT CHANGE THE CONTAINER PORT, UNLESS EDITED IN THE config.toml FILE) + - 8080:8080 + volumes: + - ./config.toml:/app/config.toml +# Uncomment the the below stuff to use POSTGRES! +# db: +# image: postgres +# restart: unless-stopped +# environment: +# POSTGRES_PASSWORD: password #CHANGE THIS +# POSTGRES_USER: username +# POSTGRES_DB: db +# volumes: +# - ./db:/var/lib/postgresql/data diff --git a/framer-motion.d.ts b/framer-motion.d.ts deleted file mode 100644 index 44a8d8ec..00000000 --- a/framer-motion.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -import * as React from "preact/compat"; - -declare module "framer-motion" { - export interface AnimatePresenceProps { - children?: React.ReactNode; - } -} diff --git a/index.html b/index.html deleted file mode 100644 index 98172151..00000000 --- a/index.html +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - - -
- - - - - diff --git a/masqr.js b/masqr.js deleted file mode 100644 index 773d4130..00000000 --- a/masqr.js +++ /dev/null @@ -1,75 +0,0 @@ -import fp from "fastify-plugin"; -import fs from "fs"; -const failureFile = fs.readFileSync("Checkfailed.html", "utf8"); -const LICENSE_SERVER_URL = "https://license.mercurywork.shop/validate?license="; -const whiteListedDomain = ["nebulaproxy.io"]; -async function licenseCheck(req, pass) { - try { - const resp = await fetch( - `${LICENSE_SERVER_URL}${pass}&host=${req.headers.host}` - ); - const data = await resp.json(); - if (data.status === "License valid") { - return true; - } else { - return false; - } - } catch { - return false; - } -} -const plugin = (fastify, opts, done) => { - fastify.addHook("onRequest", function (req, reply, next) { - if ( - req.cookies.authcheck === "true" || - whiteListedDomain.includes(req.headers.host) - ) { - return next(); - } - const authHeader = req.headers.authorization; - if (req.cookies.refreshcheck != "true") { - reply - .setCookie("refreshcheck", "true", { maxAge: 1000 }) - .type("text/html") - .send(failureFile); - return; - } - if (!authHeader) { - reply - .code(401) - .header("WWW-Authenticate", "Basic") - .type("text/html") - .send(failureFile); - return; - } - const auth = Buffer.from(authHeader.split(" ")[1], "base64") - .toString() - .split(":"); - const user = auth[0]; - const pass = auth[1]; - licenseCheck(req, pass).then((data) => { - if (!data) { - reply - .status(401) - .header("WWW-Authenticate", "Basic") - .type("text/html") - .send(failureFile); - return; - } else { - reply - .setCookie("authcheck", "true") - .type("text/html") - .send(""); - return; - } - }); - }); - done(); -}; - -const masqr = fp(plugin, { - fastify: "4.x", - name: "masqr" -}); - -export default masqr; diff --git a/package.json b/package.json index a3d17f13..35c2e26d 100644 --- a/package.json +++ b/package.json @@ -1,66 +1,68 @@ { - "name": "nebula", - "private": true, + "name": "nebula-astro", "type": "module", + "version": "9.0.0", + "private": true, "scripts": { - "dev": "concurrently \"vite\" \"tsx server.ts\"", - "build": "vite build", - "bstart": "npm run build && tsx server.ts", - "start": "tsx server.ts", - "preview": "vite preview", - "format": "prettier --write ." + "dev": "concurrently \"astro dev --host 0.0.0.0\" \"tsx --watch server/server.ts\"", + "start": "node server/server.js", + "build:server": "tsc -p server", + "build:client": "astro check && astro build", + "build": "concurrently \"npm:build:server\" \"npm:build:client\"", + "bstart": "npm run build && npm run start", + "preview": "astro preview", + "astro": "astro", + "format:code": "biome format . --write", + "format:imports": "biome check . --write", + "format": "concurrently -m 1 \"npm:format:code\" \"npm:format:imports\"" }, "dependencies": { - "@fastify/compress": "^6.5.0", - "@fastify/cookie": "^9.3.1", - "@fastify/static": "^6.12.0", - "@mercuryworkshop/bare-mux": "^1.1.1", - "@mercuryworkshop/epoxy-transport": "^2.0.1", - "@mercuryworkshop/libcurl-transport": "^1.3.1", - "@nebula-services/dynamic": "0.7.2-patch.2", - "@titaniumnetwork-dev/ultraviolet": "^3.1.2", - "@tomphttp/bare-server-node": "2.0.3", - "@tsparticles/engine": "^3.4.0", - "@tsparticles/react": "^3.0.0", - "@tsparticles/slim": "^3.4.0", + "@astrojs/check": "^0.8.3", + "@astrojs/node": "^8.3.4", + "@astrojs/svelte": "^5.7.2", + "@astrojs/tailwind": "^5.1.2", + "@fastify/compress": "^8.0.1", + "@fastify/helmet": "^12.0.1", + "@fastify/middie": "^9.0.2", + "@fastify/multipart": "^9.0.1", + "@fastify/static": "^8.0.1", + "@iconify-json/ph": "^1.2.1", + "@mercuryworkshop/bare-mux": "^2.1.6", + "@mercuryworkshop/epoxy-transport": "2.1.13", + "@mercuryworkshop/libcurl-transport": "^1.3.10", + "@playform/compress": "^0.1.4", + "@rubynetwork/rammerhead": "^1.3.5", + "@rubynetwork/rammerhead-browser": "^1.0.9", + "@titaniumnetwork-dev/ultraviolet": "^3.2.7", + "@svelte-drama/suspense": "0.5.1", + "@types/node": "^22.7.5", + "@types/sequelize": "^4.28.20", + "astro": "^4.16.2", + "astro-icon": "^1.1.1", "chalk": "^5.3.0", - "classnames": "^2.5.1", - "compression": "^1.7.4", - "cookie-parser": "^1.4.6", - "crypto-js": "^4.2.0", - "fastify": "^4.28.1", - "fastify-plugin": "^4.5.1", - "framer-motion": "^10.18.0", - "i18next": "^23.11.5", - "i18next-browser-languagedetector": "^7.2.1", - "localforage": "^1.10.0", - "million": "^2.6.4", - "preact": "^10.22.1", - "preact-iso": "^2.6.3", - "preact-render-to-string": "^6.5.5", - "preact-router": "^4.1.2", - "rammerhead": "https://github.com/NebulaServices/rammerhead/releases/download/rammerhead-1.2.41-nebula.8/rammerhead-1.2.41-nebula.7.tgz", - "react-helmet": "^6.1.0", - "react-i18next": "^13.5.0", - "react-icons": "^4.12.0", - "react-toastify": "^9.1.3", - "tsx": "^4.16.0", - "vite-plugin-static-copy": "^1.0.5", - "vite-plugin-vsharp": "^1.8.1", - "wisp-server-node": "^1.1.0", - "ws": "^8.17.1" + "concurrently": "^8.2.2", + "fastify": "^5.0.0", + "form-data": "^4.0.1", + "gradient-string": "^3.0.0", + "libcurl.js-new": "npm:libcurl.js@^0.6.16", + "nanostores": "^0.10.3", + "ora": "^8.1.0", + "pg": "^8.13.0", + "pg-hstore": "^2.3.4", + "sequelize": "^6.37.4", + "smol-toml": "^1.3.0", + "sqlite3": "^5.1.7", + "svelte": "^4.2.19", + "svelte-french-toast": "^1.2.0", + "tailwindcss": "^3.4.13", + "typescript": "^5.6.3", + "vite-plugin-static-copy": "^1.0.6", + "wisp-server-node": "^1.1.7" }, "devDependencies": { - "@preact/preset-vite": "^2.8.3", - "autoprefixer": "^10.4.19", - "concurrently": "^8.2.2", - "eslint": "^8.57.0", - "eslint-config-preact": "^1.4.0", - "postcss": "^8.4.39", - "prettier": "^3.3.2", - "prettier-plugin-tailwindcss": "^0.5.14", - "tailwindcss": "^3.4.4", - "typescript": "^5.5.2", - "vite": "^5.3.2" + "@biomejs/biome": "^1.9.3", + "bufferutil": "^4.0.8", + "sharp": "^0.33.5", + "tsx": "^4.19.1" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b461c837..b9608947 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,157 +8,148 @@ importers: .: dependencies: + '@astrojs/check': + specifier: ^0.8.3 + version: 0.8.3(typescript@5.6.3) + '@astrojs/node': + specifier: ^8.3.4 + version: 8.3.4(astro@4.16.7(@types/node@22.8.0)(lightningcss@1.27.0)(rollup@4.24.0)(terser@5.36.0)(typescript@5.6.3)) + '@astrojs/svelte': + specifier: ^5.7.2 + version: 5.7.2(astro@4.16.7(@types/node@22.8.0)(lightningcss@1.27.0)(rollup@4.24.0)(terser@5.36.0)(typescript@5.6.3))(svelte@4.2.19)(typescript@5.6.3)(vite@5.4.10(@types/node@22.8.0)(lightningcss@1.27.0)(terser@5.36.0)) + '@astrojs/tailwind': + specifier: ^5.1.2 + version: 5.1.2(astro@4.16.7(@types/node@22.8.0)(lightningcss@1.27.0)(rollup@4.24.0)(terser@5.36.0)(typescript@5.6.3))(tailwindcss@3.4.14) '@fastify/compress': - specifier: ^6.5.0 - version: 6.5.0 - '@fastify/cookie': - specifier: ^9.3.1 - version: 9.3.1 + specifier: ^8.0.1 + version: 8.0.1 + '@fastify/helmet': + specifier: ^12.0.1 + version: 12.0.1 + '@fastify/middie': + specifier: ^9.0.2 + version: 9.0.2 + '@fastify/multipart': + specifier: ^9.0.1 + version: 9.0.1 '@fastify/static': - specifier: ^6.12.0 - version: 6.12.0 + specifier: ^8.0.1 + version: 8.0.2 + '@iconify-json/ph': + specifier: ^1.2.1 + version: 1.2.1 '@mercuryworkshop/bare-mux': - specifier: ^1.1.1 - version: 1.1.1 + specifier: ^2.1.6 + version: 2.1.6 '@mercuryworkshop/epoxy-transport': - specifier: ^2.0.1 - version: 2.0.1(bufferutil@4.0.8)(typescript@5.5.2)(utf-8-validate@6.0.4) + specifier: 2.1.13 + version: 2.1.13 '@mercuryworkshop/libcurl-transport': - specifier: ^1.3.1 - version: 1.3.1(bufferutil@4.0.8)(typescript@5.5.2)(utf-8-validate@6.0.4) - '@nebula-services/dynamic': - specifier: 0.7.2-patch.2 - version: 0.7.2-patch.2(bufferutil@4.0.8)(utf-8-validate@6.0.4) + specifier: ^1.3.10 + version: 1.3.11 + '@playform/compress': + specifier: ^0.1.4 + version: 0.1.6(@types/node@22.8.0)(rollup@4.24.0)(typescript@5.6.3) + '@rubynetwork/rammerhead': + specifier: ^1.3.5 + version: 1.3.5(bufferutil@4.0.8)(utf-8-validate@6.0.4) + '@rubynetwork/rammerhead-browser': + specifier: ^1.0.9 + version: 1.0.9 + '@svelte-drama/suspense': + specifier: 0.5.1 + version: 0.5.1(svelte@4.2.19) '@titaniumnetwork-dev/ultraviolet': - specifier: ^3.1.2 - version: 3.1.2 - '@tomphttp/bare-server-node': - specifier: 2.0.3 - version: 2.0.3(bufferutil@4.0.8)(utf-8-validate@6.0.4) - '@tsparticles/engine': - specifier: ^3.4.0 - version: 3.4.0 - '@tsparticles/react': - specifier: ^3.0.0 - version: 3.0.0(@tsparticles/engine@3.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@tsparticles/slim': - specifier: ^3.4.0 - version: 3.4.0 + specifier: ^3.2.7 + version: 3.2.7 + '@types/node': + specifier: ^22.7.5 + version: 22.8.0 + '@types/sequelize': + specifier: ^4.28.20 + version: 4.28.20 + astro: + specifier: ^4.16.2 + version: 4.16.7(@types/node@22.8.0)(lightningcss@1.27.0)(rollup@4.24.0)(terser@5.36.0)(typescript@5.6.3) + astro-icon: + specifier: ^1.1.1 + version: 1.1.1 chalk: specifier: ^5.3.0 version: 5.3.0 - classnames: - specifier: ^2.5.1 - version: 2.5.1 - compression: - specifier: ^1.7.4 - version: 1.7.4 - cookie-parser: - specifier: ^1.4.6 - version: 1.4.6 - crypto-js: - specifier: ^4.2.0 - version: 4.2.0 - fastify: - specifier: ^4.28.1 - version: 4.28.1 - fastify-plugin: - specifier: ^4.5.1 - version: 4.5.1 - framer-motion: - specifier: ^10.18.0 - version: 10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - i18next: - specifier: ^23.11.5 - version: 23.11.5 - i18next-browser-languagedetector: - specifier: ^7.2.1 - version: 7.2.1 - localforage: - specifier: ^1.10.0 - version: 1.10.0 - million: - specifier: ^2.6.4 - version: 2.6.4 - preact: - specifier: ^10.22.1 - version: 10.22.1 - preact-iso: - specifier: ^2.6.3 - version: 2.6.3(preact-render-to-string@6.5.5(preact@10.22.1))(preact@10.22.1) - preact-render-to-string: - specifier: ^6.5.5 - version: 6.5.5(preact@10.22.1) - preact-router: - specifier: ^4.1.2 - version: 4.1.2(preact@10.22.1) - rammerhead: - specifier: https://github.com/NebulaServices/rammerhead/releases/download/rammerhead-1.2.41-nebula.8/rammerhead-1.2.41-nebula.7.tgz - version: https://github.com/NebulaServices/rammerhead/releases/download/rammerhead-1.2.41-nebula.8/rammerhead-1.2.41-nebula.7.tgz(bufferutil@4.0.8)(utf-8-validate@6.0.4) - react-helmet: - specifier: ^6.1.0 - version: 6.1.0(react@18.3.1) - react-i18next: - specifier: ^13.5.0 - version: 13.5.0(i18next@23.11.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react-icons: - specifier: ^4.12.0 - version: 4.12.0(react@18.3.1) - react-toastify: - specifier: ^9.1.3 - version: 9.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - tsx: - specifier: ^4.16.0 - version: 4.16.0 - vite-plugin-static-copy: - specifier: ^1.0.5 - version: 1.0.5(vite@5.3.2(@types/node@20.14.9)) - vite-plugin-vsharp: - specifier: ^1.8.1 - version: 1.8.1(vite@5.3.2(@types/node@20.14.9)) - wisp-server-node: - specifier: ^1.1.0 - version: 1.1.0 - ws: - specifier: ^8.17.1 - version: 8.17.1(bufferutil@4.0.8)(utf-8-validate@6.0.4) - devDependencies: - '@preact/preset-vite': - specifier: ^2.8.3 - version: 2.8.3(@babel/core@7.24.7)(preact@10.22.1)(vite@5.3.2(@types/node@20.14.9)) - autoprefixer: - specifier: ^10.4.19 - version: 10.4.19(postcss@8.4.39) concurrently: specifier: ^8.2.2 version: 8.2.2 - eslint: - specifier: ^8.57.0 - version: 8.57.0 - eslint-config-preact: - specifier: ^1.4.0 - version: 1.4.0(eslint@8.57.0)(typescript@5.5.2) - postcss: - specifier: ^8.4.39 - version: 8.4.39 - prettier: - specifier: ^3.3.2 - version: 3.3.2 - prettier-plugin-tailwindcss: - specifier: ^0.5.14 - version: 0.5.14(prettier@3.3.2) + fastify: + specifier: ^5.0.0 + version: 5.0.0 + form-data: + specifier: ^4.0.1 + version: 4.0.1 + gradient-string: + specifier: ^3.0.0 + version: 3.0.0 + libcurl.js-new: + specifier: npm:libcurl.js@^0.6.16 + version: libcurl.js@0.6.17 + nanostores: + specifier: ^0.10.3 + version: 0.10.3 + ora: + specifier: ^8.1.0 + version: 8.1.0 + pg: + specifier: ^8.13.0 + version: 8.13.1 + pg-hstore: + specifier: ^2.3.4 + version: 2.3.4 + sequelize: + specifier: ^6.37.4 + version: 6.37.5(pg-hstore@2.3.4)(pg@8.13.1)(sqlite3@5.1.7) + smol-toml: + specifier: ^1.3.0 + version: 1.3.0 + sqlite3: + specifier: ^5.1.7 + version: 5.1.7 + svelte: + specifier: ^4.2.19 + version: 4.2.19 + svelte-french-toast: + specifier: ^1.2.0 + version: 1.2.0(svelte@4.2.19) tailwindcss: - specifier: ^3.4.4 - version: 3.4.4 + specifier: ^3.4.13 + version: 3.4.14 typescript: - specifier: ^5.5.2 - version: 5.5.2 - vite: - specifier: ^5.3.2 - version: 5.3.2(@types/node@20.14.9) + specifier: ^5.6.3 + version: 5.6.3 + vite-plugin-static-copy: + specifier: ^1.0.6 + version: 1.0.6(vite@5.4.10(@types/node@22.8.0)(lightningcss@1.27.0)(terser@5.36.0)) + wisp-server-node: + specifier: ^1.1.7 + version: 1.1.7 + devDependencies: + '@biomejs/biome': + specifier: ^1.9.3 + version: 1.9.4 + bufferutil: + specifier: ^4.0.8 + version: 4.0.8 + sharp: + specifier: ^0.33.5 + version: 0.33.5 + tsx: + specifier: ^4.19.1 + version: 4.19.1 packages: + '@adobe/css-tools@4.4.0': + resolution: {integrity: sha512-Ff9+ksdQQB3rMncgqDK78uLznstjyfIf2Arnh22pW8kBpLs6rpKDwgnZT46hin5Hl1WzazzK64DOrhSwYpS7bQ==} + '@alloc/quick-lru@5.2.0': resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} engines: {node: '>=10'} @@ -167,161 +158,237 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@babel/code-frame@7.24.7': - resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} - engines: {node: '>=6.9.0'} + '@antfu/install-pkg@0.4.1': + resolution: {integrity: sha512-T7yB5QNG29afhWVkVq7XeIMBa5U/vs9mX69YqayXypPRmYzUmzwnYltplHmPtZ4HPCn+sQKeXW8I47wCbuBOjw==} - '@babel/compat-data@7.24.7': - resolution: {integrity: sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==} - engines: {node: '>=6.9.0'} + '@antfu/utils@0.7.10': + resolution: {integrity: sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww==} - '@babel/core@7.24.7': - resolution: {integrity: sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==} - engines: {node: '>=6.9.0'} + '@astrojs/check@0.8.3': + resolution: {integrity: sha512-ajcSe+ezX5jCc3dreQlWzbknzXgSGnDETNe3C1mawUOtGpO4t5z2YGaD0y+wzB84lmgPWaWZa0fKSPwLq/wUHw==} + hasBin: true + peerDependencies: + typescript: ^5.0.0 + + '@astrojs/compiler@2.10.3': + resolution: {integrity: sha512-bL/O7YBxsFt55YHU021oL+xz+B/9HvGNId3F9xURN16aeqDK9juHGktdkCSXz+U4nqFACq6ZFvWomOzhV+zfPw==} + + '@astrojs/internal-helpers@0.4.1': + resolution: {integrity: sha512-bMf9jFihO8YP940uD70SI/RDzIhUHJAolWVcO1v5PUivxGKvfLZTLTVVxEYzGYyPsA3ivdLNqMnL5VgmQySa+g==} + + '@astrojs/language-server@2.15.4': + resolution: {integrity: sha512-JivzASqTPR2bao9BWsSc/woPHH7OGSGc9aMxXL4U6egVTqBycB3ZHdBJPuOCVtcGLrzdWTosAqVPz1BVoxE0+A==} + hasBin: true + peerDependencies: + prettier: ^3.0.0 + prettier-plugin-astro: '>=0.11.0' + peerDependenciesMeta: + prettier: + optional: true + prettier-plugin-astro: + optional: true + + '@astrojs/markdown-remark@5.3.0': + resolution: {integrity: sha512-r0Ikqr0e6ozPb5bvhup1qdWnSPUvQu6tub4ZLYaKyG50BXZ0ej6FhGz3GpChKpH7kglRFPObJd/bDyf2VM9pkg==} - '@babel/eslint-parser@7.24.7': - resolution: {integrity: sha512-SO5E3bVxDuxyNxM5agFv480YA2HO6ohZbGxbazZdIk3KQOPOGVNw6q78I9/lbviIf95eq6tPozeYnJLbjnC8IA==} - engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} + '@astrojs/node@8.3.4': + resolution: {integrity: sha512-xzQs39goN7xh9np9rypGmbgZj3AmmjNxEMj9ZWz5aBERlqqFF3n8A/w/uaJeZ/bkHS60l1BXVS0tgsQt9MFqBA==} peerDependencies: - '@babel/core': ^7.11.0 - eslint: ^7.5.0 || ^8.0.0 || ^9.0.0 + astro: ^4.2.0 - '@babel/generator@7.24.7': - resolution: {integrity: sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==} - engines: {node: '>=6.9.0'} + '@astrojs/prism@3.1.0': + resolution: {integrity: sha512-Z9IYjuXSArkAUx3N6xj6+Bnvx8OdUSHA8YoOgyepp3+zJmtVYJIl/I18GozdJVW1p5u/CNpl3Km7/gwTJK85cw==} + engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0} - '@babel/helper-annotate-as-pure@7.24.7': - resolution: {integrity: sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==} - engines: {node: '>=6.9.0'} + '@astrojs/svelte@5.7.2': + resolution: {integrity: sha512-d3nfPe7OMoDqdw7SXfvYlyCSB4p84p92IIvEsu5E1jDPFbS1mlC76hjAlr0nJHQfV1MZPWifEmmfgDBWLCuS8g==} + engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0} + peerDependencies: + astro: ^4.0.0 + svelte: ^4.0.0 || ^5.0.0-next.190 + typescript: ^5.3.3 - '@babel/helper-compilation-targets@7.24.7': - resolution: {integrity: sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==} - engines: {node: '>=6.9.0'} + '@astrojs/tailwind@5.1.2': + resolution: {integrity: sha512-IvOF0W/dtHElcXvhrPR35nHmhyV3cfz1EzPitMGtU7sYy9Hci3BNK1To6FWmVuuNKPxza1IgCGetSynJZL7fOg==} + peerDependencies: + astro: ^3.0.0 || ^4.0.0 || ^5.0.0-beta.0 + tailwindcss: ^3.0.24 + + '@astrojs/telemetry@3.1.0': + resolution: {integrity: sha512-/ca/+D8MIKEC8/A9cSaPUqQNZm+Es/ZinRv0ZAzvu2ios7POQSsVD+VOj7/hypWNsNM3T7RpfgNq7H2TU1KEHA==} + engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0} - '@babel/helper-environment-visitor@7.24.7': - resolution: {integrity: sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==} + '@astrojs/yaml2ts@0.2.2': + resolution: {integrity: sha512-GOfvSr5Nqy2z5XiwqTouBBpy5FyI6DEe+/g/Mk5am9SjILN1S5fOEvYK0GuWHg98yS/dobP4m8qyqw/URW35fQ==} + + '@babel/code-frame@7.26.0': + resolution: {integrity: sha512-INCKxTtbXtcNbUZ3YXutwMpEleqttcswhAdee7dhuoVrD2cnuc3PqtERBtxkX5nziX9vnBL8WXmSGwv8CuPV6g==} engines: {node: '>=6.9.0'} - '@babel/helper-function-name@7.24.7': - resolution: {integrity: sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==} + '@babel/compat-data@7.26.0': + resolution: {integrity: sha512-qETICbZSLe7uXv9VE8T/RWOdIE5qqyTucOt4zLYMafj2MRO271VGgLd4RACJMeBO37UPWhXiKMBk7YlJ0fOzQA==} engines: {node: '>=6.9.0'} - '@babel/helper-hoist-variables@7.24.7': - resolution: {integrity: sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==} + '@babel/core@7.26.0': + resolution: {integrity: sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==} engines: {node: '>=6.9.0'} - '@babel/helper-module-imports@7.24.7': - resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==} + '@babel/generator@7.26.0': + resolution: {integrity: sha512-/AIkAmInnWwgEAJGQr9vY0c66Mj6kjkE2ZPB1PurTRaRAh3U+J45sAQMjQDJdh4WbR3l0x5xkimXBKyBXXAu2w==} engines: {node: '>=6.9.0'} - '@babel/helper-module-transforms@7.24.7': - resolution: {integrity: sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==} + '@babel/helper-annotate-as-pure@7.25.9': + resolution: {integrity: sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - '@babel/helper-plugin-utils@7.24.7': - resolution: {integrity: sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==} + '@babel/helper-compilation-targets@7.25.9': + resolution: {integrity: sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==} engines: {node: '>=6.9.0'} - '@babel/helper-simple-access@7.24.7': - resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==} + '@babel/helper-module-imports@7.25.9': + resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} engines: {node: '>=6.9.0'} - '@babel/helper-split-export-declaration@7.24.7': - resolution: {integrity: sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==} + '@babel/helper-module-transforms@7.26.0': + resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==} engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 - '@babel/helper-string-parser@7.24.7': - resolution: {integrity: sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==} + '@babel/helper-plugin-utils@7.25.9': + resolution: {integrity: sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.24.7': - resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} + '@babel/helper-string-parser@7.25.9': + resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-option@7.24.7': - resolution: {integrity: sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==} + '@babel/helper-validator-identifier@7.25.9': + resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.24.7': - resolution: {integrity: sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==} + '@babel/helper-validator-option@7.25.9': + resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} engines: {node: '>=6.9.0'} - '@babel/highlight@7.24.7': - resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} + '@babel/helpers@7.26.0': + resolution: {integrity: sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==} engines: {node: '>=6.9.0'} - '@babel/parser@7.24.7': - resolution: {integrity: sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==} + '@babel/parser@7.26.0': + resolution: {integrity: sha512-aP8x5pIw3xvYr/sXT+SEUwyhrXT8rUJRZltK/qN3Db80dcKpTett8cJxHyjk+xYSVXvNnl2SfcJVjbwxpOSscA==} engines: {node: '>=6.0.0'} hasBin: true - '@babel/plugin-syntax-class-properties@7.12.13': - resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - - '@babel/plugin-syntax-jsx@7.24.7': - resolution: {integrity: sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==} + '@babel/plugin-syntax-jsx@7.25.9': + resolution: {integrity: sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-typescript@7.24.7': - resolution: {integrity: sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA==} + '@babel/plugin-transform-react-jsx@7.25.9': + resolution: {integrity: sha512-s5XwpQYCqGerXl+Pu6VDL3x0j2d82eiV77UJ8a2mDHAW7j9SWRqQ2y1fNo1Z74CdcYipl5Z41zvjj4Nfzq36rw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-jsx-development@7.24.7': - resolution: {integrity: sha512-QG9EnzoGn+Qar7rxuW+ZOsbWOt56FvvI93xInqsZDC5fsekx1AlIO4KIJ5M+D0p0SqSH156EpmZyXq630B8OlQ==} + '@babel/runtime@7.26.0': + resolution: {integrity: sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-jsx@7.24.7': - resolution: {integrity: sha512-+Dj06GDZEFRYvclU6k4bme55GKBEWUmByM/eoKuqg4zTNQHiApWRhQph5fxQB2wAEFvRzL1tOEj1RJ19wJrhoA==} + '@babel/template@7.25.9': + resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/runtime@7.24.7': - resolution: {integrity: sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw==} + '@babel/traverse@7.25.9': + resolution: {integrity: sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==} engines: {node: '>=6.9.0'} - '@babel/template@7.24.7': - resolution: {integrity: sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==} + '@babel/types@7.26.0': + resolution: {integrity: sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.24.7': - resolution: {integrity: sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==} - engines: {node: '>=6.9.0'} + '@biomejs/biome@1.9.4': + resolution: {integrity: sha512-1rkd7G70+o9KkTn5KLmDYXihGoTaIGO9PIIN2ZB7UJxFrWw04CZHPYiMRjYsaDvVV7hP1dYNRLxSANLaBFGpog==} + engines: {node: '>=14.21.3'} + hasBin: true - '@babel/types@7.24.7': - resolution: {integrity: sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==} - engines: {node: '>=6.9.0'} + '@biomejs/cli-darwin-arm64@1.9.4': + resolution: {integrity: sha512-bFBsPWrNvkdKrNCYeAp+xo2HecOGPAy9WyNyB/jKnnedgzl4W4Hb9ZMzYNbf8dMCGmUdSavlYHiR01QaYR58cw==} + engines: {node: '>=14.21.3'} + cpu: [arm64] + os: [darwin] + + '@biomejs/cli-darwin-x64@1.9.4': + resolution: {integrity: sha512-ngYBh/+bEedqkSevPVhLP4QfVPCpb+4BBe2p7Xs32dBgs7rh9nY2AIYUL6BgLw1JVXV8GlpKmb/hNiuIxfPfZg==} + engines: {node: '>=14.21.3'} + cpu: [x64] + os: [darwin] + + '@biomejs/cli-linux-arm64-musl@1.9.4': + resolution: {integrity: sha512-v665Ct9WCRjGa8+kTr0CzApU0+XXtRgwmzIf1SeKSGAv+2scAlW6JR5PMFo6FzqqZ64Po79cKODKf3/AAmECqA==} + engines: {node: '>=14.21.3'} + cpu: [arm64] + os: [linux] + + '@biomejs/cli-linux-arm64@1.9.4': + resolution: {integrity: sha512-fJIW0+LYujdjUgJJuwesP4EjIBl/N/TcOX3IvIHJQNsAqvV2CHIogsmA94BPG6jZATS4Hi+xv4SkBBQSt1N4/g==} + engines: {node: '>=14.21.3'} + cpu: [arm64] + os: [linux] + + '@biomejs/cli-linux-x64-musl@1.9.4': + resolution: {integrity: sha512-gEhi/jSBhZ2m6wjV530Yy8+fNqG8PAinM3oV7CyO+6c3CEh16Eizm21uHVsyVBEB6RIM8JHIl6AGYCv6Q6Q9Tg==} + engines: {node: '>=14.21.3'} + cpu: [x64] + os: [linux] + + '@biomejs/cli-linux-x64@1.9.4': + resolution: {integrity: sha512-lRCJv/Vi3Vlwmbd6K+oQ0KhLHMAysN8lXoCI7XeHlxaajk06u7G+UsFSO01NAs5iYuWKmVZjmiOzJ0OJmGsMwg==} + engines: {node: '>=14.21.3'} + cpu: [x64] + os: [linux] + + '@biomejs/cli-win32-arm64@1.9.4': + resolution: {integrity: sha512-tlbhLk+WXZmgwoIKwHIHEBZUwxml7bRJgk0X2sPyNR3S93cdRq6XulAZRQJ17FYGGzWne0fgrXBKpl7l4M87Hg==} + engines: {node: '>=14.21.3'} + cpu: [arm64] + os: [win32] + + '@biomejs/cli-win32-x64@1.9.4': + resolution: {integrity: sha512-8Y5wMhVIPaWe6jw2H+KlEm4wP/f7EW3810ZLmDlrEEy5KvBsb9ECEfu/kMWD484ijfQ8+nIi0giMgu9g1UAuuA==} + engines: {node: '>=14.21.3'} + cpu: [x64] + os: [win32] + + '@electron/asar@3.2.14': + resolution: {integrity: sha512-hc52QkesULqbxTRC1vOmSBN1YndUkieoNMfvpe988h0MEoGGqbijkOqv4/2M9PufBJxiTVoDdBmBFfXPowZDQg==} + engines: {node: '>=10.12.0'} + hasBin: true - '@dynamic-pkg/mime@1.0.1': - resolution: {integrity: sha512-uZ16uKblCpCWRvF2oPx+hE3Oo+co6NLoEFdA4vWka7+ywoWcQlpbXkNucWoSvLS8V0eTqZIEGx3xJ7rwPUXleg==} + '@emmetio/abbreviation@2.3.3': + resolution: {integrity: sha512-mgv58UrU3rh4YgbE/TzgLQwJ3pFsHHhCLqY20aJq+9comytTXUDNGG/SMtSeMJdkpxgXSXunBGLD8Boka3JyVA==} - '@dynamic-pkg/mutation@1.0.0': - resolution: {integrity: sha512-Xi61JMWcP022hBsYyKJ+0iOzHzSkFf+5qbCs0I2tFmwNaH6jB1kkHGPOEtXmn6/wNgE7/AJV0rj5DEGSnamlnw==} + '@emmetio/css-abbreviation@2.1.8': + resolution: {integrity: sha512-s9yjhJ6saOO/uk1V74eifykk2CBYi01STTK3WlXWGOepyKa23ymJ053+DNQjpFcy1ingpaO7AxCcwLvHFY9tuw==} - '@emnapi/runtime@1.2.0': - resolution: {integrity: sha512-bV21/9LQmcQeCPEg3BDFtvwL6cwiTMksYNWQQ4KOxCZikEGalWtenoZ0wCiukJINlGCIi2KXx01g4FoH/LxpzQ==} + '@emmetio/css-parser@0.4.0': + resolution: {integrity: sha512-z7wkxRSZgrQHXVzObGkXG+Vmj3uRlpM11oCZ9pbaz0nFejvCDmAiNDpY75+wgXOcffKpj4rzGtwGaZxfJKsJxw==} - '@emotion/is-prop-valid@0.8.8': - resolution: {integrity: sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==} + '@emmetio/html-matcher@1.3.0': + resolution: {integrity: sha512-NTbsvppE5eVyBMuyGfVu2CRrLvo7J4YHb6t9sBFLyY03WYhXET37qA4zOYUjBWFCRHO7pS1B9khERtY0f5JXPQ==} - '@emotion/memoize@0.7.4': - resolution: {integrity: sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==} + '@emmetio/scanner@1.0.4': + resolution: {integrity: sha512-IqRuJtQff7YHHBk4G8YZ45uB9BaAGcwQeVzgj/zj8/UdOhtQpEIupUhSk8dys6spFIWVZVeK20CzGEnqR5SbqA==} - '@esbuild/aix-ppc64@0.19.12': - resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [aix] + '@emmetio/stream-reader-utils@0.1.0': + resolution: {integrity: sha512-ZsZ2I9Vzso3Ho/pjZFsmmZ++FWeEd/txqybHTm4OgaZzdS8V9V/YYWQwg5TC38Z7uLWUV1vavpLLbjJtKubR1A==} + + '@emmetio/stream-reader@2.2.0': + resolution: {integrity: sha512-fXVXEyFA5Yv3M3n8sUGT7+fvecGrZP4k6FnWWMSZVQf69kAq0LLpaBQLGcPR30m3zMmKYhECP4k/ZkzvhEW5kw==} + + '@emnapi/runtime@1.3.1': + resolution: {integrity: sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==} '@esbuild/aix-ppc64@0.21.5': resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} @@ -329,11 +396,11 @@ packages: cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.19.12': - resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] + '@esbuild/aix-ppc64@0.23.1': + resolution: {integrity: sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] '@esbuild/android-arm64@0.21.5': resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} @@ -341,10 +408,10 @@ packages: cpu: [arm64] os: [android] - '@esbuild/android-arm@0.19.12': - resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} - engines: {node: '>=12'} - cpu: [arm] + '@esbuild/android-arm64@0.23.1': + resolution: {integrity: sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==} + engines: {node: '>=18'} + cpu: [arm64] os: [android] '@esbuild/android-arm@0.21.5': @@ -353,10 +420,10 @@ packages: cpu: [arm] os: [android] - '@esbuild/android-x64@0.19.12': - resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} - engines: {node: '>=12'} - cpu: [x64] + '@esbuild/android-arm@0.23.1': + resolution: {integrity: sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==} + engines: {node: '>=18'} + cpu: [arm] os: [android] '@esbuild/android-x64@0.21.5': @@ -365,11 +432,11 @@ packages: cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.19.12': - resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] + '@esbuild/android-x64@0.23.1': + resolution: {integrity: sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] '@esbuild/darwin-arm64@0.21.5': resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} @@ -377,10 +444,10 @@ packages: cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.19.12': - resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} - engines: {node: '>=12'} - cpu: [x64] + '@esbuild/darwin-arm64@0.23.1': + resolution: {integrity: sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==} + engines: {node: '>=18'} + cpu: [arm64] os: [darwin] '@esbuild/darwin-x64@0.21.5': @@ -389,11 +456,11 @@ packages: cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.19.12': - resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] + '@esbuild/darwin-x64@0.23.1': + resolution: {integrity: sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] '@esbuild/freebsd-arm64@0.21.5': resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} @@ -401,10 +468,10 @@ packages: cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.19.12': - resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} - engines: {node: '>=12'} - cpu: [x64] + '@esbuild/freebsd-arm64@0.23.1': + resolution: {integrity: sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==} + engines: {node: '>=18'} + cpu: [arm64] os: [freebsd] '@esbuild/freebsd-x64@0.21.5': @@ -413,11 +480,11 @@ packages: cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.19.12': - resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] + '@esbuild/freebsd-x64@0.23.1': + resolution: {integrity: sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] '@esbuild/linux-arm64@0.21.5': resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} @@ -425,10 +492,10 @@ packages: cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.19.12': - resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} - engines: {node: '>=12'} - cpu: [arm] + '@esbuild/linux-arm64@0.23.1': + resolution: {integrity: sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==} + engines: {node: '>=18'} + cpu: [arm64] os: [linux] '@esbuild/linux-arm@0.21.5': @@ -437,10 +504,10 @@ packages: cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.19.12': - resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} - engines: {node: '>=12'} - cpu: [ia32] + '@esbuild/linux-arm@0.23.1': + resolution: {integrity: sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==} + engines: {node: '>=18'} + cpu: [arm] os: [linux] '@esbuild/linux-ia32@0.21.5': @@ -449,10 +516,10 @@ packages: cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.19.12': - resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} - engines: {node: '>=12'} - cpu: [loong64] + '@esbuild/linux-ia32@0.23.1': + resolution: {integrity: sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==} + engines: {node: '>=18'} + cpu: [ia32] os: [linux] '@esbuild/linux-loong64@0.21.5': @@ -461,10 +528,10 @@ packages: cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.19.12': - resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} - engines: {node: '>=12'} - cpu: [mips64el] + '@esbuild/linux-loong64@0.23.1': + resolution: {integrity: sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==} + engines: {node: '>=18'} + cpu: [loong64] os: [linux] '@esbuild/linux-mips64el@0.21.5': @@ -473,10 +540,10 @@ packages: cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.19.12': - resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} - engines: {node: '>=12'} - cpu: [ppc64] + '@esbuild/linux-mips64el@0.23.1': + resolution: {integrity: sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==} + engines: {node: '>=18'} + cpu: [mips64el] os: [linux] '@esbuild/linux-ppc64@0.21.5': @@ -485,10 +552,10 @@ packages: cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.19.12': - resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} - engines: {node: '>=12'} - cpu: [riscv64] + '@esbuild/linux-ppc64@0.23.1': + resolution: {integrity: sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==} + engines: {node: '>=18'} + cpu: [ppc64] os: [linux] '@esbuild/linux-riscv64@0.21.5': @@ -497,10 +564,10 @@ packages: cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.19.12': - resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} - engines: {node: '>=12'} - cpu: [s390x] + '@esbuild/linux-riscv64@0.23.1': + resolution: {integrity: sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==} + engines: {node: '>=18'} + cpu: [riscv64] os: [linux] '@esbuild/linux-s390x@0.21.5': @@ -509,10 +576,10 @@ packages: cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.19.12': - resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} - engines: {node: '>=12'} - cpu: [x64] + '@esbuild/linux-s390x@0.23.1': + resolution: {integrity: sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==} + engines: {node: '>=18'} + cpu: [s390x] os: [linux] '@esbuild/linux-x64@0.21.5': @@ -521,11 +588,11 @@ packages: cpu: [x64] os: [linux] - '@esbuild/netbsd-x64@0.19.12': - resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} - engines: {node: '>=12'} + '@esbuild/linux-x64@0.23.1': + resolution: {integrity: sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==} + engines: {node: '>=18'} cpu: [x64] - os: [netbsd] + os: [linux] '@esbuild/netbsd-x64@0.21.5': resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} @@ -533,10 +600,16 @@ packages: cpu: [x64] os: [netbsd] - '@esbuild/openbsd-x64@0.19.12': - resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} - engines: {node: '>=12'} + '@esbuild/netbsd-x64@0.23.1': + resolution: {integrity: sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==} + engines: {node: '>=18'} cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-arm64@0.23.1': + resolution: {integrity: sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==} + engines: {node: '>=18'} + cpu: [arm64] os: [openbsd] '@esbuild/openbsd-x64@0.21.5': @@ -545,11 +618,11 @@ packages: cpu: [x64] os: [openbsd] - '@esbuild/sunos-x64@0.19.12': - resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} - engines: {node: '>=12'} + '@esbuild/openbsd-x64@0.23.1': + resolution: {integrity: sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==} + engines: {node: '>=18'} cpu: [x64] - os: [sunos] + os: [openbsd] '@esbuild/sunos-x64@0.21.5': resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} @@ -557,11 +630,11 @@ packages: cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.19.12': - resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] + '@esbuild/sunos-x64@0.23.1': + resolution: {integrity: sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] '@esbuild/win32-arm64@0.21.5': resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} @@ -569,10 +642,10 @@ packages: cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.19.12': - resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} - engines: {node: '>=12'} - cpu: [ia32] + '@esbuild/win32-arm64@0.23.1': + resolution: {integrity: sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==} + engines: {node: '>=18'} + cpu: [arm64] os: [win32] '@esbuild/win32-ia32@0.21.5': @@ -581,10 +654,10 @@ packages: cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.19.12': - resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} - engines: {node: '>=12'} - cpu: [x64] + '@esbuild/win32-ia32@0.23.1': + resolution: {integrity: sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==} + engines: {node: '>=18'} + cpu: [ia32] os: [win32] '@esbuild/win32-x64@0.21.5': @@ -593,178 +666,168 @@ packages: cpu: [x64] os: [win32] - '@eslint-community/eslint-utils@4.4.0': - resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - - '@eslint-community/regexpp@4.11.0': - resolution: {integrity: sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + '@esbuild/win32-x64@0.23.1': + resolution: {integrity: sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] - '@eslint/eslintrc@2.1.4': - resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@fastify/accept-negotiator@2.0.0': + resolution: {integrity: sha512-/Sce/kBzuTxIq5tJh85nVNOq9wKD8s+viIgX0fFMDBdw95gnpf53qmF1oBgJym3cPFliWUuSloVg/1w/rH0FcQ==} - '@eslint/js@8.57.0': - resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@fastify/ajv-compiler@4.0.1': + resolution: {integrity: sha512-DxrBdgsjNLP0YM6W5Hd6/Fmj43S8zMKiFJYgi+Ri3htTGAowPVG/tG1wpnWLMjufEnehRivUCKZ1pLDIoZdTuw==} - '@fastify/accept-negotiator@1.1.0': - resolution: {integrity: sha512-OIHZrb2ImZ7XG85HXOONLcJWGosv7sIvM2ifAPQVhg9Lv7qdmMBNVaai4QTdyuaqbKM5eO6sLSQOYI7wEQeCJQ==} - engines: {node: '>=14'} + '@fastify/busboy@3.0.0': + resolution: {integrity: sha512-83rnH2nCvclWaPQQKvkJ2pdOjG4TZyEVuFDnlOF6KP08lDaaceVyw/W63mDuafQT+MKHCvXIPpE5uYWeM0rT4w==} - '@fastify/ajv-compiler@3.6.0': - resolution: {integrity: sha512-LwdXQJjmMD+GwLOkP7TVC68qa+pSSogeWWmznRJ/coyTcfe9qA05AHFSe1eZFwK6q+xVRpChnvFUkf1iYaSZsQ==} + '@fastify/compress@8.0.1': + resolution: {integrity: sha512-yWNfKhvL4orfN45LKCHCo8Fcsbj1kdNgwyShw2xpdHfzPf4A3MESmgSfUm3TCKQwgqDdrPnLfy1E+3I/DVP+BQ==} - '@fastify/compress@6.5.0': - resolution: {integrity: sha512-AqUOK714jY7qkzbQbS4zyI4yNFgnRoOJ3eH/oV1T9f5fFdPDRdrFxm5de1ya5n+as4bvitjwU9EY7zvtT9pI2A==} + '@fastify/deepmerge@2.0.0': + resolution: {integrity: sha512-fsaybTGDyQ5KpPsplQqb9yKdCf2x/pbNpMNk8Tvp3rRz7lVcupKysH4b2ELMN2P4Hak1+UqTYdTj/u4FNV2p0g==} - '@fastify/cookie@9.3.1': - resolution: {integrity: sha512-h1NAEhB266+ZbZ0e9qUE6NnNR07i7DnNXWG9VbbZ8uC6O/hxHpl+Zoe5sw1yfdZ2U6XhToUGDnzQtWJdCaPwfg==} + '@fastify/error@4.0.0': + resolution: {integrity: sha512-OO/SA8As24JtT1usTUTKgGH7uLvhfwZPwlptRi2Dp5P4KKmJI3gvsZ8MIHnNwDs4sLf/aai5LzTyl66xr7qMxA==} - '@fastify/error@3.4.1': - resolution: {integrity: sha512-wWSvph+29GR783IhmvdwWnN4bUxTD01Vm5Xad4i7i1VuAOItLvbPAb69sb0IQ2N57yprvhNIwAP5B6xfKTmjmQ==} + '@fastify/fast-json-stringify-compiler@5.0.1': + resolution: {integrity: sha512-f2d3JExJgFE3UbdFcpPwqNUEoHWmt8pAKf8f+9YuLESdefA0WgqxeT6DrGL4Yrf/9ihXNSKOqpjEmurV405meA==} - '@fastify/fast-json-stringify-compiler@4.3.0': - resolution: {integrity: sha512-aZAXGYo6m22Fk1zZzEUKBvut/CIIQe/BapEORnxiD5Qr0kPHqqI69NtEMCme74h+at72sPhbkb4ZrLd1W3KRLA==} + '@fastify/helmet@12.0.1': + resolution: {integrity: sha512-kkjBcedWwdflRThovGuvN9jB2QQLytBqArCFPdMIb7o2Fp0l/H3xxYi/6x/SSRuH/FFt9qpTGIfJz2bfnMrLqA==} '@fastify/merge-json-schemas@0.1.1': resolution: {integrity: sha512-fERDVz7topgNjtXsJTTW1JKLy0rhuLRcquYqNR9rF7OcVpCa2OVW49ZPDIhaRRCaUuvVxI+N416xUoF76HNSXA==} - '@fastify/send@2.1.0': - resolution: {integrity: sha512-yNYiY6sDkexoJR0D8IDy3aRP3+L4wdqCpvx5WP+VtEU58sn7USmKynBzDQex5X42Zzvw2gNzzYgP90UfWShLFA==} + '@fastify/middie@9.0.2': + resolution: {integrity: sha512-MHvAhUBxrefkpx4A8HtjOjAdlaCtY8j19PC6ORfm7KPMb/dklDeqBqR4xPRTtcBRPZUYq2jAJJWQCB4eO+dtKw==} + + '@fastify/multipart@9.0.1': + resolution: {integrity: sha512-vt2gOCw/O4EwpN4KlLVJxth4iQlDf7T5ggw2Db2C+UbO2WJBG7y0jEBvu/HT6JIW/lBYaqrrUy9MmTpCKgXEpw==} - '@fastify/static@6.12.0': - resolution: {integrity: sha512-KK1B84E6QD/FcQWxDI2aiUCwHxMJBI1KeCUzm1BwYpPY1b742+jeKruGHP2uOluuM6OkBPI8CIANrXcCRtC2oQ==} + '@fastify/send@3.1.1': + resolution: {integrity: sha512-LdiV2mle/2tH8vh6GwGl0ubfUAgvY+9yF9oGI1iiwVyNUVOQamvw5n+OFu6iCNNoyuCY80FFURBn4TZCbTe8LA==} + + '@fastify/static@8.0.2': + resolution: {integrity: sha512-xJ+XaZVl4Y+lKztx8jGi+BE73aByhOmjMgaTx98E4XtVZxUpiaYQIMBlwACsJz+xohm0kvzV34BZoiZ+bsJtBQ==} '@gar/promisify@1.1.3': resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} - '@humanwhocodes/config-array@0.11.14': - resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} - engines: {node: '>=10.10.0'} - deprecated: Use @eslint/config-array instead + '@iconify-json/ph@1.2.1': + resolution: {integrity: sha512-x0DNfwWrS18dbsBYOq3XGiZnGz4CgRyC+YSl/TZvMQiKhIUl1woWqUbMYqqfMNUBzjyk7ulvaRovpRsIlqIf8g==} + + '@iconify/tools@4.0.7': + resolution: {integrity: sha512-zOJxKIfZn96ZRGGvIWzDRLD9vb2CsxjcLuM+QIdvwWbv6SWhm49gECzUnd4d2P0sq9sfodT7yCNobWK8nvavxQ==} - '@humanwhocodes/module-importer@1.0.1': - resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} - engines: {node: '>=12.22'} + '@iconify/types@2.0.0': + resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} - '@humanwhocodes/object-schema@2.0.3': - resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} - deprecated: Use @eslint/object-schema instead + '@iconify/utils@2.1.33': + resolution: {integrity: sha512-jP9h6v/g0BIZx0p7XGJJVtkVnydtbgTgt9mVNcGDYwaa7UhdHdI9dvoq+gKj9sijMSJKxUPEG2JyjsgXjxL7Kw==} - '@img/sharp-darwin-arm64@0.33.4': - resolution: {integrity: sha512-p0suNqXufJs9t3RqLBO6vvrgr5OhgbWp76s5gTRvdmxmuv9E1rcaqGUsl3l4mKVmXPkTkTErXediAui4x+8PSA==} - engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-darwin-arm64@0.33.5': + resolution: {integrity: sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [darwin] - '@img/sharp-darwin-x64@0.33.4': - resolution: {integrity: sha512-0l7yRObwtTi82Z6ebVI2PnHT8EB2NxBgpK2MiKJZJ7cz32R4lxd001ecMhzzsZig3Yv9oclvqqdV93jo9hy+Dw==} - engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-darwin-x64@0.33.5': + resolution: {integrity: sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [darwin] - '@img/sharp-libvips-darwin-arm64@1.0.2': - resolution: {integrity: sha512-tcK/41Rq8IKlSaKRCCAuuY3lDJjQnYIW1UXU1kxcEKrfL8WR7N6+rzNoOxoQRJWTAECuKwgAHnPvqXGN8XfkHA==} - engines: {macos: '>=11', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-libvips-darwin-arm64@1.0.4': + resolution: {integrity: sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==} cpu: [arm64] os: [darwin] - '@img/sharp-libvips-darwin-x64@1.0.2': - resolution: {integrity: sha512-Ofw+7oaWa0HiiMiKWqqaZbaYV3/UGL2wAPeLuJTx+9cXpCRdvQhCLG0IH8YGwM0yGWGLpsF4Su9vM1o6aer+Fw==} - engines: {macos: '>=10.13', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-libvips-darwin-x64@1.0.4': + resolution: {integrity: sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==} cpu: [x64] os: [darwin] - '@img/sharp-libvips-linux-arm64@1.0.2': - resolution: {integrity: sha512-x7kCt3N00ofFmmkkdshwj3vGPCnmiDh7Gwnd4nUwZln2YjqPxV1NlTyZOvoDWdKQVDL911487HOueBvrpflagw==} - engines: {glibc: '>=2.26', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-libvips-linux-arm64@1.0.4': + resolution: {integrity: sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==} cpu: [arm64] os: [linux] - '@img/sharp-libvips-linux-arm@1.0.2': - resolution: {integrity: sha512-iLWCvrKgeFoglQxdEwzu1eQV04o8YeYGFXtfWU26Zr2wWT3q3MTzC+QTCO3ZQfWd3doKHT4Pm2kRmLbupT+sZw==} - engines: {glibc: '>=2.28', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-libvips-linux-arm@1.0.5': + resolution: {integrity: sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==} cpu: [arm] os: [linux] - '@img/sharp-libvips-linux-s390x@1.0.2': - resolution: {integrity: sha512-cmhQ1J4qVhfmS6szYW7RT+gLJq9dH2i4maq+qyXayUSn9/3iY2ZeWpbAgSpSVbV2E1JUL2Gg7pwnYQ1h8rQIog==} - engines: {glibc: '>=2.28', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-libvips-linux-s390x@1.0.4': + resolution: {integrity: sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==} cpu: [s390x] os: [linux] - '@img/sharp-libvips-linux-x64@1.0.2': - resolution: {integrity: sha512-E441q4Qdb+7yuyiADVi5J+44x8ctlrqn8XgkDTwr4qPJzWkaHwD489iZ4nGDgcuya4iMN3ULV6NwbhRZJ9Z7SQ==} - engines: {glibc: '>=2.26', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-libvips-linux-x64@1.0.4': + resolution: {integrity: sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==} cpu: [x64] os: [linux] - '@img/sharp-libvips-linuxmusl-arm64@1.0.2': - resolution: {integrity: sha512-3CAkndNpYUrlDqkCM5qhksfE+qSIREVpyoeHIU6jd48SJZViAmznoQQLAv4hVXF7xyUB9zf+G++e2v1ABjCbEQ==} - engines: {musl: '>=1.2.2', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-libvips-linuxmusl-arm64@1.0.4': + resolution: {integrity: sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==} cpu: [arm64] os: [linux] - '@img/sharp-libvips-linuxmusl-x64@1.0.2': - resolution: {integrity: sha512-VI94Q6khIHqHWNOh6LLdm9s2Ry4zdjWJwH56WoiJU7NTeDwyApdZZ8c+SADC8OH98KWNQXnE01UdJ9CSfZvwZw==} - engines: {musl: '>=1.2.2', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-libvips-linuxmusl-x64@1.0.4': + resolution: {integrity: sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==} cpu: [x64] os: [linux] - '@img/sharp-linux-arm64@0.33.4': - resolution: {integrity: sha512-2800clwVg1ZQtxwSoTlHvtm9ObgAax7V6MTAB/hDT945Tfyy3hVkmiHpeLPCKYqYR1Gcmv1uDZ3a4OFwkdBL7Q==} - engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-linux-arm64@0.33.5': + resolution: {integrity: sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] - '@img/sharp-linux-arm@0.33.4': - resolution: {integrity: sha512-RUgBD1c0+gCYZGCCe6mMdTiOFS0Zc/XrN0fYd6hISIKcDUbAW5NtSQW9g/powkrXYm6Vzwd6y+fqmExDuCdHNQ==} - engines: {glibc: '>=2.28', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-linux-arm@0.33.5': + resolution: {integrity: sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm] os: [linux] - '@img/sharp-linux-s390x@0.33.4': - resolution: {integrity: sha512-h3RAL3siQoyzSoH36tUeS0PDmb5wINKGYzcLB5C6DIiAn2F3udeFAum+gj8IbA/82+8RGCTn7XW8WTFnqag4tQ==} - engines: {glibc: '>=2.31', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-linux-s390x@0.33.5': + resolution: {integrity: sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [s390x] os: [linux] - '@img/sharp-linux-x64@0.33.4': - resolution: {integrity: sha512-GoR++s0XW9DGVi8SUGQ/U4AeIzLdNjHka6jidVwapQ/JebGVQIpi52OdyxCNVRE++n1FCLzjDovJNozif7w/Aw==} - engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-linux-x64@0.33.5': + resolution: {integrity: sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] - '@img/sharp-linuxmusl-arm64@0.33.4': - resolution: {integrity: sha512-nhr1yC3BlVrKDTl6cO12gTpXMl4ITBUZieehFvMntlCXFzH2bvKG76tBL2Y/OqhupZt81pR7R+Q5YhJxW0rGgQ==} - engines: {musl: '>=1.2.2', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-linuxmusl-arm64@0.33.5': + resolution: {integrity: sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] - '@img/sharp-linuxmusl-x64@0.33.4': - resolution: {integrity: sha512-uCPTku0zwqDmZEOi4ILyGdmW76tH7dm8kKlOIV1XC5cLyJ71ENAAqarOHQh0RLfpIpbV5KOpXzdU6XkJtS0daw==} - engines: {musl: '>=1.2.2', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-linuxmusl-x64@0.33.5': + resolution: {integrity: sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] - '@img/sharp-wasm32@0.33.4': - resolution: {integrity: sha512-Bmmauh4sXUsUqkleQahpdNXKvo+wa1V9KhT2pDA4VJGKwnKMJXiSTGphn0gnJrlooda0QxCtXc6RX1XAU6hMnQ==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-wasm32@0.33.5': + resolution: {integrity: sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [wasm32] - '@img/sharp-win32-ia32@0.33.4': - resolution: {integrity: sha512-99SJ91XzUhYHbx7uhK3+9Lf7+LjwMGQZMDlO/E/YVJ7Nc3lyDFZPGhjwiYdctoH2BOzW9+TnfqcaMKt0jHLdqw==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-win32-ia32@0.33.5': + resolution: {integrity: sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [ia32] os: [win32] - '@img/sharp-win32-x64@0.33.4': - resolution: {integrity: sha512-3QLocdTRVIrFNye5YocZl+KKpYKP+fksi1QhmOArgx7GyhIbQp/WrJRu176jm8IxromS7RIkzMiMINVdBtC8Aw==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-win32-x64@0.33.5': + resolution: {integrity: sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [win32] @@ -784,8 +847,11 @@ packages: resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} engines: {node: '>=6.0.0'} - '@jridgewell/sourcemap-codec@1.4.15': - resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + '@jridgewell/source-map@0.3.6': + resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} + + '@jridgewell/sourcemap-codec@1.5.0': + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} '@jridgewell/trace-mapping@0.3.25': resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} @@ -794,26 +860,17 @@ packages: resolution: {integrity: sha512-9I2Zn6+NJLfaGoz9jN3lpwDgAYvfGeNYdbAIjJOqzs4Tpc+VU3Jqq4IofSUBKajiDS8k9fZIg18/z13mpk1bsA==} engines: {node: '>=8'} - '@mdn/browser-compat-data@5.5.35': - resolution: {integrity: sha512-APtxt3S+a64EcXpG7E3a0bLx+CPqEcgN45FY/GEmbBBgX51AGIPkkYFy0JQDuOR0MFCozjo50q5Im74jflrkiQ==} - - '@mercuryworkshop/bare-mux@1.1.1': - resolution: {integrity: sha512-qKOnTsIjwv4wBvToek3Jm+y3F/BcFtjy6HOsdyzIUemCOw51kodzRsvWvU9Pf/JYDVPV8or0zbsg+qOKtasjhA==} + '@mercuryworkshop/bare-mux@2.1.6': + resolution: {integrity: sha512-SMpPwHrRjeqBfuh5N9SKD2G7uzfQiOeiENcYjb0BYTpOEOFvoPDhjSppSZMSkN1maJJ1NNtCRv9Qb+uCeJWwgw==} - '@mercuryworkshop/epoxy-tls@2.0.0-3': - resolution: {integrity: sha512-iC5CViTh2xn44xtjvDW4YW9qoeoJcCBOqcNmffBx3RHdK7FAzAWFHLTUBtdlnMVv6cjYZtV+eUTzxyreqlgOVA==} + '@mercuryworkshop/epoxy-tls@2.1.6-1': + resolution: {integrity: sha512-drnffDo9Ls73Fpmcup2Ys1z+BjzK+WLnzyfS4APFfWr9cJ0gu7567tx4M06XH5PUZMOS1J1Z3wqnRaBh/RX5bQ==} - '@mercuryworkshop/epoxy-transport@2.0.1': - resolution: {integrity: sha512-iGuH/CT5hCVRYBa+5ZrlTG0DWII9VOCMHnmv9CPFLM17obE84y9EUXpTp9hXdfENnuAcNzQVPizjwVas7HiYQA==} + '@mercuryworkshop/epoxy-transport@2.1.13': + resolution: {integrity: sha512-2F3B+QCuuLSbi0449Xn31VdyrTzRcAlA6z4OLEVGNs9bi4HfTkFVKryarcts55euCZuVVGH7XtLqTXJUn0MX0g==} - '@mercuryworkshop/libcurl-transport@1.3.1': - resolution: {integrity: sha512-yGt8K7D1j8WLn7LgH6YPnxmHc+JUCB0x/QPIStuRftl0tq3D8uHskRFeOJ8ksTrru7mTAjk5Cpmvix8jNJ+Lug==} - - '@nebula-services/dynamic@0.7.2-patch.2': - resolution: {integrity: sha512-0g1ygwVNS0dmT38NIeZYc2Z5HiZKHT3tP7ZagIeWC/VlcZjINIPR4ThNndWVaGiZey2Y2JS2807ABb41OSYTrw==} - - '@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1': - resolution: {integrity: sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==} + '@mercuryworkshop/libcurl-transport@1.3.11': + resolution: {integrity: sha512-XObN3yhqfuHacjUj+c5bJZw3Mv3h7AZwXWcKGTJfmYx+DKwLoZZnV5y0N/+SS4Rnz2Oj9VcFy+6fivjyt5e7OQ==} '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} @@ -835,300 +892,270 @@ packages: engines: {node: '>=10'} deprecated: This functionality has been moved to @npmcli/fs + '@oslojs/encoding@1.1.0': + resolution: {integrity: sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ==} + '@pkgjs/parseargs@0.11.0': resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} - '@preact/preset-vite@2.8.3': - resolution: {integrity: sha512-IT4+IV3D4lIyoDrp4FUfx4dT2yW/5KIl2MXAsqqItGTbz1xUhtSyP9nS2kLXNnhLG4I2Nku/X+vKFMmRG+oMDA==} - peerDependencies: - '@babel/core': 7.x - vite: 2.x || 3.x || 4.x || 5.x - - '@prefresh/babel-plugin@0.5.1': - resolution: {integrity: sha512-uG3jGEAysxWoyG3XkYfjYHgaySFrSsaEb4GagLzYaxlydbuREtaX+FTxuIidp241RaLl85XoHg9Ej6E4+V1pcg==} - - '@prefresh/core@1.5.2': - resolution: {integrity: sha512-A/08vkaM1FogrCII5PZKCrygxSsc11obExBScm3JF1CryK2uDS3ZXeni7FeKCx1nYdUkj4UcJxzPzc1WliMzZA==} - peerDependencies: - preact: ^10.0.0 + '@playform/compress@0.1.6': + resolution: {integrity: sha512-T76ABM/naxhIEYQ9D4z+6MS9OW6IGxChlUd8gBPGa5ipTxsQTRV3QkB5v2/l7ZOnds/JoaXqzr0J6xThKXjm7Q==} - '@prefresh/utils@1.2.0': - resolution: {integrity: sha512-KtC/fZw+oqtwOLUFM9UtiitB0JsVX0zLKNyRTA332sqREqSALIIQQxdUCS1P3xR/jT1e2e8/5rwH6gdcMLEmsQ==} + '@playform/pipe@0.1.1': + resolution: {integrity: sha512-qofwa/+UKbvyHw4NiVwQZ5Z4UNEDSKmrtKFUL6JO9NhtaEuio3a90QuvTTsTw4g4tGHCmj0is/7p1igkRJ2EyA==} - '@prefresh/vite@2.4.6': - resolution: {integrity: sha512-miYbTl2J1YNaQJWyWHJzyIpNh7vKUuXC1qCDRzPeWjhQ+9bxeXkUBGDGd9I1f37R5GQYi1S65AN5oR0BR2WzvQ==} + '@rollup/pluginutils@5.1.3': + resolution: {integrity: sha512-Pnsb6f32CD2W3uCaLZIzDmeFyQ2b8UWMFI7xtwUezpcGBDVDW6y9XgAWIlARiGAo6eNF5FK5aQTr0LFyNyqq5A==} + engines: {node: '>=14.0.0'} peerDependencies: - preact: ^10.4.0 - vite: '>=2.0.0' - - '@rollup/pluginutils@4.2.1': - resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} - engines: {node: '>= 8.0.0'} + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true - '@rollup/rollup-android-arm-eabi@4.18.0': - resolution: {integrity: sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==} + '@rollup/rollup-android-arm-eabi@4.24.0': + resolution: {integrity: sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.18.0': - resolution: {integrity: sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==} + '@rollup/rollup-android-arm64@4.24.0': + resolution: {integrity: sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.18.0': - resolution: {integrity: sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==} + '@rollup/rollup-darwin-arm64@4.24.0': + resolution: {integrity: sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.18.0': - resolution: {integrity: sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==} + '@rollup/rollup-darwin-x64@4.24.0': + resolution: {integrity: sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==} cpu: [x64] os: [darwin] - '@rollup/rollup-linux-arm-gnueabihf@4.18.0': - resolution: {integrity: sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==} + '@rollup/rollup-linux-arm-gnueabihf@4.24.0': + resolution: {integrity: sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.18.0': - resolution: {integrity: sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==} + '@rollup/rollup-linux-arm-musleabihf@4.24.0': + resolution: {integrity: sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.18.0': - resolution: {integrity: sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==} + '@rollup/rollup-linux-arm64-gnu@4.24.0': + resolution: {integrity: sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.18.0': - resolution: {integrity: sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==} + '@rollup/rollup-linux-arm64-musl@4.24.0': + resolution: {integrity: sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.18.0': - resolution: {integrity: sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==} + '@rollup/rollup-linux-powerpc64le-gnu@4.24.0': + resolution: {integrity: sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.18.0': - resolution: {integrity: sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==} + '@rollup/rollup-linux-riscv64-gnu@4.24.0': + resolution: {integrity: sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.18.0': - resolution: {integrity: sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==} + '@rollup/rollup-linux-s390x-gnu@4.24.0': + resolution: {integrity: sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.18.0': - resolution: {integrity: sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==} + '@rollup/rollup-linux-x64-gnu@4.24.0': + resolution: {integrity: sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.18.0': - resolution: {integrity: sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==} + '@rollup/rollup-linux-x64-musl@4.24.0': + resolution: {integrity: sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ==} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.18.0': - resolution: {integrity: sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==} + '@rollup/rollup-win32-arm64-msvc@4.24.0': + resolution: {integrity: sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.18.0': - resolution: {integrity: sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==} + '@rollup/rollup-win32-ia32-msvc@4.24.0': + resolution: {integrity: sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.18.0': - resolution: {integrity: sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==} + '@rollup/rollup-win32-x64-msvc@4.24.0': + resolution: {integrity: sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw==} cpu: [x64] os: [win32] - '@titaniumnetwork-dev/ultraviolet@3.1.2': - resolution: {integrity: sha512-PvhyL9IQtSwHTVRRpNGn+YCWkSzP7JEk0wX7M5YfUSobBicoRLOJhCC4u6T9qh/vObDpLDE3TfP4GKqMTSa2rw==} + '@rubynetwork/rammerhead-browser@1.0.9': + resolution: {integrity: sha512-Vtg4HmV8zRMexyQNN3HnOK2qCql5s51lD747AINxENZAOKbow1IIj1U9jmAqvaZCklLTuhQhwS/8wxn6GLyptQ==} - '@tomphttp/bare-client@2.2.0-alpha': - resolution: {integrity: sha512-xhcflOpwr92tkpp8SoDhB3nK3LHMBIjx+vgow37XobQew2k0/mXSxmaU7BsDFpOIa1CcLCEsR8gWn0v7Cy9+7Q==} - - '@tomphttp/bare-server-node@2.0.3': - resolution: {integrity: sha512-IGzZspDwzto+oPsvlV99OALJKH3X1nRWnpBE8EY6nrqu5I83xw3uSUacEdHNnW4rXG0IQ8vZwMH87VOMoArJ3A==} - engines: {node: '>=18.0.0'} + '@rubynetwork/rammerhead@1.3.5': + resolution: {integrity: sha512-gN3HcK1snoq2jms3ZxoR5OUGiKw5O3xCTKp/tzuYftYNJXgwFwWcDL8CLrk/uFlvifkBSOzWz3jJVqHC409m3w==} hasBin: true - '@tootallnate/once@1.1.2': - resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==} - engines: {node: '>= 6'} - - '@tsparticles/basic@3.4.0': - resolution: {integrity: sha512-a0HxG0GOhXof7NDqcqdyu9XpmCAQ0M402YECz/jsH4CkBpz3ut0BrgnyjT6Xcqna3pR1Kv1m516/sV2fwNnnQw==} - - '@tsparticles/engine@3.4.0': - resolution: {integrity: sha512-OqoMZYJCoiihNnexnnSmInEMNXr0Z8CmE1HSiFVeifgK1qUlonTFe2G09KdvNT8ZdvmIC513yTpFJNDbnMZYRQ==} - - '@tsparticles/interaction-external-attract@3.4.0': - resolution: {integrity: sha512-6enSRkoXyK0JvW8bJuj2xAUuu9VzDiFvRCPaL+5dcLcDpjheh8nWpGzrgo8p9VxLL5VRYv7PxnYPMviBMQ7WzA==} + '@rubynetwork/rh@1.2.74': + resolution: {integrity: sha512-qbVueaMHxSXF8dysQE3eL2Fj8x5L1cBMzk5G6iVokntQjYxCHcV+vWvZbykXspvPJjs4b5uYnZ+D/rMHmSVhrg==} - '@tsparticles/interaction-external-bounce@3.4.0': - resolution: {integrity: sha512-yiTJD8t+Uzpo9lyhHlaC+azu49dJtrFVhbVZdDaiTNm1L1stFQBrc+9NY63BfQDEkDmSz4uWvQXQMru2KY+40g==} + '@shikijs/core@1.22.1': + resolution: {integrity: sha512-bqAhT/Ri5ixV4oYsvJNH8UJjpjbINWlWyXY6tBTsP4OmD6XnFv43nRJ+lTdxd2rmG5pgam/x+zGR6kLRXrpEKA==} - '@tsparticles/interaction-external-bubble@3.4.0': - resolution: {integrity: sha512-CQ1nC6Or8qAAkH7A2x3FkP473caM7UWQiiN4zR4JtSZu06+2Y0V09LXguQKx1RWDehgRvkylQ4Dgur4a5qNb8w==} + '@shikijs/engine-javascript@1.22.1': + resolution: {integrity: sha512-540pyoy0LWe4jj2BVbgELwOFu1uFvRI7lg4hdsExrSXA9x7gqfzZ/Nnh4RfX86aDAgJ647gx4TCmRwACbnQSvw==} - '@tsparticles/interaction-external-connect@3.4.0': - resolution: {integrity: sha512-UBzs0iV7wLbrL2VIuCT25asUjjXGCiVC/kCM5NtG7+gd6wDB8DbjZPjHviI7AnEnJdBPeZ2eeYIVuLiO1Xpd3A==} + '@shikijs/engine-oniguruma@1.22.1': + resolution: {integrity: sha512-L+1Vmd+a2kk8HtogUFymQS6BjUfJnzcWoUp1BUgxoDiklbKSMvrsMuLZGevTOP1m0rEjgnC5MsDmsr8lX1lC+Q==} - '@tsparticles/interaction-external-grab@3.4.0': - resolution: {integrity: sha512-BsnwN1x+nYUCD7iSu/wLX//awAka1Vf5gnynBqgmz0odAlN3Wv2i9iR/JkzDQynmGLJPHffYgkXC8LWXgZZznQ==} + '@shikijs/types@1.22.1': + resolution: {integrity: sha512-+45f8mu/Hxqs6Kyhfm98Nld5n7Q7lwhjU8UtdQwrOPs7BnM4VAb929O3IQ2ce+4D7SlNFlZGd8CnKRSnwbQreQ==} - '@tsparticles/interaction-external-pause@3.4.0': - resolution: {integrity: sha512-B6xvHLLktN9BHPcIbAxc7F68aDOnieKAxPwqSuvRtQrEP0Q3xcvTkw1TBwzehr9mZH+0SVGzPfH8BMWI4EP1Xg==} + '@shikijs/vscode-textmate@9.3.0': + resolution: {integrity: sha512-jn7/7ky30idSkd/O5yDBfAnVt+JJpepofP/POZ1iMOxK59cOfqIgg/Dj0eFsjOTMw+4ycJN0uhZH/Eb0bs/EUA==} - '@tsparticles/interaction-external-push@3.4.0': - resolution: {integrity: sha512-SriLK1X45CaLwzxjtDo5nCGtF8lwPwK5zYO6+UU+9djUzbh/dBlXQr63ovm/jYPE+yGPRxAhJLdiHpss6aaavQ==} - - '@tsparticles/interaction-external-remove@3.4.0': - resolution: {integrity: sha512-9W4v8s3J+4l9AXpAvvAMbdG0G6y0HHA+/ZmP/9CtVc1fqVDDrMHL0ojXuVlGMxVjKgwuO28x8+jOAuM7PHiSsQ==} - - '@tsparticles/interaction-external-repulse@3.4.0': - resolution: {integrity: sha512-5tM8uLGsKMUhZ2+Acy8XHrw1MN+apqNBhfVYoZ5UdH2soX1xAicSCrEpSObiS1xjCmkpRlkfls3Ygo4FHz3eSg==} + '@svelte-drama/suspense@0.5.1': + resolution: {integrity: sha512-fovSQHYDxb9fEnMVBHxBi4v39CR+Hrsp16lSYOHm+aPfm8FyBQtG8VsrIg9BszNWz8GCEFIVCaE/Iqty1ovB6Q==} + peerDependencies: + svelte: ^3.54.0 || ^4.0.0 || ^5.0.0 - '@tsparticles/interaction-external-slow@3.4.0': - resolution: {integrity: sha512-bBlKG3VS8g64+HiDlu9RbWt/3bIepEu25w8G2zTB+GQMBqDpKsMioWWKNT66w/661U1BlvUZWHaJE/OdMCZTZw==} + '@sveltejs/vite-plugin-svelte-inspector@2.1.0': + resolution: {integrity: sha512-9QX28IymvBlSCqsCll5t0kQVxipsfhFFL+L2t3nTWfXnddYwxBuAEtTtlaVQpRz9c37BhJjltSeY4AJSC03SSg==} + engines: {node: ^18.0.0 || >=20} + peerDependencies: + '@sveltejs/vite-plugin-svelte': ^3.0.0 + svelte: ^4.0.0 || ^5.0.0-next.0 + vite: ^5.0.0 - '@tsparticles/interaction-particles-attract@3.4.0': - resolution: {integrity: sha512-Ye6f37AZYaMExjsZSoOEMsTSFIPs3ZZCxiQmiCeH+gNK8yGXJDLkWwZUN0S7S4GJDf24Nt4S+gunKJxO8C3qGQ==} + '@sveltejs/vite-plugin-svelte@3.1.2': + resolution: {integrity: sha512-Txsm1tJvtiYeLUVRNqxZGKR/mI+CzuIQuc2gn+YCs9rMTowpNZ2Nqt53JdL8KF9bLhAf2ruR/dr9eZCwdTriRA==} + engines: {node: ^18.0.0 || >=20} + peerDependencies: + svelte: ^4.0.0 || ^5.0.0-next.0 + vite: ^5.0.0 - '@tsparticles/interaction-particles-collisions@3.4.0': - resolution: {integrity: sha512-JmDyXlGS6vSrUxvgMf/t6hsnsAS4YRc9rZM3CcmfyUM9UG9/+vef/cekNDSVRzszk5KcFF70w2FLJ6EhYs0ecA==} + '@titaniumnetwork-dev/ultraviolet@3.2.7': + resolution: {integrity: sha512-leR8Cxtgld9NykRbEbYejbD85dOLh0rqQe6tfcsaFEBIChWG9QF10x1qoJBQ3wXSvZ+wqh3cBNYrucYpHOWpUA==} - '@tsparticles/interaction-particles-links@3.4.0': - resolution: {integrity: sha512-2UhzNsZCSF69L0PGwlJARNx3qrMdSrl5p/TgO5Q5w7iwBU1x/W27O+TDQvNdMHsOLPPUomUI+jJfRXY2snqp3Q==} + '@tootallnate/once@1.1.2': + resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==} + engines: {node: '>= 6'} - '@tsparticles/move-base@3.4.0': - resolution: {integrity: sha512-4P9CzgVN7INogAvqkg/cEA+6WKeGUAtsgljJ2rUADgNBiScW1oJZAw/004AZiOlonLRiUZujUCNS4zlAg62ZvQ==} + '@trysound/sax@0.2.0': + resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} + engines: {node: '>=10.13.0'} - '@tsparticles/move-parallax@3.4.0': - resolution: {integrity: sha512-5GdTxro5y3+GFNabaHPFuJl2zOpiyDZJ0D96QAY/sRnI5NNASj7n9QgUeViPdAsOOIgrHgIMl43MqJSUbuK4tw==} + '@types/babel__core@7.20.5': + resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} - '@tsparticles/plugin-easing-quad@3.4.0': - resolution: {integrity: sha512-JgZDeoES8ONrt+pKdDRrUkTKJRfjgRpTlLgr2KqqadI+lSOQIw/QJuXfCu25/47wJLcPUxP1melclp6X/IhNog==} + '@types/babel__generator@7.6.8': + resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} - '@tsparticles/react@3.0.0': - resolution: {integrity: sha512-hjGEtTT1cwv6BcjL+GcVgH++KYs52bIuQGW3PWv7z3tMa8g0bd6RI/vWSLj7p//NZ3uTjEIeilYIUPBh7Jfq/Q==} - peerDependencies: - '@tsparticles/engine': ^3.0.2 - react: '>=16.8.0' - react-dom: '>=16.8.0' + '@types/babel__template@7.4.4': + resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} - '@tsparticles/shape-circle@3.4.0': - resolution: {integrity: sha512-X1ynt8h7bO+xep12Vkxeo2fImbKzLMEZr0qY3vKZzhHcy0/lxoo505pwyVL2+V98eZNOu9fmQM7vlIt/0FGTcg==} + '@types/babel__traverse@7.20.6': + resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==} - '@tsparticles/shape-emoji@3.4.0': - resolution: {integrity: sha512-fzuRdwzikhiE7bgagNJVFccvipy7+bcG6PGvfGmJO3FQIwYSTRV2mJVsI/uPQkBUGJyzJPncp7FzEix/D3PDCA==} + '@types/bluebird@3.5.42': + resolution: {integrity: sha512-Jhy+MWRlro6UjVi578V/4ZGNfeCOcNCp0YaFNIUGFKlImowqwb1O/22wDVk3FDGMLqxdpOV3qQHD5fPEH4hK6A==} - '@tsparticles/shape-image@3.4.0': - resolution: {integrity: sha512-US7MYYFP0iMqWs9JiPNmqFSIxmsqkTF6gW6VvDDGtBEUxw3wubSEln3Gc3PQBpa/Tq0jwkUfd1/zkyahOrycUw==} + '@types/continuation-local-storage@3.2.7': + resolution: {integrity: sha512-Q7dPOymVpRG5Zpz90/o26+OAqOG2Sw+FED7uQmTrJNCF/JAPTylclZofMxZKd6W7g1BDPmT9/C/jX0ZcSNTQwQ==} - '@tsparticles/shape-line@3.4.0': - resolution: {integrity: sha512-pXItuUBtIatcQQLp+CS1HZjHtpGVqswFxDaFZv0b9Ulx+7I48i4T5r6LCF2ngo+3xcT+rDdAF/Ca/oCunztBBA==} + '@types/cookie@0.6.0': + resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==} - '@tsparticles/shape-polygon@3.4.0': - resolution: {integrity: sha512-qA7nXwWufVZLyS1CT9cFNqcjgLRQQnILc3w1gkH7B80uGYg4bLgQcOZiI7OwifOFkgyI6Mvb0XRntl+NQaDDRA==} + '@types/css-tree@2.3.8': + resolution: {integrity: sha512-zABG3nI2UENsx7AQv63tI5/ptoAG/7kQR1H0OvG+WTWYHOR5pfAT3cGgC8SdyCrgX/TTxJBZNmx82IjCXs1juQ==} - '@tsparticles/shape-square@3.4.0': - resolution: {integrity: sha512-pUXAbSnW5aTMFFjAP3GHMxqbah3ADibuQcEmIgts5tNUKY8Bl0Syx5pllpe81z2AMJCsQncC15/M19DU/H+YXw==} + '@types/csso@5.0.4': + resolution: {integrity: sha512-W/FsRkm/9c04x9ON+bj+HQ0cSgNkG1LvcfuBCpkP7cpikM7+RkrNFLGtiofb++xBG6KGMUycLoDbi9/K621ZCw==} - '@tsparticles/shape-star@3.4.0': - resolution: {integrity: sha512-Gy4FLvVh0qBTVAZbBeV3MfsofYXycxO60/5HqNePsG3+sO/o5DKGZqf/Fw1Cacrb1QYg5A59P/122MZTMnLqEA==} + '@types/debug@4.1.12': + resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} - '@tsparticles/slim@3.4.0': - resolution: {integrity: sha512-ukQqSdTzBlZHnD6MwRCdJBWbfgWSRNa4BG+H8IVAU5ggdQ7AbnDsdMG/o49cvstguGsKSbjmHYFNkDYGeKasuw==} + '@types/estree@0.0.46': + resolution: {integrity: sha512-laIjwTQaD+5DukBZaygQ79K1Z0jb1bPEMRrkXSLjtCcZm+abyp5YbrqpSLzD42FwWW6gK/aS4NYpJ804nG2brg==} - '@tsparticles/updater-color@3.4.0': - resolution: {integrity: sha512-joT5O/78p7n3jBq1aiFEp4wMevv8WtfjBJnODwEUO7aiHRozs9tA05djVLYZ7kjH0bLymJoPwxM46SEGSTsh+g==} + '@types/estree@1.0.6': + resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} - '@tsparticles/updater-life@3.4.0': - resolution: {integrity: sha512-bFx/3TTNNnWVmHkrfwXVlLc7R8QfbeX+KQ6dy09n+i2Vs3HnQUF7/VITjt0erNzyHfnqh+q+80gCn6X4brvwEQ==} + '@types/hast@3.0.4': + resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} - '@tsparticles/updater-opacity@3.4.0': - resolution: {integrity: sha512-OCWbebZykDh8ZbTiTQX+pBRXHfTMMJpNXbFps4lTSHXHMDsbEMl5a3/TEFeUk3rd0wkiRSCjPUSGKupoU5B14w==} + '@types/html-minifier-terser@7.0.2': + resolution: {integrity: sha512-mm2HqV22l8lFQh4r2oSsOEVea+m0qqxEmwpc9kC1p/XzmjLWrReR9D/GRs8Pex2NX/imyEH9c5IU/7tMBQCHOA==} - '@tsparticles/updater-out-modes@3.4.0': - resolution: {integrity: sha512-i80MSXpnfivKlfA0FbAxk2CfZGNG3rPNtx5Pz/ZCDQ71j1YFjztdwfugp9oueu/sLfOSw4hIKfyR062zpgZp6Q==} + '@types/lodash@4.17.12': + resolution: {integrity: sha512-sviUmCE8AYdaF/KIHLDJBQgeYzPBI0vf/17NaYehBJfYD1j6/L95Slh07NlyK2iNyBNaEkb3En2jRt+a8y3xZQ==} - '@tsparticles/updater-rotate@3.4.0': - resolution: {integrity: sha512-BKmzN8YLSUPe6OngmhmjPCBJ2RpBi88nfoNJekZnVJpbRses1pV632EaOIAEVT1xsUrwVhvsXYa9Sv5iZxfIRg==} + '@types/mdast@4.0.4': + resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} - '@tsparticles/updater-size@3.4.0': - resolution: {integrity: sha512-3z7INo2E7HR+ps8V490mOiLcCaFmUJFgObXBO3lF6uZ1xe6SfvVsX2r1HpQLwIpq7Ph2ZqQ4tj8tBPyKtada7g==} + '@types/ms@0.7.34': + resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} - '@tsparticles/updater-stroke-color@3.4.0': - resolution: {integrity: sha512-5pe/777vPZgzlNBkh8GQ3fjT6273wcwlBeq4UkDA/q6bI867d8W+Fi8yUsqfdiS6B5tKSvVsI8rFrfwjEvW0pg==} + '@types/nlcst@2.0.3': + resolution: {integrity: sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA==} - '@types/estree@0.0.46': - resolution: {integrity: sha512-laIjwTQaD+5DukBZaygQ79K1Z0jb1bPEMRrkXSLjtCcZm+abyp5YbrqpSLzD42FwWW6gK/aS4NYpJ804nG2brg==} + '@types/node@22.5.0': + resolution: {integrity: sha512-DkFrJOe+rfdHTqqMg0bSNlGlQ85hSoh2TPzZyhHsXnMtligRWpxUySiyw8FY14ITt24HVCiQPWxS3KO/QlGmWg==} - '@types/estree@1.0.5': - resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + '@types/node@22.8.0': + resolution: {integrity: sha512-84rafSBHC/z1i1E3p0cJwKA+CfYDNSXX9WSZBRopjIzLET8oNt6ht2tei4C7izwDeEiLLfdeSVBv1egOH916hg==} - '@types/glob@7.2.0': - resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} + '@types/sequelize@4.28.20': + resolution: {integrity: sha512-XaGOKRhdizC87hDgQ0u3btxzbejlF+t6Hhvkek1HyphqCI4y7zVBIVAGmuc4cWJqGpxusZ1RiBToHHnNK/Edlw==} - '@types/json-schema@7.0.15': - resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + '@types/tar@6.1.13': + resolution: {integrity: sha512-IznnlmU5f4WcGTh2ltRu/Ijpmk8wiWXfF0VA4s+HPjHZgvFggk1YaIkbo5krX/zUCzWF8N/l4+W/LNxnvAJ8nw==} - '@types/minimatch@5.1.2': - resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} + '@types/tinycolor2@1.4.6': + resolution: {integrity: sha512-iEN8J0BoMnsWBqjVbWH/c0G0Hh7O21lpR2/+PrvAVgWdzL7eexIFm4JN/Wn10PTcmNdtS6U67r499mlWMXOxNw==} - '@types/node@20.14.9': - resolution: {integrity: sha512-06OCtnTXtWOZBJlRApleWndH4JsRVs1pDCc8dLSQp+7PpUpX3ePdHyeNSFTeSe7FtKyQkrlPvHwJOW3SLd8Oyg==} + '@types/unist@3.0.3': + resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} - '@types/resolve@0.0.8': - resolution: {integrity: sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ==} + '@types/validator@13.12.2': + resolution: {integrity: sha512-6SlHBzUW8Jhf3liqrGGXyTJSIFe4nqlJ5A5KaMZ2l/vbM3Wh3KSybots/wfWVzNLK4D1NZluDlSQIbIEPx6oyA==} - '@types/semver@7.5.8': - resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} + '@types/yauzl@2.10.3': + resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} - '@types/uuid@9.0.8': - resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==} + '@ungap/structured-clone@1.2.0': + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - '@typescript-eslint/experimental-utils@5.62.0': - resolution: {integrity: sha512-RTXpeB3eMkpoclG3ZHft6vG/Z30azNHuqY6wKPBHlVMZFuEvrtlEDe8gMqDb+SO+9hjC/pLekeSCryf9vMZlCw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@volar/kit@2.4.7': + resolution: {integrity: sha512-x8hr9YwHVl2qV7oNEBgcEe4EE6bP5EzD+cFgccUp0NLU6tVALBNcVA5b1LATDW/36JGRg3VFHDmUbJ1q++JzMg==} peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' - '@typescript-eslint/scope-manager@5.62.0': - resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@volar/language-core@2.4.7': + resolution: {integrity: sha512-G/EB0vkArVB04F8DVBf30AlRK/QAOx63CzsuKKuda2ZIJamQlv4t6gEJrFVmYF560kbslFtaAJcmn8cyg7QmLA==} - '@typescript-eslint/types@5.62.0': - resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@volar/language-server@2.4.7': + resolution: {integrity: sha512-KsHkz9CrdcH1jPF8dl5GurqZauz4gKr9hiemdBBCi8NC7zRACx2r+7td1KQmUYzv1GmUmWgZcfwHwA0yIonacw==} - '@typescript-eslint/typescript-estree@5.62.0': - resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + '@volar/language-service@2.4.7': + resolution: {integrity: sha512-fAn/Vtw2lvfPPzdr6bc1X5C8lVI+E84aG9V6d3QUha6NrnKhlOfA5vz9nGIOosyjUKjD3JwakVZk3002R1VJFw==} - '@typescript-eslint/utils@5.62.0': - resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + '@volar/source-map@2.4.7': + resolution: {integrity: sha512-c+7IJrD4mht1s8FLlCf6dAUC1aTUY9leKeLosfUiuMxavcG/sY3IPBiD1rdLL5qrhzYVmUWRGxhWvJeyYa/bsQ==} - '@typescript-eslint/visitor-keys@5.62.0': - resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@volar/typescript@2.4.7': + resolution: {integrity: sha512-sp3mFLmMtXY47S8GrMwFnwjGiW7aVtCLMAwnePRJA4P7CfSkrRj2DjoSxl//0pt+KR7oGG/48T2q413b8TvPbg==} - '@ungap/structured-clone@1.2.0': - resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + '@vscode/emmet-helper@2.9.3': + resolution: {integrity: sha512-rB39LHWWPQYYlYfpv9qCoZOVioPCftKXXqrsyqN1mTWZM6dTnONT63Db+03vgrBbHzJN45IrgS/AGxw9iiqfEw==} + + '@vscode/l10n@0.0.18': + resolution: {integrity: sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ==} abbrev@1.1.1: resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} @@ -1140,20 +1167,11 @@ packages: abstract-logging@2.0.1: resolution: {integrity: sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA==} - accepts@1.3.8: - resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} - engines: {node: '>= 0.6'} - - acorn-hammerhead@0.6.1: - resolution: {integrity: sha512-ZWG/nXPvFiveXhJq/PxuS+4LI1BqtEOviGXWjlTvI+64kwzaddYNaE0UzLorTX7kyxrFtxjJ4w1LmKN5yEzOCg==} + acorn-hammerhead@0.6.2: + resolution: {integrity: sha512-JZklfs1VVyjA1hf1y5qSzKSmK3K1UUUI7fQTuM/Zhv3rz4kFhdx4QwVnmU6tBEC8g/Ov6B+opfNFPeSZrlQfqA==} - acorn-jsx@5.3.2: - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - - acorn@8.12.0: - resolution: {integrity: sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==} + acorn@8.13.0: + resolution: {integrity: sha512-8zSiw54Oxrdym50NlZ9sUusyO1Z1ZchgRLWRaK6c86XJFClyCgFKetdowBg5bKxyp/u+CDBJG4Mpp0m3HLZl9w==} engines: {node: '>=0.4.0'} hasBin: true @@ -1169,14 +1187,6 @@ packages: resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} engines: {node: '>=8'} - ajv-formats@2.1.1: - resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} - peerDependencies: - ajv: ^8.0.0 - peerDependenciesMeta: - ajv: - optional: true - ajv-formats@3.0.1: resolution: {integrity: sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==} peerDependencies: @@ -1185,28 +1195,20 @@ packages: ajv: optional: true - ajv@6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + ajv@8.17.1: + resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} - ajv@8.16.0: - resolution: {integrity: sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==} - - amdefine@1.0.1: - resolution: {integrity: sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==} - engines: {node: '>=0.4.2'} + ansi-align@3.0.1: + resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} - ansi-regex@6.0.1: - resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + ansi-regex@6.1.0: + resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} engines: {node: '>=12'} - ansi-styles@3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} - ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} @@ -1233,99 +1235,67 @@ packages: arg@5.0.2: resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - array-buffer-byte-length@1.0.1: - resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} + aria-query@5.3.2: + resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} engines: {node: '>= 0.4'} - array-includes@3.1.8: - resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} - engines: {node: '>= 0.4'} - - array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} - - array.prototype.findlast@1.2.5: - resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} - engines: {node: '>= 0.4'} - - array.prototype.flat@1.3.2: - resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} - engines: {node: '>= 0.4'} - - array.prototype.flatmap@1.3.2: - resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} - engines: {node: '>= 0.4'} - - array.prototype.toreversed@1.1.2: - resolution: {integrity: sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==} - - array.prototype.tosorted@1.1.4: - resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==} - engines: {node: '>= 0.4'} - - arraybuffer.prototype.slice@1.0.3: - resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} - engines: {node: '>= 0.4'} - - asar@2.1.0: - resolution: {integrity: sha512-d2Ovma+bfqNpvBzY/KU8oPY67ZworixTpkjSx0PCXnQi67c2cXmssaTxpFDUM0ttopXoGx/KRxNg/GDThYbXQA==} - engines: {node: '>=8.0'} - deprecated: Please use @electron/asar moving forward. There is no API change, just a package name change - hasBin: true + array-iterate@2.0.1: + resolution: {integrity: sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==} - ast-metadata-inferer@0.8.0: - resolution: {integrity: sha512-jOMKcHht9LxYIEQu+RVd22vtgrPaVCtDRQ/16IGmurdzxvYbDd5ynxjnyrzLnieG96eTcAyaoj/wN/4/1FyyeA==} + astro-icon@1.1.1: + resolution: {integrity: sha512-HKBesWk2Faw/0+klLX+epQVqdTfSzZz/9+5vxXUjTJaN/HnpDf608gRPgHh7ZtwBPNJMEFoU5GLegxoDcT56OQ==} - astring@1.8.6: - resolution: {integrity: sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==} + astro@4.16.7: + resolution: {integrity: sha512-nON+8MUEkWTFwXbS4zsQIq4t0Fs42eulM4x236AL+qNnWfqNAOOqAnFxO1dxfJ1q+XopIBbbT9Mtev+0zH47PQ==} + engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'} hasBin: true async-exit-hook@2.0.1: resolution: {integrity: sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==} engines: {node: '>=0.12.0'} - atob@2.1.2: - resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==} - engines: {node: '>= 4.5.0'} - hasBin: true + asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} atomic-sleep@1.0.0: resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==} engines: {node: '>=8.0.0'} - autoprefixer@10.4.19: - resolution: {integrity: sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==} + autoprefixer@10.4.20: + resolution: {integrity: sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==} engines: {node: ^10 || ^12 || >=14} hasBin: true peerDependencies: postcss: ^8.1.0 - available-typed-arrays@1.0.7: - resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} - engines: {node: '>= 0.4'} + avvio@9.1.0: + resolution: {integrity: sha512-fYASnYi600CsH/j9EQov7lECAniYiBFiiAtBNuZYLA2leLe9qOvZzqYHFjtIj6gD2VMoMLP14834LFWvr4IfDw==} - avvio@8.3.2: - resolution: {integrity: sha512-st8e519GWHa/azv8S87mcJvZs4WsgTBjOw/Ih1CP6u+8SZvcOeAYNG6JbsIrAUUJJ7JfmrnOkR8ipDS+u9SIRQ==} + axios@1.7.7: + resolution: {integrity: sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==} - babel-plugin-transform-hook-names@1.0.2: - resolution: {integrity: sha512-5gafyjyyBTTdX/tQQ0hRgu4AhNHG/hqWi0ZZmg2xvs2FgRkJXzDNKBZCyoYqgFkovfDrgM8OoKg8karoUvWeCw==} - peerDependencies: - '@babel/core': ^7.12.10 + axobject-query@4.1.0: + resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} + engines: {node: '>= 0.4'} + + bail@2.0.2: + resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + base-64@1.0.0: + resolution: {integrity: sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==} + base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - big-integer@1.6.52: - resolution: {integrity: sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==} - engines: {node: '>=0.6'} - binary-extensions@2.3.0: resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} @@ -1336,18 +1306,15 @@ packages: bl@4.1.0: resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} - bluebird@3.7.2: - resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} - boolbase@1.0.0: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} bowser@1.6.0: resolution: {integrity: sha512-Fk23J0+vRnI2eKDEDoUZXWtbMjijr098lKhuj4DKAfMKMCRVfJOuxXlbpxy0sTgbZ/Nr2N8MexmOir+GGI/ZMA==} - bplist-parser@0.2.0: - resolution: {integrity: sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==} - engines: {node: '>= 5.10.0'} + boxen@8.0.1: + resolution: {integrity: sha512-F3PH5k5juxom4xktynS7MoFY+NUWH5LC4CnH11YB8NPew+HLpmBLCybSAEyb2F+4pRXhuhWqFesoQd6DAyc2hw==} + engines: {node: '>=18'} brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} @@ -1359,11 +1326,14 @@ packages: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - browserslist@4.23.1: - resolution: {integrity: sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==} + browserslist@4.24.2: + resolution: {integrity: sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true + buffer-crc32@0.2.13: + resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} + buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} @@ -1377,43 +1347,29 @@ packages: resolution: {integrity: sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw==} engines: {node: '>=6.14.2'} - builtin-modules@3.3.0: - resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} - engines: {node: '>=6'} - - bundle-name@3.0.0: - resolution: {integrity: sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==} - engines: {node: '>=12'} - - bytes@3.0.0: - resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} - engines: {node: '>= 0.8'} - cacache@15.3.0: resolution: {integrity: sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==} engines: {node: '>= 10'} - call-bind@1.0.7: - resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} - engines: {node: '>= 0.4'} - callsite@1.0.0: resolution: {integrity: sha512-0vdNRFXn5q+dtOqjfFtmtlI9N2eVZ7LMyEV2iKC5mEEFvSg/69Ml6b/WU2qF8W1nLRa0wiSrDT3Y5jOHZCwKPQ==} - callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} + camel-case@4.1.2: + resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} camelcase-css@2.0.1: resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} engines: {node: '>= 6'} - caniuse-lite@1.0.30001639: - resolution: {integrity: sha512-eFHflNTBIlFwP2AIKaYuBQN/apnUoKNhBdza8ZnW/h2di4LCZ4xFqYlxUxo+LQ76KFI1PGcC1QDxMbxTZpSCAg==} + camelcase@8.0.0: + resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==} + engines: {node: '>=16'} - chalk@2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} + caniuse-lite@1.0.30001669: + resolution: {integrity: sha512-DlWzFDJqstqtIVx1zeSpIMLjunf5SmwOw0N2Ck/QSQdS8PLS4+9HrLaYei4w8BIAL7IB/UEDu889d8vhCTPA0w==} + + ccount@2.0.1: + resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} @@ -1423,6 +1379,22 @@ packages: resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + character-entities-html4@2.1.0: + resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} + + character-entities-legacy@3.0.0: + resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} + + character-entities@2.0.2: + resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} + + cheerio-select@2.1.0: + resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==} + + cheerio@1.0.0: + resolution: {integrity: sha512-quS9HgjQpdaXOvsZz82Oz7uxtXiy6UIsIQcpBj7HRw2M63Skasm9qlDocAM7jNuaxdhpPU7c4kJN+gA5MCu4ww==} + engines: {node: '>=18.17'} + chokidar@3.6.0: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} @@ -1434,34 +1406,45 @@ packages: resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} engines: {node: '>=10'} - chromium-pickle-js@0.2.0: - resolution: {integrity: sha512-1R5Fho+jBq0DDydt+/vHWj5KJNJCKdARKOCwZUen84I5BreWoLqRLANH1U87eJy1tiASPtMnGqJJq0ZsLoRPOw==} + ci-info@4.0.0: + resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==} + engines: {node: '>=8'} - classnames@2.5.1: - resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==} + clean-css@5.3.3: + resolution: {integrity: sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==} + engines: {node: '>= 10.0'} clean-stack@2.2.0: resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} engines: {node: '>=6'} + cli-boxes@3.0.0: + resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} + engines: {node: '>=10'} + + cli-cursor@5.0.0: + resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==} + engines: {node: '>=18'} + + cli-spinners@2.9.2: + resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} + engines: {node: '>=6'} + cliui@8.0.1: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} - clsx@1.2.1: - resolution: {integrity: sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==} + clsx@2.1.1: + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} engines: {node: '>=6'} - color-convert@1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + code-red@1.0.4: + resolution: {integrity: sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==} color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} - color-name@1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} @@ -1476,10 +1459,21 @@ packages: resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} engines: {node: '>=12.5.0'} + combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + + comma-separated-tokens@2.0.3: + resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} + commander@10.0.1: resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} engines: {node: '>=14'} + commander@12.1.0: + resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} + engines: {node: '>=18'} + commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} @@ -1487,16 +1481,16 @@ packages: resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} engines: {node: '>= 6'} - commondir@1.0.1: - resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} + commander@5.1.0: + resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==} + engines: {node: '>= 6'} - compressible@2.0.18: - resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} - engines: {node: '>= 0.6'} + commander@7.2.0: + resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} + engines: {node: '>= 10'} - compression@1.7.4: - resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==} - engines: {node: '>= 0.8.0'} + common-ancestor-path@1.0.1: + resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==} concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} @@ -1506,6 +1500,9 @@ packages: engines: {node: ^14.13.0 || >=16.0.0} hasBin: true + confbox@0.1.8: + resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} + console-control-strings@1.1.0: resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} @@ -1516,42 +1513,21 @@ packages: convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - cookie-parser@1.4.6: - resolution: {integrity: sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA==} - engines: {node: '>= 0.8.0'} - - cookie-signature@1.0.6: - resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} - - cookie-signature@1.2.1: - resolution: {integrity: sha512-78KWk9T26NhzXtuL26cIJ8/qNHANyJ/ZYrmEXFzUmhZdjpBv+DlWlOANRTGBt48YcyslsLrj0bMLFTmXvLRCOw==} - engines: {node: '>=6.6.0'} - - cookie@0.4.1: - resolution: {integrity: sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==} + cookie@0.7.2: + resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} engines: {node: '>= 0.6'} - cookie@0.5.0: - resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} - engines: {node: '>= 0.6'} - - cookie@0.6.0: - resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} - engines: {node: '>= 0.6'} + cookie@1.0.1: + resolution: {integrity: sha512-Xd8lFX4LM9QEEwxQpF9J9NTUh8pmdJO0cyRJhFiDoLTk2eH8FXlRv2IFGYVadZpqI3j8fhNrSdKCeYPxiAhLXw==} + engines: {node: '>=18'} core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - cross-spawn@5.1.0: - resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} - cross-spawn@7.0.3: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} - crypto-js@4.2.0: - resolution: {integrity: sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==} - crypto-md5@1.0.0: resolution: {integrity: sha512-65Mtei8+EkSIK+5Ie4gpWXoJ/5bgpqPXFknHHXAyhDqKsEAAzUslGd8mOeawbfcuQ8fADNKcF4xQA3fqlZJ8Ig==} engines: {iojs: '>=1.0.0', node: '>=0.5.2'} @@ -1559,32 +1535,26 @@ packages: css-select@5.1.0: resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} + css-tree@2.2.1: + resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + + css-tree@2.3.1: + resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + css-what@6.1.0: resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} engines: {node: '>= 6'} - css@2.2.3: - resolution: {integrity: sha512-0W171WccAjQGGTKLhw4m2nnl0zPHUlTO/I8td4XzJgIB8Hg3ZZx71qT4G4eX8OVsSiaAKiUMy73E3nsbPlg2DQ==} - cssesc@3.0.0: resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} engines: {node: '>=4'} hasBin: true - cuint@0.2.2: - resolution: {integrity: sha512-d4ZVpCW31eWwCMe1YT3ur7mUDnTXbgwyzaL320DrcRT45rfjYxkt5QWLrmOJ+/UEAI2+fQgKe/fCjR8l4TpRgw==} - - data-view-buffer@1.0.1: - resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} - engines: {node: '>= 0.4'} - - data-view-byte-length@1.0.1: - resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} - engines: {node: '>= 0.4'} - - data-view-byte-offset@1.0.0: - resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} - engines: {node: '>= 0.4'} + csso@5.0.5: + resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} date-fns@2.30.0: resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} @@ -1607,8 +1577,8 @@ packages: supports-color: optional: true - debug@4.3.5: - resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} + debug@4.3.7: + resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -1616,40 +1586,35 @@ packages: supports-color: optional: true - decode-uri-component@0.2.2: - resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} - engines: {node: '>=0.10'} + decode-named-character-reference@1.0.2: + resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} decompress-response@6.0.0: resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} engines: {node: '>=10'} + dedent-js@1.0.1: + resolution: {integrity: sha512-OUepMozQULMLUmhxS95Vudo0jb0UchLimi3+pQ2plj61Fcy8axbP9hbiD4Sz6DPqn6XG3kfmziVfQ1rSys5AJQ==} + deep-extend@0.6.0: resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} engines: {node: '>=4.0.0'} - deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + deepmerge-ts@7.1.0: + resolution: {integrity: sha512-q6bNsfNBtgr8ZOQqmZbl94MmYWm+QcDNIkqCxVWiw1vKvf+y/N2dZQKdnDXn4c5Ygt/y63tDof6OCN+2YwWVEg==} + engines: {node: '>=16.0.0'} - default-browser-id@3.0.0: - resolution: {integrity: sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==} - engines: {node: '>=12'} - - default-browser@4.0.0: - resolution: {integrity: sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==} - engines: {node: '>=14.16'} - - define-data-property@1.1.4: - resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} - engines: {node: '>= 0.4'} + deepmerge-ts@7.1.3: + resolution: {integrity: sha512-qCSH6I0INPxd9Y1VtAiLpnYvz5O//6rCfJXKk0z66Up9/VOSr+1yS8XSKA5IWRxjocFGlzPyaZYe+jxq7OOLtQ==} + engines: {node: '>=16.0.0'} - define-lazy-prop@3.0.0: - resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} - engines: {node: '>=12'} + deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} - define-properties@1.2.1: - resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} - engines: {node: '>= 0.4'} + delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} delegates@1.0.0: resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} @@ -1658,28 +1623,46 @@ packages: resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} engines: {node: '>= 0.8'} + dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + + des.js@1.1.0: + resolution: {integrity: sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==} + + destroy@1.2.0: + resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + + detect-libc@1.0.3: + resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} + engines: {node: '>=0.10'} + hasBin: true + detect-libc@2.0.3: resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} engines: {node: '>=8'} + deterministic-object-hash@2.0.2: + resolution: {integrity: sha512-KxektNH63SrbfUyDiwXqRb1rLwKt33AmMv+5Nhsw1kqZ13SJBRTgZHtGbE+hH3a1mVW1cz+4pqSWVPAtLVXTzQ==} + engines: {node: '>=18'} + + devalue@5.1.1: + resolution: {integrity: sha512-maua5KUiapvEwiEAe+XnlZ3Rh0GD+qI1J/nb9vrJc3muPXvcF/8gXYTWF76+5DAqHyDUtOIImEuo0YKE9mshVw==} + + devlop@1.1.0: + resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + didyoumean@1.2.2: resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} - dir-glob@3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} - engines: {node: '>=8'} + diff@5.2.0: + resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} + engines: {node: '>=0.3.1'} dlv@1.1.3: resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} - doctrine@2.1.0: - resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} - engines: {node: '>=0.10.0'} - - doctrine@3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} - dom-serializer@2.0.0: resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} @@ -1693,9 +1676,15 @@ packages: domutils@3.1.0: resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} - dotenv@16.4.5: - resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} - engines: {node: '>=12'} + dot-case@3.0.4: + resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} + + dottie@2.0.6: + resolution: {integrity: sha512-iGCHkfUc5kFekGiqhe8B/mdaurD+lakO9txNnTvKtA6PISrw86LgqHvRzWYPyoE2Ph5aMIrCw9/uko6XHTKCwA==} + + dset@3.1.4: + resolution: {integrity: sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA==} + engines: {node: '>=4'} duplexify@3.7.1: resolution: {integrity: sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==} @@ -1706,8 +1695,17 @@ packages: eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - electron-to-chromium@1.4.815: - resolution: {integrity: sha512-OvpTT2ItpOXJL7IGcYakRjHCt8L5GrrN/wHCQsRB4PQa1X9fe+X9oen245mIId7s14xvArCGSTIq644yPUKKLg==} + ee-first@1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + + electron-to-chromium@1.5.46: + resolution: {integrity: sha512-1XDk0Z8/YRgB2t5GeEg8DPK592DLjVmd/5uwAu6c/S4Z0CUwV/RwYqe5GWxQqcoN3bJ5U7hYMiMRPZzpCzSBhQ==} + + emmet@2.4.11: + resolution: {integrity: sha512-23QPJB3moh/U9sT4rQzGgeyyGIrcM+GH5uVYg2C6wZIxAIJq7Ng3QLT79tl8FUwDXhyq9SusfknOrofAKqvgyQ==} + + emoji-regex@10.4.0: + resolution: {integrity: sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==} emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -1715,6 +1713,13 @@ packages: emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + encodeurl@2.0.0: + resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} + engines: {node: '>= 0.8'} + + encoding-sniffer@0.2.0: + resolution: {integrity: sha512-ju7Wq1kg04I3HtiYIOrUrdfdDvkyO9s5XM8QAj/bN61Yo/Vb4vgJxy5vi4Yxk01gWHbrofpPtpxM8bKger9jhg==} + encoding@0.1.13: resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} @@ -1732,52 +1737,21 @@ packages: err-code@2.0.3: resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} - es-abstract@1.23.3: - resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==} - engines: {node: '>= 0.4'} - - es-define-property@1.0.0: - resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} - engines: {node: '>= 0.4'} - - es-errors@1.3.0: - resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} - engines: {node: '>= 0.4'} - - es-iterator-helpers@1.0.19: - resolution: {integrity: sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==} - engines: {node: '>= 0.4'} - - es-object-atoms@1.0.0: - resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} - engines: {node: '>= 0.4'} - - es-set-tostringtag@2.0.3: - resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} - engines: {node: '>= 0.4'} - - es-shim-unscopables@1.0.2: - resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} - - es-to-primitive@1.2.1: - resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} - engines: {node: '>= 0.4'} - - esbuild-plugin-umd-wrapper@2.0.0: - resolution: {integrity: sha512-pcu2/lcm29S85VCnSJuValrQ8FqeFJs5VWEwfp7vBRsOHjxZypcxgwXjxDIxDRo17uOcENZIbgz2szjln029eQ==} - - esbuild@0.19.12: - resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} - engines: {node: '>=12'} - hasBin: true + es-module-lexer@1.5.4: + resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} esbuild@0.21.5: resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} engines: {node: '>=12'} hasBin: true - escalade@3.1.2: - resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} + esbuild@0.23.1: + resolution: {integrity: sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==} + engines: {node: '>=18'} + hasBin: true + + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} escape-html@1.0.3: @@ -1787,130 +1761,54 @@ packages: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} - escape-string-regexp@4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} - - eslint-config-preact@1.4.0: - resolution: {integrity: sha512-nAQ8ndJ3y5qPNAcxnztaVmCnCw3oBadKbx1CFt2ste0uQTrHwxiiHczouZI249oWHSaYzji/pT6/s6txczakvQ==} - peerDependencies: - eslint: 6.x || 7.x || 8.x - - eslint-plugin-compat@4.2.0: - resolution: {integrity: sha512-RDKSYD0maWy5r7zb5cWQS+uSPc26mgOzdORJ8hxILmWM7S/Ncwky7BcAtXVY5iRbKjBdHsWU8Yg7hfoZjtkv7w==} - engines: {node: '>=14.x'} - peerDependencies: - eslint: ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 - - eslint-plugin-jest@25.7.0: - resolution: {integrity: sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - peerDependencies: - '@typescript-eslint/eslint-plugin': ^4.0.0 || ^5.0.0 - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - jest: '*' - peerDependenciesMeta: - '@typescript-eslint/eslint-plugin': - optional: true - jest: - optional: true + escape-string-regexp@5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} - eslint-plugin-react-hooks@4.6.2: - resolution: {integrity: sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==} - engines: {node: '>=10'} - peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + esotope-hammerhead@0.6.8: + resolution: {integrity: sha512-2Zhg0c6NfrNA4QT5s4+QG5WJQtq3Se7GonNwtNwfr7sVIo/7L8rirPfh9yyloEmDA7R0yPgD10teFxhf2vWyIw==} - eslint-plugin-react@7.34.3: - resolution: {integrity: sha512-aoW4MV891jkUulwDApQbPYTVZmeuSyFrudpbTAQuj5Fv8VL+o6df2xIGpw8B0hPjAaih1/Fb0om9grCdyFYemA==} + esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} engines: {node: '>=4'} - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 - - eslint-scope@5.1.1: - resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} - engines: {node: '>=8.0.0'} - - eslint-scope@7.2.2: - resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - eslint-visitor-keys@2.1.0: - resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} - engines: {node: '>=10'} - - eslint-visitor-keys@3.4.3: - resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - eslint@8.57.0: - resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true - esotope-hammerhead@0.6.1: - resolution: {integrity: sha512-RG4orJ1xy+zD6fTEKuDYaqCuL1ymYa1/Bp+j9c7b/u7B8yI6+Qgg8o4lT1EDAOG9eBzBtwtTWR0chqt3hr0hZw==} - - espree@9.6.1: - resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - esquery@1.5.0: - resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} - engines: {node: '>=0.10'} - - esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} - - estraverse@4.3.0: - resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} - engines: {node: '>=4.0'} - - estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} - - estree-walker@0.6.1: - resolution: {integrity: sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==} - estree-walker@2.0.2: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} - esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} + estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + + etag@1.8.1: + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} + engines: {node: '>= 0.6'} event-target-shim@5.0.1: resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} engines: {node: '>=6'} + eventemitter3@5.0.1: + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + events@3.3.0: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} engines: {node: '>=0.8.x'} - execa@0.6.3: - resolution: {integrity: sha512-/teX3MDLFBdYUhRk8WCBYboIMUmqeizu0m9Z3YF3JWrbEh/SlZg00vLJSaAGWw3wrZ9tE0buNw79eaAPYhUuvg==} - engines: {node: '>=4'} - - execa@4.1.0: - resolution: {integrity: sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==} - engines: {node: '>=10'} - - execa@5.1.1: - resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} - engines: {node: '>=10'} - - execa@7.2.0: - resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==} - engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} - expand-template@2.0.3: resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} engines: {node: '>=6'} - fast-content-type-parse@1.1.0: - resolution: {integrity: sha512-fBHHqSTFLVnR61C+gltJuE5GkVQMV0S2nqUO8TJ+5Z3qAKG8vAx4FKai1s5jq/inV1+sREynIWSuQ6HgoSXpDQ==} + extend-shallow@2.0.1: + resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} + engines: {node: '>=0.10.0'} + + extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + + extract-zip@2.0.1: + resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==} + engines: {node: '>= 10.17.0'} + hasBin: true fast-decode-uri-component@1.0.1: resolution: {integrity: sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==} @@ -1922,14 +1820,8 @@ packages: resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} engines: {node: '>=8.6.0'} - fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - - fast-json-stringify@5.16.1: - resolution: {integrity: sha512-KAdnLvy1yu/XrRtP+LJnxbBGrhN+xXu+gt3EUvZhYGKCr3lFHq/7UFJHHFgmJKoqlh6B40bZLEv7w46B0mqn1g==} - - fast-levenshtein@2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + fast-json-stringify@6.0.0: + resolution: {integrity: sha512-FGMKZwniMTgZh7zQp9b6XnBVxUmKVahQLQeRQHqwYmPDqDhcEKZ3BaQsxelFFI5PY7nN71OEeiL47/zUWcYe1A==} fast-querystring@1.1.2: resolution: {integrity: sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg==} @@ -1941,18 +1833,20 @@ packages: fast-uri@2.4.0: resolution: {integrity: sha512-ypuAmmMKInk5q7XcepxlnUWDLWv4GFtaJqAzWKqn62IpQ3pejtr5dTVbt3vwqVaMKmkNR55sTT+CqUKIaT21BA==} - fastify-plugin@4.5.1: - resolution: {integrity: sha512-stRHYGeuqpEZTL1Ef0Ovr2ltazUT9g844X5z/zEBFLG8RYlpDiOCIG+ATvYEp+/zmc7sN29mcIMp8gvYplYPIQ==} + fast-uri@3.0.3: + resolution: {integrity: sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==} - fastify@4.28.1: - resolution: {integrity: sha512-kFWUtpNr4i7t5vY2EJPCN2KgMVpuqfU4NjnJNCgiNB900oiDeYqaNDRcAfeBbOF5hGixixxcKnOU4KN9z6QncQ==} + fastify-plugin@5.0.1: + resolution: {integrity: sha512-HCxs+YnRaWzCl+cWRYFnHmeRFyR5GVnJTAaCJQiYzQSDwK9MgJdyAsuL3nh0EWRCYMgQ5MeziymvmAhUHYHDUQ==} + + fastify@5.0.0: + resolution: {integrity: sha512-Qe4dU+zGOzg7vXjw4EvcuyIbNnMwTmcuOhlOrOJsgwzvjEZmsM/IeHulgJk+r46STjdJS/ZJbxO8N70ODXDMEQ==} fastq@1.17.1: resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} - file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} + fd-slicer@1.1.0: + resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} file-uri-to-path@1.0.0: resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} @@ -1961,36 +1855,42 @@ packages: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} - find-cache-dir@3.3.2: - resolution: {integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==} - engines: {node: '>=8'} - - find-my-way@8.2.0: - resolution: {integrity: sha512-HdWXgFYc6b1BJcOBDBwjqWuHJj1WYiqrxSh25qtU4DabpMFdj/gSunNBQb83t+8Zt67D7CXEzJWTkxaShMTMOA==} + find-my-way@9.1.0: + resolution: {integrity: sha512-Y5jIsuYR4BwWDYYQ2A/RWWE6gD8a0FMgtU+HOq1WKku+Cwdz8M1v8wcAmRXXM1/iqtoqg06v+LjAxMYbCjViMw==} engines: {node: '>=14'} + find-up-simple@1.0.0: + resolution: {integrity: sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw==} + engines: {node: '>=18'} + find-up@4.1.0: resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} engines: {node: '>=8'} - find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} - engines: {node: '>=10'} - - flat-cache@3.2.0: - resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} - engines: {node: ^10.12.0 || >=12.0.0} + find-yarn-workspace-root2@1.2.16: + resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==} - flatted@3.3.1: - resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} + flattie@1.1.1: + resolution: {integrity: sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ==} + engines: {node: '>=8'} - for-each@0.3.3: - resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + follow-redirects@1.15.9: + resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true - foreground-child@3.2.1: - resolution: {integrity: sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==} + foreground-child@3.3.0: + resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} engines: {node: '>=14'} + form-data@4.0.1: + resolution: {integrity: sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==} + engines: {node: '>= 6'} + forwarded@0.2.0: resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} engines: {node: '>= 0.6'} @@ -1998,27 +1898,13 @@ packages: fraction.js@4.3.7: resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} - framer-motion@10.18.0: - resolution: {integrity: sha512-oGlDh1Q1XqYPksuTD/usb0I70hq95OUzmL9+6Zd+Hs4XV0oaISBa/UUMSjYiq6m8EUF32132mOJ8xVZS+I0S6w==} - peerDependencies: - react: ^18.0.0 - react-dom: ^18.0.0 - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - - from2@2.3.0: - resolution: {integrity: sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==} + fresh@0.5.2: + resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} + engines: {node: '>= 0.6'} fs-constants@1.0.0: resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} - fs-extra@10.1.0: - resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} - engines: {node: '>=12'} - fs-extra@11.2.0: resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} engines: {node: '>=14.14'} @@ -2038,13 +1924,6 @@ packages: function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - function.prototype.name@1.1.6: - resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} - engines: {node: '>= 0.4'} - - functions-have-names@1.2.3: - resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} - gauge@4.0.4: resolution: {integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} @@ -2058,35 +1937,23 @@ packages: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} - get-intrinsic@1.2.4: - resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} - engines: {node: '>= 0.4'} - - get-stream@3.0.0: - resolution: {integrity: sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==} - engines: {node: '>=4'} + get-east-asian-width@1.3.0: + resolution: {integrity: sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==} + engines: {node: '>=18'} get-stream@5.2.0: resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} engines: {node: '>=8'} - get-stream@6.0.1: - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} - engines: {node: '>=10'} - - get-symbol-description@1.0.2: - resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} - engines: {node: '>= 0.4'} - - get-tsconfig@4.7.5: - resolution: {integrity: sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==} - - git-commit-info@2.0.2: - resolution: {integrity: sha512-QOgPqeTkFiIQr3TW/ekG2U6s1x7OkNdR+2XsapmXHiGImO5Qx2cilx2HmGPrihIqmV0WWCo5H+B938lQ/vAAfA==} + get-tsconfig@4.8.1: + resolution: {integrity: sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==} github-from-package@0.0.0: resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} + github-slugger@2.0.0: + resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} + glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -2095,71 +1962,38 @@ packages: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} engines: {node: '>=10.13.0'} - glob@10.4.2: - resolution: {integrity: sha512-GwMlUF6PkPo3Gk21UxkCohOv0PLcIXVtKyLlpEI28R/cO/4eNOdmLk3CMW1wROV/WR/EsZOWAfBbBOqYvs88/w==} - engines: {node: '>=16 || 14 >=14.18'} + glob@10.4.5: + resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + hasBin: true + + glob@11.0.0: + resolution: {integrity: sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==} + engines: {node: 20 || >=22} hasBin: true glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Glob versions prior to v9 are no longer supported - glob@8.1.0: - resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} - engines: {node: '>=12'} - deprecated: Glob versions prior to v9 are no longer supported - globals@11.12.0: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} - globals@13.24.0: - resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} - engines: {node: '>=8'} - - globalthis@1.0.4: - resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} - engines: {node: '>= 0.4'} - - globby@11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} - - gopd@1.0.1: - resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} - graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - graphemer@1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - - has-bigints@1.0.2: - resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + gradient-string@3.0.0: + resolution: {integrity: sha512-frdKI4Qi8Ihp4C6wZNB565de/THpIaw3DjP5ku87M+N9rNSGmPTjfkq61SdRXB7eCaL8O1hkKDvf6CDMtOzIAg==} + engines: {node: '>=14'} - has-flag@3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} + gray-matter@4.0.3: + resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} + engines: {node: '>=6.0'} has-flag@4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} - has-property-descriptors@1.0.2: - resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} - - has-proto@1.0.3: - resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} - engines: {node: '>= 0.4'} - - has-symbols@1.0.3: - resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} - engines: {node: '>= 0.4'} - - has-tostringtag@1.0.2: - resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} - engines: {node: '>= 0.4'} - has-unicode@2.0.1: resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} @@ -2167,49 +2001,83 @@ packages: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} - he@1.2.0: - resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} - hasBin: true + hast-util-from-html@2.0.3: + resolution: {integrity: sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==} - html-parse-stringify@3.0.1: - resolution: {integrity: sha512-KknJ50kTInJ7qIScF3jeaFRpMpE8/lfiTdzf/twXyPBLAGrLRTmkz3AdTnKeh40X8k9L2fdYwEp/42WGXIRGcg==} + hast-util-from-parse5@8.0.1: + resolution: {integrity: sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==} - http-cache-semantics@4.1.1: - resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} + hast-util-is-element@3.0.0: + resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==} - http-errors@2.0.0: - resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} - engines: {node: '>= 0.8'} + hast-util-parse-selector@4.0.0: + resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} - http-proxy-agent@4.0.1: - resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==} - engines: {node: '>= 6'} + hast-util-raw@9.0.4: + resolution: {integrity: sha512-LHE65TD2YiNsHD3YuXcKPHXPLuYh/gjp12mOfU8jxSrm1f/yJpsb0F/KKljS6U9LJoP0Ux+tCe8iJ2AsPzTdgA==} - https-proxy-agent@5.0.1: - resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + hast-util-to-html@9.0.3: + resolution: {integrity: sha512-M17uBDzMJ9RPCqLMO92gNNUDuBSq10a25SDBI08iCCxmorf4Yy6sYHK57n9WAbRAAaU+DuR4W6GN9K4DFZesYg==} + + hast-util-to-parse5@8.0.0: + resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==} + + hast-util-to-text@4.0.2: + resolution: {integrity: sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==} + + hast-util-whitespace@3.0.0: + resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} + + hastscript@8.0.0: + resolution: {integrity: sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==} + + helmet@7.2.0: + resolution: {integrity: sha512-ZRiwvN089JfMXokizgqEPXsl2Guk094yExfoDXR0cBYWxtBbaSww/w+vT4WEJsBW2iTUi1GgZ6swmoug3Oy4Xw==} + engines: {node: '>=16.0.0'} + + html-escaper@3.0.3: + resolution: {integrity: sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==} + + html-minifier-terser@7.2.0: + resolution: {integrity: sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA==} + engines: {node: ^14.13.1 || >=16.0.0} + hasBin: true + + html-void-elements@3.0.0: + resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} + + htmlparser2@9.1.0: + resolution: {integrity: sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==} + + http-cache-semantics@4.1.1: + resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} + + http-errors@2.0.0: + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} + engines: {node: '>= 0.8'} + + http-parser-js@0.5.8: + resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==} + + http-proxy-agent@4.0.1: + resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==} engines: {node: '>= 6'} - human-signals@1.1.1: - resolution: {integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==} - engines: {node: '>=8.12.0'} + httpntlm@1.8.13: + resolution: {integrity: sha512-2F2FDPiWT4rewPzNMg3uPhNkP3NExENlUGADRUDPQvuftuUTGW98nLZtGemCIW3G40VhWZYgkIDcQFAwZ3mf2Q==} + engines: {node: '>=10.4.0'} - human-signals@2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} - engines: {node: '>=10.17.0'} + httpreq@1.1.1: + resolution: {integrity: sha512-uhSZLPPD2VXXOSN8Cni3kIsoFHaU2pT/nySEU/fHr/ePbqHYr0jeiQRmUKLEirC09SFPsdMoA7LU7UXMd/w0Kw==} + engines: {node: '>= 6.15.1'} - human-signals@4.3.1: - resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==} - engines: {node: '>=14.18.0'} + https-proxy-agent@5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} humanize-ms@1.2.1: resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} - i18next-browser-languagedetector@7.2.1: - resolution: {integrity: sha512-h/pM34bcH6tbz8WgGXcmWauNpQupCGr25XPp9cZwZInR9XHSjIFDYp1SIok7zSPsTOMxdvuLyu86V+g2Kycnfw==} - - i18next@23.11.5: - resolution: {integrity: sha512-41pvpVbW9rhZPk5xjCX2TPJi2861LEig/YRhUkY+1FQ2IQPS0bKUDYnEqY8XPPbB48h1uIwLnP9iiEfuSl20CA==} - iconv-lite@0.5.1: resolution: {integrity: sha512-ONHr16SQvKZNSqjQT9gy5z24Jw+uqfO02/ngBSBoqChZ+W8qXX7GPRa1RoUnzGADw8K63R1BXUMzarCVQBpY8Q==} engines: {node: '>=0.10.0'} @@ -2218,22 +2086,11 @@ packages: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} engines: {node: '>=0.10.0'} - idb@7.1.1: - resolution: {integrity: sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==} - ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - ignore@5.3.1: - resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} - engines: {node: '>= 4'} - - immediate@3.0.6: - resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} - - import-fresh@3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} - engines: {node: '>=6'} + import-meta-resolve@4.1.0: + resolution: {integrity: sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==} imurmurhash@0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} @@ -2246,6 +2103,10 @@ packages: infer-owner@1.0.4: resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==} + inflection@1.13.4: + resolution: {integrity: sha512-6I/HUDeYFfuNCVS3td055BaXBwKYuzw7K3ExVMStBowKo9oOAMJIXIHvdyR3iboTCp1b+1i5DSkIZTcwIktuDw==} + engines: {'0': node >= 0.4.0} + inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 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. @@ -2256,92 +2117,45 @@ packages: ini@1.3.8: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - internal-slot@1.0.7: - resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} - engines: {node: '>= 0.4'} - - into-stream@6.0.0: - resolution: {integrity: sha512-XHbaOAvP+uFKUFsOgoNPRjLkwB+I22JFPFe5OjTkQ0nwgj6+pSjb4NmB6VMxaPshLiOf+zcpOCBQuLwC1KHhZA==} - engines: {node: '>=10'} - ip-address@9.0.5: resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==} engines: {node: '>= 12'} + ip@1.1.9: + resolution: {integrity: sha512-cyRxvOEpNHNtchU3Ln9KC/auJgup87llfQpQ+t5ghoC/UhL16SWzbueiCsdTnWmqAWl7LadfuwhlqmtOaqMHdQ==} + ipaddr.js@1.9.1: resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} engines: {node: '>= 0.10'} - ipaddr.js@2.2.0: - resolution: {integrity: sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==} - engines: {node: '>= 10'} - - is-array-buffer@3.0.4: - resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} - engines: {node: '>= 0.4'} - is-arrayish@0.3.2: resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} - is-async-function@2.0.0: - resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} - engines: {node: '>= 0.4'} - - is-bigint@1.0.4: - resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} - is-binary-path@2.1.0: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} engines: {node: '>=8'} - is-boolean-object@1.1.2: - resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} - engines: {node: '>= 0.4'} - - is-callable@1.2.7: - resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} - engines: {node: '>= 0.4'} - - is-core-module@2.14.0: - resolution: {integrity: sha512-a5dFJih5ZLYlRtDc0dZWP7RiKr6xIKzmn/oAYCDvdLThadVgyJwlaoQPmRtMSpz+rk0OGAgIu+TcM9HUF0fk1A==} + is-core-module@2.15.1: + resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==} engines: {node: '>= 0.4'} - is-data-view@1.0.1: - resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} - engines: {node: '>= 0.4'} - - is-date-object@1.0.5: - resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} - engines: {node: '>= 0.4'} - - is-docker@2.2.1: - resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} - engines: {node: '>=8'} - hasBin: true - is-docker@3.0.0: resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} hasBin: true + is-extendable@0.1.1: + resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} + engines: {node: '>=0.10.0'} + is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} - is-finalizationregistry@1.0.2: - resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} - is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} - is-generator-function@1.0.10: - resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} - engines: {node: '>= 0.4'} - - is-git-repository@1.1.1: - resolution: {integrity: sha512-hxLpJytJnIZ5Og5QsxSkzmb8Qx8rGau9bio1JN/QtXcGEFuSsQYau0IiqlsCwftsfVYjF1mOq6uLdmwNSspgpA==} - is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} @@ -2351,106 +2165,63 @@ packages: engines: {node: '>=14.16'} hasBin: true + is-interactive@2.0.0: + resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==} + engines: {node: '>=12'} + is-lambda@1.0.1: resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} - is-map@2.0.3: - resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} - engines: {node: '>= 0.4'} - - is-module@1.0.0: - resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} - - is-negative-zero@2.0.3: - resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} - engines: {node: '>= 0.4'} - - is-number-object@1.0.7: - resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} - engines: {node: '>= 0.4'} - is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} - is-path-inside@3.0.3: - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} - engines: {node: '>=8'} - - is-regex@1.1.4: - resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} - engines: {node: '>= 0.4'} - - is-set@2.0.3: - resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} - engines: {node: '>= 0.4'} - - is-shared-array-buffer@1.0.3: - resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} - engines: {node: '>= 0.4'} - - is-stream@1.1.0: - resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==} - engines: {node: '>=0.10.0'} - - is-stream@2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} - - is-stream@3.0.0: - resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - is-string@1.0.7: - resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} - engines: {node: '>= 0.4'} - - is-symbol@1.0.4: - resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} - engines: {node: '>= 0.4'} - - is-typed-array@1.1.13: - resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} - engines: {node: '>= 0.4'} + is-plain-obj@4.1.0: + resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} + engines: {node: '>=12'} - is-weakmap@2.0.2: - resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} - engines: {node: '>= 0.4'} + is-reference@3.0.2: + resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} - is-weakref@1.0.2: - resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + is-unicode-supported@1.3.0: + resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==} + engines: {node: '>=12'} - is-weakset@2.0.3: - resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==} - engines: {node: '>= 0.4'} + is-unicode-supported@2.1.0: + resolution: {integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==} + engines: {node: '>=18'} - is-wsl@2.2.0: - resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} - engines: {node: '>=8'} + is-wsl@3.1.0: + resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} + engines: {node: '>=16'} isarray@1.0.0: resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} - isarray@2.0.5: - resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} - isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - iterator.prototype@1.1.2: - resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} + jackspeak@3.4.3: + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} - jackspeak@3.4.0: - resolution: {integrity: sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==} - engines: {node: '>=14'} + jackspeak@4.0.2: + resolution: {integrity: sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw==} + engines: {node: 20 || >=22} jiti@1.21.6: resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} hasBin: true + js-md4@0.3.2: + resolution: {integrity: sha512-/GDnfQYsltsjRswQhN9fhv3EMw2sCpUdrdxyWDOUK7eyD++r3gRhzgiQgc/x4MAv2i1iuQ4lxO5mvqM3vj4bwA==} + js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true + js-yaml@4.1.0: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true @@ -2458,44 +2229,38 @@ packages: jsbn@1.1.0: resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==} - jsesc@2.5.2: - resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} - engines: {node: '>=4'} + jsesc@3.0.2: + resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} + engines: {node: '>=6'} hasBin: true - json-buffer@3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} - json-schema-ref-resolver@1.0.1: resolution: {integrity: sha512-EJAj1pgHc1hxF6vo2Z3s69fMjO1INq6eGHXZ8Z6wCQeldCuwxGK9Sxf4/cScGn3FZubCVUehfWtcDM/PLteCQw==} - json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - json-schema-traverse@1.0.0: resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} - json-stable-stringify-without-jsonify@1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - json5@2.2.3: resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} engines: {node: '>=6'} hasBin: true + jsonc-parser@2.3.1: + resolution: {integrity: sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg==} + + jsonc-parser@3.3.1: + resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==} + jsonfile@6.1.0: resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} - jsx-ast-utils@3.3.5: - resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} - engines: {node: '>=4.0'} - - keyv-lru-files@https://codeload.github.com/holy-unblocker/keyv-lru-files/tar.gz/dceb102630357eda76317f9005905bbc5e6521e7: - resolution: {tarball: https://codeload.github.com/holy-unblocker/keyv-lru-files/tar.gz/dceb102630357eda76317f9005905bbc5e6521e7} - version: 1.3.1 + kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} - keyv@4.5.4: - resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + kleur@3.0.3: + resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} + engines: {node: '>=6'} kleur@4.1.5: resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} @@ -2504,18 +2269,75 @@ packages: kolorist@1.8.0: resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} - levn@0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} - engines: {node: '>= 0.8.0'} + libcurl.js@0.6.17: + resolution: {integrity: sha512-hmbVn02mbZSN1ufhPF+lM+0n+FqjEjr9ONbzhYQrzDNTKlkPkls6hMf0AIIrp/1P+zyhOtkUbD5XgSnAIy4fBA==} + + light-my-request@6.2.0: + resolution: {integrity: sha512-8b6or3xBeDv8p7OHNVXjFmlrLHdK/+Anor0AYLg6P/zgF8DkNDGGwP5BNbOF0SYdkfPFKYH88ARvXfNakOeQqA==} + + lightningcss-darwin-arm64@1.27.0: + resolution: {integrity: sha512-Gl/lqIXY+d+ySmMbgDf0pgaWSqrWYxVHoc88q+Vhf2YNzZ8DwoRzGt5NZDVqqIW5ScpSnmmjcgXP87Dn2ylSSQ==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [darwin] + + lightningcss-darwin-x64@1.27.0: + resolution: {integrity: sha512-0+mZa54IlcNAoQS9E0+niovhyjjQWEMrwW0p2sSdLRhLDc8LMQ/b67z7+B5q4VmjYCMSfnFi3djAAQFIDuj/Tg==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [darwin] + + lightningcss-freebsd-x64@1.27.0: + resolution: {integrity: sha512-n1sEf85fePoU2aDN2PzYjoI8gbBqnmLGEhKq7q0DKLj0UTVmOTwDC7PtLcy/zFxzASTSBlVQYJUhwIStQMIpRA==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [freebsd] + + lightningcss-linux-arm-gnueabihf@1.27.0: + resolution: {integrity: sha512-MUMRmtdRkOkd5z3h986HOuNBD1c2lq2BSQA1Jg88d9I7bmPGx08bwGcnB75dvr17CwxjxD6XPi3Qh8ArmKFqCA==} + engines: {node: '>= 12.0.0'} + cpu: [arm] + os: [linux] + + lightningcss-linux-arm64-gnu@1.27.0: + resolution: {integrity: sha512-cPsxo1QEWq2sfKkSq2Bq5feQDHdUEwgtA9KaB27J5AX22+l4l0ptgjMZZtYtUnteBofjee+0oW1wQ1guv04a7A==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] - libcurl.js@0.6.8: - resolution: {integrity: sha512-KYkWFxnSdnIeN00AZRWv1tywDawVqb7VKxw213GjqxehGQDBv0rWAKZ/R/rwEKumVYlPvRNrzZPRa9wlYgEjCg==} + lightningcss-linux-arm64-musl@1.27.0: + resolution: {integrity: sha512-rCGBm2ax7kQ9pBSeITfCW9XSVF69VX+fm5DIpvDZQl4NnQoMQyRwhZQm9pd59m8leZ1IesRqWk2v/DntMo26lg==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + + lightningcss-linux-x64-gnu@1.27.0: + resolution: {integrity: sha512-Dk/jovSI7qqhJDiUibvaikNKI2x6kWPN79AQiD/E/KeQWMjdGe9kw51RAgoWFDi0coP4jinaH14Nrt/J8z3U4A==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + + lightningcss-linux-x64-musl@1.27.0: + resolution: {integrity: sha512-QKjTxXm8A9s6v9Tg3Fk0gscCQA1t/HMoF7Woy1u68wCk5kS4fR+q3vXa1p3++REW784cRAtkYKrPy6JKibrEZA==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] - lie@3.1.1: - resolution: {integrity: sha512-RiNhHysUjhrDQntfYSfY4MU24coXXdEOgw9WGcKHNeEwffDYbF//u87M1EWaMGzuFoSbqW0C9C6lEEhDOAswfw==} + lightningcss-win32-arm64-msvc@1.27.0: + resolution: {integrity: sha512-/wXegPS1hnhkeG4OXQKEMQeJd48RDC3qdh+OA8pCuOPCyvnm/yEayrJdJVqzBsqpy1aJklRCVxscpFur80o6iQ==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [win32] + + lightningcss-win32-x64-msvc@1.27.0: + resolution: {integrity: sha512-/OJLj94Zm/waZShL8nB5jsNj3CfNATLCTyFxZyouilfTmSoLDX7VlVAmhPHoZWVFp4vdmoiEbPEYC8HID3m6yw==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [win32] - light-my-request@5.13.0: - resolution: {integrity: sha512-9IjUN9ZyCS9pTG+KqTDEQo68Sui2lHsYBrfMyVUTTZ3XhH8PMZq7xO94Kr+eP9dhi/kcKsx4N41p2IXEBil1pQ==} + lightningcss@1.27.0: + resolution: {integrity: sha512-8f7aNmS1+etYSLHht0fQApPc2kNO8qGRutifN5rVIc6Xo6ABsEbqOr758UwI7ALVbTt4x1fllKt0PYgzD9S3yQ==} + engines: {node: '>= 12.0.0'} lilconfig@2.1.0: resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} @@ -2528,40 +2350,44 @@ packages: lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - localforage@1.10.0: - resolution: {integrity: sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==} + load-yaml-file@0.2.0: + resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} + engines: {node: '>=6'} + + local-pkg@0.5.0: + resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} + engines: {node: '>=14'} + + locate-character@3.0.0: + resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==} locate-path@5.0.0: resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} engines: {node: '>=8'} - locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} + lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - lodash.memoize@4.1.2: - resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} + log-symbols@6.0.0: + resolution: {integrity: sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==} + engines: {node: '>=18'} - lodash.merge@4.6.2: - resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + longest-streak@3.1.0: + resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} - lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + lower-case@2.0.2: + resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} - loose-envify@1.4.0: - resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} - hasBin: true + lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} - lru-cache@10.3.0: - resolution: {integrity: sha512-CQl19J/g+Hbjbv4Y3mFNNXFEL/5t/KCg8POCuUqd4rMKjGG+j1ybER83hxV58zL+dFI1PTkt3GNFSHRt+d8qEQ==} - engines: {node: 14 || >=16.14} + lru-cache@11.0.1: + resolution: {integrity: sha512-CgeuL5uom6j/ZVrg7G/+1IXqRY8JXX4Hghfy5YE0EhoYQWvndP1kufu58cmZLNIDKnRhZrXfdS9urVWx98AipQ==} + engines: {node: 20 || >=22} lru-cache@2.6.3: resolution: {integrity: sha512-qkisDmHMe8gxKujmC1BdaqgkoFlioLDCUwaFBA3lX8Ilhr3YzsasbGYaiADMjxQnj+aiZUKgGKe/BN3skMwXWw==} - lru-cache@4.1.5: - resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} - lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} @@ -2569,43 +2395,174 @@ packages: resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} engines: {node: '>=10'} - magic-string@0.30.5: - resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==} + lru-cache@7.18.3: + resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} engines: {node: '>=12'} - make-dir@3.1.0: - resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} - engines: {node: '>=8'} + magic-string@0.30.12: + resolution: {integrity: sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==} + + magicast@0.3.5: + resolution: {integrity: sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==} make-fetch-happen@9.1.0: resolution: {integrity: sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==} engines: {node: '>= 10'} + markdown-table@3.0.4: + resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} + match-url-wildcard@0.0.4: resolution: {integrity: sha512-R1XhQaamUZPWLOPtp4ig5j+3jctN+skhgRmEQTUamMzmNtRG69QEirQs0NZKLtHMR7tzWpmtnS4Eqv65DcgXUA==} + mdast-util-definitions@6.0.0: + resolution: {integrity: sha512-scTllyX6pnYNZH/AIp/0ePz6s4cZtARxImwoPJ7kS42n+MnVsI4XbnG6d4ibehRIldYMWM2LD7ImQblVhUejVQ==} + + mdast-util-find-and-replace@3.0.1: + resolution: {integrity: sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==} + + mdast-util-from-markdown@2.0.2: + resolution: {integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==} + + mdast-util-gfm-autolink-literal@2.0.1: + resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==} + + mdast-util-gfm-footnote@2.0.0: + resolution: {integrity: sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==} + + mdast-util-gfm-strikethrough@2.0.0: + resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} + + mdast-util-gfm-table@2.0.0: + resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} + + mdast-util-gfm-task-list-item@2.0.0: + resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} + + mdast-util-gfm@3.0.0: + resolution: {integrity: sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==} + + mdast-util-phrasing@4.1.0: + resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} + + mdast-util-to-hast@13.2.0: + resolution: {integrity: sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==} + + mdast-util-to-markdown@2.1.0: + resolution: {integrity: sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==} + + mdast-util-to-string@4.0.0: + resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} + + mdn-data@2.0.28: + resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} + + mdn-data@2.0.30: + resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} + merge-stream@1.0.1: resolution: {integrity: sha512-e6RM36aegd4f+r8BZCcYXlO2P3H6xbUM6ktL2Xmf45GAOit9bI4z6/3VU7JwllVO1L7u0UDSg/EhzQ5lmMLolA==} - merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - merge2@1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} - micromatch@4.0.7: - resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} - engines: {node: '>=8.6'} + micromark-core-commonmark@2.0.1: + resolution: {integrity: sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA==} - million@2.6.4: - resolution: {integrity: sha512-voUkdd/jHWrG+7NS+mX49Pat+POKdgGW78V7pYMSrTaOjUitR6ySEcAci8hn17Rsx1IMI3+5w41dkADM1J1ZEg==} - hasBin: true + micromark-extension-gfm-autolink-literal@2.1.0: + resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==} + + micromark-extension-gfm-footnote@2.1.0: + resolution: {integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==} + + micromark-extension-gfm-strikethrough@2.1.0: + resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==} + + micromark-extension-gfm-table@2.1.0: + resolution: {integrity: sha512-Ub2ncQv+fwD70/l4ou27b4YzfNaCJOvyX4HxXU15m7mpYY+rjuWzsLIPZHJL253Z643RpbcP1oeIJlQ/SKW67g==} + + micromark-extension-gfm-tagfilter@2.0.0: + resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} + + micromark-extension-gfm-task-list-item@2.1.0: + resolution: {integrity: sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==} + + micromark-extension-gfm@3.0.0: + resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} + + micromark-factory-destination@2.0.0: + resolution: {integrity: sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==} + + micromark-factory-label@2.0.0: + resolution: {integrity: sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==} + + micromark-factory-space@2.0.0: + resolution: {integrity: sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==} + + micromark-factory-title@2.0.0: + resolution: {integrity: sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==} + + micromark-factory-whitespace@2.0.0: + resolution: {integrity: sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==} + + micromark-util-character@2.1.0: + resolution: {integrity: sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==} + + micromark-util-chunked@2.0.0: + resolution: {integrity: sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==} + + micromark-util-classify-character@2.0.0: + resolution: {integrity: sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==} + + micromark-util-combine-extensions@2.0.0: + resolution: {integrity: sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==} + + micromark-util-decode-numeric-character-reference@2.0.1: + resolution: {integrity: sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==} + + micromark-util-decode-string@2.0.0: + resolution: {integrity: sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==} + + micromark-util-encode@2.0.0: + resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==} + + micromark-util-html-tag-name@2.0.0: + resolution: {integrity: sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==} + + micromark-util-normalize-identifier@2.0.0: + resolution: {integrity: sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==} + + micromark-util-resolve-all@2.0.0: + resolution: {integrity: sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==} + + micromark-util-sanitize-uri@2.0.0: + resolution: {integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==} + + micromark-util-subtokenize@2.0.1: + resolution: {integrity: sha512-jZNtiFl/1aY73yS3UGQkutD0UbhTt68qnRpw2Pifmz5wV9h8gOVsN70v+Lq/f1rKaU/W8pxRe8y8Q9FX1AOe1Q==} + + micromark-util-symbol@2.0.0: + resolution: {integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==} + + micromark-util-types@2.0.0: + resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==} + + micromark@4.0.0: + resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==} + + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} mime-db@1.52.0: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} + mime-db@1.53.0: + resolution: {integrity: sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg==} + engines: {node: '>= 0.6'} + mime-types@2.1.35: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} @@ -2614,6 +2571,11 @@ packages: resolution: {integrity: sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==} hasBin: true + mime@1.6.0: + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} + engines: {node: '>=4'} + hasBin: true + mime@2.6.0: resolution: {integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==} engines: {node: '>=4.0.0'} @@ -2624,25 +2586,24 @@ packages: engines: {node: '>=10.0.0'} hasBin: true - mimic-fn@2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} - - mimic-fn@4.0.0: - resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} - engines: {node: '>=12'} + mimic-function@5.0.1: + resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} + engines: {node: '>=18'} mimic-response@3.1.0: resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} engines: {node: '>=10'} + minimalistic-assert@1.0.1: + resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} + + minimatch@10.0.1: + resolution: {integrity: sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==} + engines: {node: 20 || >=22} + minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - minimatch@5.1.6: - resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} - engines: {node: '>=10'} - minimatch@9.0.5: resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} engines: {node: '>=16 || 14 >=14.17'} @@ -2674,6 +2635,10 @@ packages: resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} engines: {node: '>=8'} + minipass@4.2.8: + resolution: {integrity: sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==} + engines: {node: '>=8'} + minipass@5.0.0: resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} engines: {node: '>=8'} @@ -2689,15 +2654,24 @@ packages: mkdirp-classic@0.5.3: resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} - mkdirp@0.5.6: - resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} - hasBin: true - mkdirp@1.0.4: resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} engines: {node: '>=10'} hasBin: true + mlly@1.7.2: + resolution: {integrity: sha512-tN3dvVHYVz4DhSXinXIk7u9syPYaJvio118uomkovAtWBT+RdbP6Lfh/5Lvo519YMmwBafwlh20IPTXIStscpA==} + + moment-timezone@0.5.46: + resolution: {integrity: sha512-ZXm9b36esbe7OmdABqIWJuBBiLLwAjrN7CE+7sYdCCx82Nabt1wHDj8TVseS59QIlfFPbOoiBPm6ca9BioG4hw==} + + moment@2.30.1: + resolution: {integrity: sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==} + + mrmime@2.0.0: + resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} + engines: {node: '>=10'} + ms@2.0.0: resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} @@ -2707,6 +2681,9 @@ packages: ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + muggle-string@0.4.1: + resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} + mustache@2.3.2: resolution: {integrity: sha512-KpMNwdQsYz3O/SBS1qJ/o3sqUJ5wSb8gb0pul8CO0S56b9Y2ALm8zCfsjPXsqGFfoNBkDwZuZIAjhsZI03gYVQ==} engines: {npm: '>=1.4.0'} @@ -2720,26 +2697,36 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + nanostores@0.10.3: + resolution: {integrity: sha512-Nii8O1XqmawqSCf9o2aWqVxhKRN01+iue9/VEd1TiJCr9VT5XxgPFbF1Edl1XN6pwJcZRsl8Ki+z01yb/T/C2g==} + engines: {node: ^18.0.0 || >=20.0.0} + napi-build-utils@1.0.2: resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==} - natural-compare@1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - - negotiator@0.6.3: - resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + negotiator@0.6.4: + resolution: {integrity: sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==} engines: {node: '>= 0.6'} - node-abi@3.65.0: - resolution: {integrity: sha512-ThjYBfoDNr08AWx6hGaRbfPwxKV9kVzAzOzlLKbk2CuqXE2xnCh+cbAGnwM3t8Lq4v9rUB7VfondlkBckcJrVA==} + neotraverse@0.6.18: + resolution: {integrity: sha512-Z4SmBUweYa09+o6pG+eASabEpP6QkQ70yHj351pQoEXIs8uHbaU2DWVmzBANKgflPa47A50PtB2+NgRpQvr7vA==} + engines: {node: '>= 10'} + + nlcst-to-string@4.0.0: + resolution: {integrity: sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA==} + + no-case@3.0.4: + resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} + + node-abi@3.71.0: + resolution: {integrity: sha512-SZ40vRiy/+wRTf21hxkkEjPJZpARzUMVcJoQse2EF8qkUWbbO2z7vd5oA/H6bVH6SZQ5STGcu0KRDS7biNRfxw==} engines: {node: '>=10'} - node-addon-api@7.1.0: - resolution: {integrity: sha512-mNcltoe1R8o7STTegSOHdnJNN7s5EUvhoS7ShnTHDyOSd+8H+UdWODq6qSv67PjC8Zc5JRT8+oLAMCr0SIXw7g==} - engines: {node: ^16 || ^18 || >= 20} + node-addon-api@7.1.1: + resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} - node-gyp-build@4.8.1: - resolution: {integrity: sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw==} + node-gyp-build@4.8.2: + resolution: {integrity: sha512-IRUxE4BVsHWXkV/SFOut4qTlagw2aM8T5/vnTsmrHJvVoKueJHRc/JaFND7QDDc61kLYUJ6qlZM3sqTSyx2dTw==} hasBin: true node-gyp@8.4.1: @@ -2747,11 +2734,8 @@ packages: engines: {node: '>= 10.12.0'} hasBin: true - node-html-parser@6.1.13: - resolution: {integrity: sha512-qIsTMOY4C/dAa5Q5vsobRpOOvPfC4pB61UVW2uSwZNUp0QU/jCekTal1vMmbO0DgdHeLUJpv/ARmDqErVxA3Sg==} - - node-releases@2.0.14: - resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} + node-releases@2.0.18: + resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} nopt@5.0.0: resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==} @@ -2766,18 +2750,6 @@ packages: resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} engines: {node: '>=0.10.0'} - npm-run-path@2.0.2: - resolution: {integrity: sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==} - engines: {node: '>=4'} - - npm-run-path@4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} - engines: {node: '>=8'} - - npm-run-path@5.3.0: - resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - npmlog@6.0.2: resolution: {integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} @@ -2794,108 +2766,82 @@ packages: resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} engines: {node: '>= 6'} - object-inspect@1.13.2: - resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} - engines: {node: '>= 0.4'} - - object-keys@1.1.1: - resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} - engines: {node: '>= 0.4'} - - object.assign@4.1.5: - resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} - engines: {node: '>= 0.4'} - - object.entries@1.1.8: - resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==} - engines: {node: '>= 0.4'} - - object.fromentries@2.0.8: - resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} - engines: {node: '>= 0.4'} - - object.hasown@1.1.4: - resolution: {integrity: sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==} - engines: {node: '>= 0.4'} - - object.values@1.2.0: - resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} - engines: {node: '>= 0.4'} - on-exit-leak-free@2.1.2: resolution: {integrity: sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==} engines: {node: '>=14.0.0'} - on-headers@1.0.2: - resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} + on-finished@2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} engines: {node: '>= 0.8'} once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - onetime@5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} - - onetime@6.0.0: - resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} - engines: {node: '>=12'} + onetime@7.0.0: + resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==} + engines: {node: '>=18'} - open@9.1.0: - resolution: {integrity: sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==} - engines: {node: '>=14.16'} + oniguruma-to-js@0.4.3: + resolution: {integrity: sha512-X0jWUcAlxORhOqqBREgPMgnshB7ZGYszBNspP+tS9hPD3l13CdaXcHbgImoHUHlrvGx/7AvFEkTRhAGYh+jzjQ==} - optionator@0.9.4: - resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} - engines: {node: '>= 0.8.0'} + ora@8.1.0: + resolution: {integrity: sha512-GQEkNkH/GHOhPFXcqZs3IDahXEQcQxsSjEkK4KvEEST4t7eNzoMjxTzef+EZ+JluDEV+Raoi3WQ2CflnRdSVnQ==} + engines: {node: '>=18'} os-family@1.1.0: resolution: {integrity: sha512-E3Orl5pvDJXnVmpaAA2TeNNpNhTMl4o5HghuWhOivBjEiTnJSrMYSa5uZMek1lBEvu8kKEsa2YgVcGFVDqX/9w==} - p-finally@1.0.0: - resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} - engines: {node: '>=4'} - - p-is-promise@3.0.0: - resolution: {integrity: sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==} - engines: {node: '>=8'} - p-limit@2.3.0: resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} engines: {node: '>=6'} - p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} + p-limit@6.1.0: + resolution: {integrity: sha512-H0jc0q1vOzlEk0TqAKXKZxdl7kX3OFUzCnNVUnq5Pc3DGo0kpeaMuPqxQn235HibwBEb0/pm9dgKTjXy66fBkg==} + engines: {node: '>=18'} p-locate@4.1.0: resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} engines: {node: '>=8'} - p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} - p-map@4.0.0: resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} engines: {node: '>=10'} + p-queue@8.0.1: + resolution: {integrity: sha512-NXzu9aQJTAzbBqOt2hwsR63ea7yvxJc0PwN/zobNAudYfb1B7R08SzB4TsLeSbUCuG467NhnoT0oO6w1qRO+BA==} + engines: {node: '>=18'} + + p-timeout@6.1.3: + resolution: {integrity: sha512-UJUyfKbwvr/uZSV6btANfb+0t/mOhKV/KXcCUTp8FcQI+v/0d+wXqH4htrW0E4rR6WiEO/EPvUFiV9D5OI4vlw==} + engines: {node: '>=14.16'} + p-try@2.2.0: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} - package-json-from-dist@1.0.0: - resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==} + package-json-from-dist@1.0.1: + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} - parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} + package-manager-detector@0.2.2: + resolution: {integrity: sha512-VgXbyrSNsml4eHWIvxxG/nTL4wgybMTXCV2Un/+yEc3aDKKU6nQBZjbeP3Pl3qm9Qg92X/1ng4ffvCeD/zwHgg==} + + param-case@3.0.4: + resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} - parse5@2.2.3: - resolution: {integrity: sha512-yJQdbcT+hCt6HD+BuuUvjHUdNwerQIKSJSm7tXjtp6oIH5Mxbzlt/VIIeWxblsgcDt1+E7kxPeilD5McWswStA==} + parse-latin@7.0.0: + resolution: {integrity: sha512-mhHgobPPua5kZ98EF4HWiH167JWBfl4pvAIXXdbaVohtK7a6YBOy56kvhCqduqyo/f3yrHFWmqmiMg/BkBkYYQ==} - parse5@7.1.2: - resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} + parse5-htmlparser2-tree-adapter@7.1.0: + resolution: {integrity: sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==} + + parse5-parser-stream@7.1.2: + resolution: {integrity: sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==} + + parse5@7.2.0: + resolution: {integrity: sha512-ZkDsAOcxsUMZ4Lz5fVciOehNcJ+Gb8gTzcA4yl3wnc273BAybYWrQ+Ks/OjCjSEpjvQkDSeZbybK9qj2VHHdGA==} + + pascal-case@3.1.2: + resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} path-browserify@1.0.1: resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} @@ -2908,18 +2854,10 @@ packages: resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} engines: {node: '>=0.10.0'} - path-key@2.0.1: - resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==} - engines: {node: '>=4'} - path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} - path-key@4.0.0: - resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} - engines: {node: '>=12'} - path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} @@ -2927,36 +2865,95 @@ packages: resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} engines: {node: '>=16 || 14 >=14.18'} - path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} + path-scurry@2.0.0: + resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==} + engines: {node: 20 || >=22} + + path-to-regexp@8.2.0: + resolution: {integrity: sha512-TdrF7fW9Rphjq4RjrW0Kp2AW0Ahwu9sRGTkS6bvDi0SCwZlEZYmcfDbEsTz8RVk0EHIS/Vd1bv3JhG+1xZuAyQ==} + engines: {node: '>=16'} + + pathe@1.1.2: + resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} peek-stream@1.1.3: resolution: {integrity: sha512-FhJ+YbOSBb9/rIl2ZeE/QHEsWn7PqNYt8ARAY3kIgNGOk13g9FGyIY6JIl/xB/3TFRVoTv5as0l11weORrTekA==} - picocolors@1.0.1: - resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} + pend@1.2.0: + resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} + + periscopic@3.1.0: + resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} + + pg-cloudflare@1.1.1: + resolution: {integrity: sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q==} + + pg-connection-string@2.7.0: + resolution: {integrity: sha512-PI2W9mv53rXJQEOb8xNR8lH7Hr+EKa6oJa38zsK0S/ky2er16ios1wLKhZyxzD7jUReiWokc9WK5nxSnC7W1TA==} + + pg-hstore@2.3.4: + resolution: {integrity: sha512-N3SGs/Rf+xA1M2/n0JBiXFDVMzdekwLZLAO0g7mpDY9ouX+fDI7jS6kTq3JujmYbtNSJ53TJ0q4G98KVZSM4EA==} + engines: {node: '>= 0.8.x'} + + pg-int8@1.0.1: + resolution: {integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==} + engines: {node: '>=4.0.0'} + + pg-pool@3.7.0: + resolution: {integrity: sha512-ZOBQForurqh4zZWjrgSwwAtzJ7QiRX0ovFkZr2klsen3Nm0aoh33Ls0fzfv3imeH/nw/O27cjdz5kzYJfeGp/g==} + peerDependencies: + pg: '>=8.0' + + pg-protocol@1.7.0: + resolution: {integrity: sha512-hTK/mE36i8fDDhgDFjy6xNOG+LCorxLG3WO17tku+ij6sVHXh1jQUJ8hYAnRhNla4QVD2H8er/FOjc/+EgC6yQ==} + + pg-types@2.2.0: + resolution: {integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==} + engines: {node: '>=4'} + + pg@8.13.1: + resolution: {integrity: sha512-OUir1A0rPNZlX//c7ksiu7crsGZTKSOXJPgtNiHGIlC9H0lO+NC6ZDYksSgBYY/thSWhnSRBv8w1lieNNGATNQ==} + engines: {node: '>= 8.0.0'} + peerDependencies: + pg-native: '>=3.0.1' + peerDependenciesMeta: + pg-native: + optional: true + + pgpass@1.0.5: + resolution: {integrity: sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==} + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} + picomatch@4.0.2: + resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} + engines: {node: '>=12'} + pify@2.3.0: resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} engines: {node: '>=0.10.0'} + pify@4.0.1: + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + engines: {node: '>=6'} + pinkie@2.0.4: resolution: {integrity: sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==} engines: {node: '>=0.10.0'} - pino-abstract-transport@1.2.0: - resolution: {integrity: sha512-Guhh8EZfPCfH+PMXAb6rKOjGQEoy0xlAIn+irODG5kgfYV+BQ0rGYYWTIel3P5mmyXqkYkPmdIkywsn6QKUR1Q==} + pino-abstract-transport@2.0.0: + resolution: {integrity: sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw==} pino-std-serializers@7.0.0: resolution: {integrity: sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==} - pino@9.2.0: - resolution: {integrity: sha512-g3/hpwfujK5a4oVbaefoJxezLzsDgLcNJeITvC6yrfwYeT9la+edCK42j5QpEQSQCZgTKapXvnQIdgZwvRaZug==} + pino@9.5.0: + resolution: {integrity: sha512-xSEmD4pLnV54t0NOUN16yCl7RIB1c5UUOse5HSyEXtBp+FgFQyPeDutc+Q2ZO7/22vImV7VfEjH/1zV2QuqvYw==} hasBin: true pirates@4.0.6: @@ -2967,9 +2964,8 @@ packages: resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} engines: {node: '>=8'} - possible-typed-array-names@1.0.0: - resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} - engines: {node: '>= 0.4'} + pkg-types@1.2.1: + resolution: {integrity: sha512-sQoqa8alT3nHjGuTjuKgOnvjo4cljkufdtLMnO2LBP/wRwuDlo1tkaEdMxCRhyGRPacv/ztlZgDPm2b7FAmEvw==} postcss-import@15.1.0: resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} @@ -2995,113 +2991,62 @@ packages: ts-node: optional: true - postcss-nested@6.0.1: - resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} + postcss-nested@6.2.0: + resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==} engines: {node: '>=12.0'} peerDependencies: postcss: ^8.2.14 - postcss-selector-parser@6.1.0: - resolution: {integrity: sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==} + postcss-selector-parser@6.1.2: + resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} engines: {node: '>=4'} postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - postcss@8.4.39: - resolution: {integrity: sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==} + postcss@8.4.47: + resolution: {integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==} engines: {node: ^10 || ^12 || >=14} - preact-iso@2.6.3: - resolution: {integrity: sha512-2JqNi+Elyt7rf0kULtMn/QskbZE10cDMrhmoanGKWJX3gOCTIfLt/ta5xWu+kQUsyInPkTQIVp3fS5Im0V+X8A==} - peerDependencies: - preact: '>=10' - preact-render-to-string: '>=6.4.0' + postgres-array@2.0.0: + resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==} + engines: {node: '>=4'} - preact-render-to-string@6.5.5: - resolution: {integrity: sha512-KiMFTKNTmT/ccE79BURR/r6XRc2I2TCTZ0MpeWqHW2XnllbeghXvwGsdAfF/MzMilUcTfODtSmMxgoRFL9TM5g==} - peerDependencies: - preact: '>=10' + postgres-bytea@1.0.0: + resolution: {integrity: sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==} + engines: {node: '>=0.10.0'} - preact-router@4.1.2: - resolution: {integrity: sha512-uICUaUFYh+XQ+6vZtQn1q+X6rSqwq+zorWOCLWPF5FAsQh3EJ+RsDQ9Ee+fjk545YWQHfUxhrBAaemfxEnMOUg==} - peerDependencies: - preact: '>=10' + postgres-date@1.0.7: + resolution: {integrity: sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==} + engines: {node: '>=0.10.0'} - preact@10.22.1: - resolution: {integrity: sha512-jRYbDDgMpIb5LHq3hkI0bbl+l/TQ9UnkdQ0ww+lp+4MMOdqaUYdFc5qeyP+IV8FAd/2Em7drVPeKdQxsiWCf/A==} + postgres-interval@1.2.0: + resolution: {integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==} + engines: {node: '>=0.10.0'} prebuild-install@7.1.2: resolution: {integrity: sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==} engines: {node: '>=10'} hasBin: true - prelude-ls@1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} - engines: {node: '>= 0.8.0'} - - prettier-plugin-tailwindcss@0.5.14: - resolution: {integrity: sha512-Puaz+wPUAhFp8Lo9HuciYKM2Y2XExESjeT+9NQoVFXZsPPnc9VYss2SpxdQ6vbatmt8/4+SN0oe0I1cPDABg9Q==} - engines: {node: '>=14.21.3'} - peerDependencies: - '@ianvs/prettier-plugin-sort-imports': '*' - '@prettier/plugin-pug': '*' - '@shopify/prettier-plugin-liquid': '*' - '@trivago/prettier-plugin-sort-imports': '*' - '@zackad/prettier-plugin-twig-melody': '*' - prettier: ^3.0 - prettier-plugin-astro: '*' - prettier-plugin-css-order: '*' - prettier-plugin-import-sort: '*' - prettier-plugin-jsdoc: '*' - prettier-plugin-marko: '*' - prettier-plugin-organize-attributes: '*' - prettier-plugin-organize-imports: '*' - prettier-plugin-sort-imports: '*' - prettier-plugin-style-order: '*' - prettier-plugin-svelte: '*' - peerDependenciesMeta: - '@ianvs/prettier-plugin-sort-imports': - optional: true - '@prettier/plugin-pug': - optional: true - '@shopify/prettier-plugin-liquid': - optional: true - '@trivago/prettier-plugin-sort-imports': - optional: true - '@zackad/prettier-plugin-twig-melody': - optional: true - prettier-plugin-astro: - optional: true - prettier-plugin-css-order: - optional: true - prettier-plugin-import-sort: - optional: true - prettier-plugin-jsdoc: - optional: true - prettier-plugin-marko: - optional: true - prettier-plugin-organize-attributes: - optional: true - prettier-plugin-organize-imports: - optional: true - prettier-plugin-sort-imports: - optional: true - prettier-plugin-style-order: - optional: true - prettier-plugin-svelte: - optional: true + preferred-pm@4.0.0: + resolution: {integrity: sha512-gYBeFTZLu055D8Vv3cSPox/0iTPtkzxpLroSYYA7WXgRi31WCJ51Uyl8ZiPeUUjyvs2MBzK+S8v9JVUgHU/Sqw==} + engines: {node: '>=18.12'} - prettier@3.3.2: - resolution: {integrity: sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==} - engines: {node: '>=14'} + prettier@2.8.7: + resolution: {integrity: sha512-yPngTo3aXUUmyuTjeTUT75txrf+aMh9FiD7q9ZE/i6r0bPb22g4FsE6Y338PQX1bmfy08i9QQCB7/rcUAVntfw==} + engines: {node: '>=10.13.0'} hasBin: true + prismjs@1.29.0: + resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} + engines: {node: '>=6'} + process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - process-warning@3.0.0: - resolution: {integrity: sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==} + process-warning@4.0.0: + resolution: {integrity: sha512-/MyYDxttz7DfGMMHiysAsFE4qF+pQYAA8ziO/3NcRVrQ5fSk+Mns4QZA/oRPFzvcqNoVJXQNWNAsdwBXLUkQKw==} process@0.11.10: resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} @@ -3119,21 +3064,25 @@ packages: resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} engines: {node: '>=10'} - prop-types@15.8.1: - resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + prompts@2.4.2: + resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} + engines: {node: '>= 6'} + + property-information@6.5.0: + resolution: {integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==} proxy-addr@2.0.7: resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} engines: {node: '>= 0.10'} - pseudomap@1.0.2: - resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} + proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} psl@1.9.0: resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} - pump@3.0.0: - resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} + pump@3.0.2: + resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==} pumpify@2.0.1: resolution: {integrity: sha512-m7KOje7jZxrmutanlkS1daj1dS6z6BgslzOXmcSEpIlCxM3VJH7lG5QLeck/6hgF6F4crFf01UtQmNsJfweTAw==} @@ -3142,69 +3091,23 @@ packages: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} + querystringify@2.2.0: + resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} + queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} quick-format-unescaped@4.0.4: resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==} - rammerhead@https://github.com/NebulaServices/rammerhead/releases/download/rammerhead-1.2.41-nebula.8/rammerhead-1.2.41-nebula.7.tgz: - resolution: {tarball: https://github.com/NebulaServices/rammerhead/releases/download/rammerhead-1.2.41-nebula.8/rammerhead-1.2.41-nebula.7.tgz} - version: 1.2.41-holy.5 + range-parser@1.2.1: + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} + engines: {node: '>= 0.6'} rc@1.2.8: resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} hasBin: true - react-dom@18.3.1: - resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} - peerDependencies: - react: ^18.3.1 - - react-fast-compare@3.2.2: - resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==} - - react-helmet@6.1.0: - resolution: {integrity: sha512-4uMzEY9nlDlgxr61NL3XbKRy1hEkXmKNXhjbAIOVw5vcFrsdYbH2FEwcNyWvWinl103nXgzYNlns9ca+8kFiWw==} - peerDependencies: - react: '>=16.3.0' - - react-i18next@13.5.0: - resolution: {integrity: sha512-CFJ5NDGJ2MUyBohEHxljOq/39NQ972rh1ajnadG9BjTk+UXbHLq4z5DKEbEQBDoIhUmmbuS/fIMJKo6VOax1HA==} - peerDependencies: - i18next: '>= 23.2.3' - react: '>= 16.8.0' - react-dom: '*' - react-native: '*' - peerDependenciesMeta: - react-dom: - optional: true - react-native: - optional: true - - react-icons@4.12.0: - resolution: {integrity: sha512-IBaDuHiShdZqmfc/TwHu6+d6k2ltNCf3AszxNmjJc1KUfXdEeRJOKyNvLmAHaarhzGmTSVygNdyu8/opXv2gaw==} - peerDependencies: - react: '*' - - react-is@16.13.1: - resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} - - react-side-effect@2.1.2: - resolution: {integrity: sha512-PVjOcvVOyIILrYoyGEpDN3vmYNLdy1CajSFNt4TDsVQC5KpTijDvWVoR+/7Rz2xT978D8/ZtFceXxzsPwZEDvw==} - peerDependencies: - react: ^16.3.0 || ^17.0.0 || ^18.0.0 - - react-toastify@9.1.3: - resolution: {integrity: sha512-fPfb8ghtn/XMxw3LkxQBk3IyagNpF/LIKjOBflbexr2AWxAH1MJgvnESwEwBn9liLFXgTKWgBSdZpw9m4OTHTg==} - peerDependencies: - react: '>=16' - react-dom: '>=16' - - react@18.3.1: - resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} - engines: {node: '>=0.10.0'} - read-cache@1.0.0: resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} @@ -3230,16 +3133,49 @@ packages: resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==} engines: {node: '>= 12.13.0'} - reflect.getprototypeof@1.0.6: - resolution: {integrity: sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==} - engines: {node: '>= 0.4'} - regenerator-runtime@0.14.1: resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} - regexp.prototype.flags@1.5.2: - resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} - engines: {node: '>= 0.4'} + regex@4.3.3: + resolution: {integrity: sha512-r/AadFO7owAq1QJVeZ/nq9jNS1vyZt+6t1p/E59B56Rn2GCya+gr1KSyOzNL/er+r+B7phv5jG2xU2Nz1YkmJg==} + + rehype-parse@9.0.1: + resolution: {integrity: sha512-ksCzCD0Fgfh7trPDxr2rSylbwq9iYDkSn8TCDmEJ49ljEUBxDVCzCHv7QNzZOfODanX4+bWQ4WZqLCRWYLfhag==} + + rehype-raw@7.0.0: + resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==} + + rehype-stringify@10.0.1: + resolution: {integrity: sha512-k9ecfXHmIPuFVI61B9DeLPN0qFHfawM6RsuX48hoqlaKSF61RskNjSm1lI8PhBEM0MRdLxVVm4WmTqJQccH9mA==} + + rehype@13.0.2: + resolution: {integrity: sha512-j31mdaRFrwFRUIlxGeuPXXKWQxet52RBQRvCmzl5eCefn/KGbomK5GMHNMsOJf55fgo3qw5tST5neDuarDYR2A==} + + relateurl@0.2.7: + resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==} + engines: {node: '>= 0.10'} + + remark-gfm@4.0.0: + resolution: {integrity: sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==} + + remark-parse@11.0.0: + resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} + + remark-rehype@11.1.1: + resolution: {integrity: sha512-g/osARvjkBXb6Wo0XvAeXQohVta8i84ACbenPpoSsxTOQH/Ae0/RGP4WZgnMH5pMLpsj4FG7OHmcIcXxpza8eQ==} + + remark-smartypants@3.0.2: + resolution: {integrity: sha512-ILTWeOriIluwEvPjv67v7Blgrcx+LZOkAUVtKI3putuhlZm84FnqDORNXPPm+HY3NdZOMhyDwZ1E+eZB/Df5dA==} + engines: {node: '>=16.0.0'} + + remark-stringify@11.0.0: + resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} + + request-light@0.5.8: + resolution: {integrity: sha512-3Zjgh+8b5fhRJBQZoy+zbVKpAQGLyka0MPgW3zruTF4dFFJ8Fqcfu9YsAvi/rvdcaTeWG3MkbZv4WKxAn/84Lg==} + + request-light@0.7.0: + resolution: {integrity: sha512-lMbBMrDoxgsyO+yB3sDcrDuX85yYt7sS8BfQd11jtbW/z5ZWgLZRcEGLsLoYw7I0WSUGQBs8CC8ScIxkTX1+6Q==} require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} @@ -3249,29 +3185,39 @@ packages: resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} engines: {node: '>=0.10.0'} - resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} + requires-port@1.0.0: + resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} resolve-pkg-maps@1.0.0: resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} - resolve-url@0.2.1: - resolution: {integrity: sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==} - deprecated: https://github.com/lydell/resolve-url#deprecated - resolve@1.22.8: resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} hasBin: true - resolve@2.0.0-next.5: - resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} - hasBin: true + restore-cursor@5.1.0: + resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==} + engines: {node: '>=18'} - ret@0.4.3: - resolution: {integrity: sha512-0f4Memo5QP7WQyUEAYUO3esD/XjOc3Zjjg5CPsAq1p8sIu0XPeMbHJemKA0BO7tV0X7+A0FoEpbmHXWxPyD3wQ==} + ret@0.5.0: + resolution: {integrity: sha512-I1XxrZSQ+oErkRR4jYbAyEEu2I0avBvvMM5JN+6EBprOGRCs63ENqZ3vjavq8fBw2+62G5LF5XelKwuJpcvcxw==} engines: {node: '>=10'} + retext-latin@4.0.0: + resolution: {integrity: sha512-hv9woG7Fy0M9IlRQloq/N6atV82NxLGveq+3H2WOi79dtIYWN8OaxogDm77f8YnVXJL2VD3bbqowu5E3EMhBYA==} + + retext-smartypants@6.2.0: + resolution: {integrity: sha512-kk0jOU7+zGv//kfjXEBjdIryL1Acl4i9XNkHxtM7Tm5lFiCog576fjNC9hjoR7LTKQ0DsPWy09JummSsH1uqfQ==} + + retext-stringify@4.0.0: + resolution: {integrity: sha512-rtfN/0o8kL1e+78+uxPTqu1Klt0yPzKuQ2BfWwwfgIUSayyzxpM1PJzkKt4V8803uB9qSy32MvI7Xep9khTpiA==} + + retext@9.0.0: + resolution: {integrity: sha512-sbMDcpHCNjvlheSgMfEcVrZko3cDzdbe1x/e7G66dFp0Ff7Mldvi2uv6JkJQzdRcvLYE8CA8Oe8siQx8ZOgTcA==} + + retry-as-promised@7.0.4: + resolution: {integrity: sha512-XgmCoxKWkDofwH8WddD0w85ZfqYz+ZHlr5yo+3YUCfycWawU56T5ckWXsScsj5B8tqUcIG67DxXByo3VUgiAdA==} + retry@0.12.0: resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} engines: {node: '>= 4'} @@ -3283,127 +3229,123 @@ packages: rfdc@1.4.1: resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} - rimraf@2.7.1: - resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} - deprecated: Rimraf versions prior to v4 are no longer supported - hasBin: true - rimraf@3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true - rollup-plugin-node-resolve@5.2.0: - resolution: {integrity: sha512-jUlyaDXts7TW2CqQ4GaO5VJ4PwwaV8VUGA7+km3n6k6xtOEacf61u0VXwN80phY/evMcaS+9eIeJ9MOyDxt5Zw==} - deprecated: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-node-resolve. - peerDependencies: - rollup: '>=1.11.0' - - rollup-plugin-typescript2@0.36.0: - resolution: {integrity: sha512-NB2CSQDxSe9+Oe2ahZbf+B4bh7pHwjV5L+RSYpCu7Q5ROuN94F9b6ioWwKfz3ueL3KTtmX4o2MUH2cgHDIEUsw==} - peerDependencies: - rollup: '>=1.26.3' - typescript: '>=2.4.0' - - rollup-pluginutils@2.8.2: - resolution: {integrity: sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==} - - rollup@3.29.4: - resolution: {integrity: sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==} - engines: {node: '>=14.18.0', npm: '>=8.0.0'} - hasBin: true - - rollup@4.18.0: - resolution: {integrity: sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==} + rollup@4.24.0: + resolution: {integrity: sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true - run-applescript@5.0.0: - resolution: {integrity: sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==} - engines: {node: '>=12'} - run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} rxjs@7.8.1: resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} - safe-array-concat@1.1.2: - resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} - engines: {node: '>=0.4'} - safe-buffer@5.1.2: resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - safe-regex-test@1.0.3: - resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} - engines: {node: '>= 0.4'} - - safe-regex2@3.1.0: - resolution: {integrity: sha512-RAAZAGbap2kBfbVhvmnTFv73NWLMvDGOITFYTZBAaY8eR+Ir4ef7Up/e7amo+y1+AH+3PtLkrt9mvcTsG9LXug==} + safe-regex2@4.0.0: + resolution: {integrity: sha512-Hvjfv25jPDVr3U+4LDzBuZPPOymELG3PYcSk5hcevooo1yxxamQL/bHs/GrEPGmMoMEwRrHVGiCA1pXi97B8Ew==} - safe-stable-stringify@2.4.3: - resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==} + safe-stable-stringify@2.5.0: + resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==} engines: {node: '>=10'} safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - scheduler@0.23.2: - resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} + section-matter@1.0.0: + resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} + engines: {node: '>=4'} secure-json-parse@2.7.0: resolution: {integrity: sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==} - semver@5.5.0: - resolution: {integrity: sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==} - hasBin: true + secure-json-parse@3.0.0: + resolution: {integrity: sha512-YO+gVWyp97H+nCG/qdC8X819iKx5g+BpnO9nYT4uFq4uyI0rSxwtx5qD9rGfScg7FGLYu/YBf8uOtwQKv+gq8g==} semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true - semver@7.6.2: - resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} + semver@7.5.3: + resolution: {integrity: sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==} engines: {node: '>=10'} hasBin: true - set-blocking@2.0.0: - resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + semver@7.6.3: + resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} + engines: {node: '>=10'} + hasBin: true - set-cookie-parser@2.6.0: - resolution: {integrity: sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==} + send@0.19.1: + resolution: {integrity: sha512-p4rRk4f23ynFEfcD9LA0xRYngj+IyGiEYyqqOak8kaN0TvNmuxC2dcVeBn62GpCeR2CpWqyHCNScTP91QbAVFg==} + engines: {node: '>= 0.8.0'} - set-function-length@1.2.2: - resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} - engines: {node: '>= 0.4'} + sequelize-pool@7.1.0: + resolution: {integrity: sha512-G9c0qlIWQSK29pR/5U2JF5dDQeqqHRragoyahj/Nx4KOOQ3CPPfzxnfqFPCSB7x5UgjOgnZ61nSxz+fjDpRlJg==} + engines: {node: '>= 10.0.0'} - set-function-name@2.0.2: - resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} - engines: {node: '>= 0.4'} + sequelize@6.37.5: + resolution: {integrity: sha512-10WA4poUb3XWnUROThqL2Apq9C2NhyV1xHPMZuybNMCucDsbbFuKg51jhmyvvAUyUqCiimwTZamc3AHhMoBr2Q==} + engines: {node: '>=10.0.0'} + peerDependencies: + ibm_db: '*' + mariadb: '*' + mysql2: '*' + oracledb: '*' + pg: '*' + pg-hstore: '*' + snowflake-sdk: '*' + sqlite3: '*' + tedious: '*' + peerDependenciesMeta: + ibm_db: + optional: true + mariadb: + optional: true + mysql2: + optional: true + oracledb: + optional: true + pg: + optional: true + pg-hstore: + optional: true + snowflake-sdk: + optional: true + sqlite3: + optional: true + tedious: + optional: true + + server-destroy@1.0.1: + resolution: {integrity: sha512-rb+9B5YBIEzYcD6x2VKidaa+cqYBJQKnU4oe4E3ANwRRN56yk/ua1YCJT1n21NTS8w6CcOclAKNP3PhdCXKYtQ==} + + set-blocking@2.0.0: + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + + set-cookie-parser@2.7.1: + resolution: {integrity: sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==} setprototypeof@1.2.0: resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} - sharp@0.33.4: - resolution: {integrity: sha512-7i/dt5kGl7qR4gwPRD2biwD2/SvBn3O04J77XKFgL2OnZtQw+AG9wnuS/csmu80nPRHLYE9E41fyEiG8nhH6/Q==} - engines: {libvips: '>=8.15.2', node: ^18.17.0 || ^20.3.0 || >=21.0.0} - - shebang-command@1.2.0: - resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} - engines: {node: '>=0.10.0'} + sharp@0.33.5: + resolution: {integrity: sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} - shebang-regex@1.0.0: - resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} - engines: {node: '>=0.10.0'} - shebang-regex@3.0.0: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} @@ -3411,9 +3353,8 @@ packages: shell-quote@1.8.1: resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} - side-channel@1.0.6: - resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} - engines: {node: '>= 0.4'} + shiki@1.22.1: + resolution: {integrity: sha512-PbJ6XxrWLMwB2rm3qdjIHNm3zq4SfFnOx0B3rEoi4AN8AUngsdyZ1tRe5slMPtn6jQkbUURLNZPpLR7Do3k78g==} signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} @@ -3431,14 +3372,17 @@ packages: simple-swizzle@0.2.2: resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} - slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} + sisteransi@1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} smart-buffer@4.2.0: resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} + smol-toml@1.3.0: + resolution: {integrity: sha512-tWpi2TsODPScmi48b/OQZGi2lgUmBCHy6SZrhi/FdnnHiU1GwebbCfuQuxsC3nHaLwtYeJGPrDZDIeodDOc4pA==} + engines: {node: '>= 18'} + socks-proxy-agent@6.2.1: resolution: {integrity: sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==} engines: {node: '>= 10'} @@ -3447,35 +3391,22 @@ packages: resolution: {integrity: sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==} engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} - sonic-boom@4.0.1: - resolution: {integrity: sha512-hTSD/6JMLyT4r9zeof6UtuBDpjJ9sO08/nmS5djaA9eozT9oOlNdpXSnzcgj4FTqpk3nkLrs61l4gip9r1HCrQ==} + sonic-boom@4.2.0: + resolution: {integrity: sha512-INb7TM37/mAcsGmc9hyyI6+QR3rR1zVRu36B0NeGXKnOOLiZOfER5SA+N7X7k3yUYRzLWafduTDvJAfDswwEww==} - source-map-js@1.2.0: - resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} - source-map-resolve@0.5.3: - resolution: {integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==} - deprecated: See https://github.com/lydell/source-map-resolve#deprecated - source-map-support@0.5.21: resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} - source-map-url@0.4.1: - resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==} - deprecated: See https://github.com/lydell/source-map-url#deprecated - - source-map@0.1.43: - resolution: {integrity: sha512-VtCvB9SIQhk3aF6h+N85EaqIaBFIAfZ9Cu+NJHHVvc8BbEcnvDcFw6sqQ2dQrT6SlOrZq3tIvyD9+EGq/lJryQ==} - engines: {node: '>=0.8.0'} - source-map@0.6.1: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} - source-map@0.7.4: - resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} - engines: {node: '>= 8'} + space-separated-tokens@2.0.2: + resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} spawn-command@0.0.2: resolution: {integrity: sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==} @@ -3484,27 +3415,31 @@ packages: resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} engines: {node: '>= 10.x'} + sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + sprintf-js@1.1.3: resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} sqlite3@5.1.7: resolution: {integrity: sha512-GGIyOiFaG+TUra3JIfkI/zGP8yZYLPQ0pl1bH+ODjiX57sPhrLU5sQJn1y9bDKZUFYkX1crlrPfSYt0BKKdkog==} - sqlite@4.2.1: - resolution: {integrity: sha512-Tll0Ndvnwkuv5Hn6WIbh26rZiYQORuH1t5m/or9LUpSmDmmyFG89G9fKrSeugMPxwmEIXoVxqTun4LbizTs4uw==} - ssri@8.0.1: resolution: {integrity: sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==} engines: {node: '>= 8'} - stack-trace@1.0.0-pre2: - resolution: {integrity: sha512-2ztBJRek8IVofG9DBJqdy2N5kulaacX30Nz7xmkYF6ale9WBVmIy6mFBchvGX7Vx/MyjBhx+Rcxqrj+dbOnQ6A==} - engines: {node: '>=16'} - statuses@2.0.1: resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} engines: {node: '>= 0.8'} + stdin-discarder@0.2.2: + resolution: {integrity: sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==} + engines: {node: '>=18'} + + sticky-session-custom@1.2.1: + resolution: {integrity: sha512-FhtVizZBZMEYOMz3U2gTqmQ+bJs94DMR4YJoP06FW/kbLjaLKDC2NDQgtdk8eh7wO9w44mNLvAhZH0YFB35bSQ==} + engines: {node: '>= 0.12.0'} + stream-shift@1.0.3: resolution: {integrity: sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==} @@ -3516,20 +3451,9 @@ packages: resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} engines: {node: '>=12'} - string.prototype.matchall@4.0.11: - resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==} - engines: {node: '>= 0.4'} - - string.prototype.trim@1.2.9: - resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} - engines: {node: '>= 0.4'} - - string.prototype.trimend@1.0.8: - resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} - - string.prototype.trimstart@1.0.8: - resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} - engines: {node: '>= 0.4'} + string-width@7.2.0: + resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} + engines: {node: '>=18'} string_decoder@1.1.1: resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} @@ -3537,6 +3461,9 @@ packages: string_decoder@1.3.0: resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + stringify-entities@4.0.4: + resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} + strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} @@ -3545,35 +3472,23 @@ packages: resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} engines: {node: '>=12'} - strip-eof@1.0.0: - resolution: {integrity: sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==} + strip-bom-string@1.0.0: + resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} engines: {node: '>=0.10.0'} - strip-final-newline@2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} - engines: {node: '>=6'} - - strip-final-newline@3.0.0: - resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} - engines: {node: '>=12'} + strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} strip-json-comments@2.0.1: resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} engines: {node: '>=0.10.0'} - strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} - sucrase@3.35.0: resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} engines: {node: '>=16 || 14 >=14.17'} hasBin: true - supports-color@5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} - supports-color@7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} @@ -3586,8 +3501,39 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - tailwindcss@3.4.4: - resolution: {integrity: sha512-ZoyXOdJjISB7/BcLTR6SEsLgKtDStYyYZVLsUtWChO4Ps20CBad7lfJKVDiejocV4ME1hLmyY0WJE3hSDcmQ2A==} + svelte-french-toast@1.2.0: + resolution: {integrity: sha512-5PW+6RFX3xQPbR44CngYAP1Sd9oCq9P2FOox4FZffzJuZI2mHOB7q5gJBVnOiLF5y3moVGZ7u2bYt7+yPAgcEQ==} + peerDependencies: + svelte: ^3.57.0 || ^4.0.0 + + svelte-hmr@0.16.0: + resolution: {integrity: sha512-Gyc7cOS3VJzLlfj7wKS0ZnzDVdv3Pn2IuVeJPk9m2skfhcu5bq3wtIZyQGggr7/Iim5rH5cncyQft/kRLupcnA==} + engines: {node: ^12.20 || ^14.13.1 || >= 16} + peerDependencies: + svelte: ^3.19.0 || ^4.0.0 + + svelte-writable-derived@3.1.1: + resolution: {integrity: sha512-w4LR6/bYZEuCs7SGr+M54oipk/UQKtiMadyOhW0PTwAtJ/Ai12QS77sLngEcfBx2q4H8ZBQucc9ktSA5sUGZWw==} + peerDependencies: + svelte: ^3.2.1 || ^4.0.0-next.1 || ^5.0.0-next.94 + + svelte2tsx@0.7.22: + resolution: {integrity: sha512-hf55ujq17ufVpDQlJzaQfRr9EjlLIwGmFlpKq4uYrQAQFw/99q1OcVYyBT6568iJySgBUY9PdccURrORmfetmQ==} + peerDependencies: + svelte: ^3.55 || ^4.0.0-next.0 || ^4.0 || ^5.0.0-next.0 + typescript: ^4.9.4 || ^5.0.0 + + svelte@4.2.19: + resolution: {integrity: sha512-IY1rnGr6izd10B0A8LqsBfmlT5OILVuZ7XsI0vdGPEvuonFV7NYEUK4dAkm9Zg2q0Um92kYjTpS1CAP3Nh/KWw==} + engines: {node: '>=16'} + + svgo@3.3.2: + resolution: {integrity: sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==} + engines: {node: '>=14.0.0'} + hasBin: true + + tailwindcss@3.4.14: + resolution: {integrity: sha512-IcSvOcTRcUtQQ7ILQL5quRDg7Xs93PdJEk1ZLbhhvJc7uj/OAhYOnruEiwnGgBvUtaUAJ8/mhSw1o8L2jCiENA==} engines: {node: '>=14.0.0'} hasBin: true @@ -3602,12 +3548,14 @@ packages: resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} engines: {node: '>=10'} - testcafe-hammerhead@24.5.18: - resolution: {integrity: sha512-ae7ikqW4SzKY81BDaCc5eVyTmiiqbq8qGpr484GyVobRb4stPUKCDVyYm05t7BiO60Lhhh9Fm0w5o3oNHqQxQg==} - engines: {node: '>=12.0.0'} + terser@5.36.0: + resolution: {integrity: sha512-IYV9eNMuFAV4THUspIRXkLakHnV6XO7FEdtKjf/mDyrnqUg9LnlOn6/RwRvM9SZjR4GUq8Nk8zj67FzVARr74w==} + engines: {node: '>=10'} + hasBin: true - text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + testcafe-hammerhead@31.7.2: + resolution: {integrity: sha512-wjZ3Y4fXnew6WaoMhD7jTe/zrzSYJMLZulX+/pXS6xed9meUx7zzCSc5epPJEW8Xy3Zo09n7w+m7+2SDej0/Iw==} + engines: {node: '>=14.0.0'} thenify-all@1.6.0: resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} @@ -3622,20 +3570,14 @@ packages: through2@2.0.5: resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} - titleize@3.0.0: - resolution: {integrity: sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==} - engines: {node: '>=12'} - - tmp-promise@1.1.0: - resolution: {integrity: sha512-8+Ah9aB1IRXCnIOxXZ0uFozV1nMU5xiu7hhFVUSxZ3bYu+psD4TzagCzVbexUCgNNGJnsmNDQlS4nG3mTyoNkw==} + tinycolor2@1.6.0: + resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==} - tmp@0.1.0: - resolution: {integrity: sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw==} - engines: {node: '>=6'} + tinyexec@0.3.1: + resolution: {integrity: sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==} - to-fast-properties@2.0.0: - resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} - engines: {node: '>=4'} + tinygradient@1.1.5: + resolution: {integrity: sha512-8nIfc2vgQ4TeLnk2lFj4tRLvvJwEfQuabdsmvDdQPT0xlk9TaNtpGd6nNRxXoK6vQhN6RSzj+Cnp5tTQmpxmbw==} to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} @@ -3649,76 +3591,85 @@ packages: resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} engines: {node: '>=0.6'} - tough-cookie@4.0.0: - resolution: {integrity: sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==} + toposort-class@1.0.1: + resolution: {integrity: sha512-OsLcGGbYF3rMjPUf8oKktyvCiUxSbqMMS39m33MAjLTC1DVIH6x3WSt63/M77ihI09+Sdfk1AXvfhCEeUmC7mg==} + + tough-cookie@4.1.3: + resolution: {integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==} engines: {node: '>=6'} tree-kill@1.2.2: resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} hasBin: true - ts-interface-checker@0.1.13: - resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + trim-lines@3.0.1: + resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} - tslib@1.14.1: - resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + trough@2.2.0: + resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} - tslib@2.6.3: - resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} + ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} - tsutils@3.21.0: - resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} - engines: {node: '>= 6'} + tsconfck@3.1.4: + resolution: {integrity: sha512-kdqWFGVJqe+KGYvlSO9NIaWn9jT1Ny4oKVzAJsKii5eoE9snzTJzL4+MMVOMn+fikWGFmKEylcXL710V/kIPJQ==} + engines: {node: ^18 || >=20} + hasBin: true peerDependencies: - typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' + typescript: ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true + + tslib@2.8.0: + resolution: {integrity: sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA==} - tsx@4.16.0: - resolution: {integrity: sha512-MPgN+CuY+4iKxGoJNPv+1pyo5YWZAQ5XfsyobUG+zoKG7IkvCPLZDEyoIb8yLS2FcWci1nlxAqmvPlFWD5AFiQ==} + tsx@4.19.1: + resolution: {integrity: sha512-0flMz1lh74BR4wOvBjuh9olbnwqCPc35OOlfyzHba0Dc+QNUeWX/Gq2YTbnwcWPO3BMd8fkzRVrHcsR+a7z7rA==} engines: {node: '>=18.0.0'} hasBin: true tunnel-agent@0.6.0: resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} - type-check@0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} - engines: {node: '>= 0.8.0'} - - type-fest@0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} - - typed-array-buffer@1.0.2: - resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} - engines: {node: '>= 0.4'} - - typed-array-byte-length@1.0.1: - resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} - engines: {node: '>= 0.4'} + type-fest@4.26.1: + resolution: {integrity: sha512-yOGpmOAL7CkKe/91I5O3gPICmJNLJ1G4zFYVAsRHg7M64biSnPtRj0WNQt++bRkjYOqjWXrhnUw1utzmVErAdg==} + engines: {node: '>=16'} - typed-array-byte-offset@1.0.2: - resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} - engines: {node: '>= 0.4'} + typesafe-path@0.2.2: + resolution: {integrity: sha512-OJabfkAg1WLZSqJAJ0Z6Sdt3utnbzr/jh+NAHoyWHJe8CMSy79Gm085094M9nvTPy22KzTVn5Zq5mbapCI/hPA==} - typed-array-length@1.0.6: - resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} - engines: {node: '>= 0.4'} + typescript-auto-import-cache@0.3.5: + resolution: {integrity: sha512-fAIveQKsoYj55CozUiBoj4b/7WpN0i4o74wiGY5JVUEoD0XiqDk1tJqTEjgzL2/AizKQrXxyRosSebyDzBZKjw==} - typescript@5.5.2: - resolution: {integrity: sha512-NcRtPEOsPFFWjobJEtfihkLCZCXZt/os3zf8nTxjVH3RvTSxjrCamJpbExGvYOF+tFHc3pA65qpdwPbzjohhew==} + typescript@5.6.3: + resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==} engines: {node: '>=14.17'} hasBin: true - uglify-js@3.18.0: - resolution: {integrity: sha512-SyVVbcNBCk0dzr9XL/R/ySrmYf0s372K6/hFklzgcp2lBFyXtw4I7BOdDjlLhE1aVqaI/SHWXWmYdlZxuyF38A==} + ufo@1.5.4: + resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==} + + uglify-js@3.19.3: + resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==} engines: {node: '>=0.8.0'} hasBin: true - unbox-primitive@1.0.2: - resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + underscore@1.12.1: + resolution: {integrity: sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==} + + underscore@1.13.7: + resolution: {integrity: sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g==} - undici-types@5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + undici-types@6.19.8: + resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} + + undici@6.20.1: + resolution: {integrity: sha512-AjQF1QsmqfJys+LXfGTNum+qw4S88CojRInG/6t31W/1fk6G59s92bnAvGz5Cmur+kQv2SURXEvvudLmbrE8QA==} + engines: {node: '>=18.17'} + + unified@11.0.5: + resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} unique-filename@1.1.1: resolution: {integrity: sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==} @@ -3726,36 +3677,51 @@ packages: unique-slug@2.0.2: resolution: {integrity: sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==} - universalify@0.1.2: - resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} - engines: {node: '>= 4.0.0'} + unist-util-find-after@5.0.0: + resolution: {integrity: sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==} - universalify@2.0.1: - resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} - engines: {node: '>= 10.0.0'} + unist-util-is@6.0.0: + resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} - unplugin@1.11.0: - resolution: {integrity: sha512-3r7VWZ/webh0SGgJScpWl2/MRCZK5d3ZYFcNaeci/GQ7Teop7zf0Nl2pUuz7G21BwPd9pcUPOC5KmJ2L3WgC5g==} - engines: {node: '>=14.0.0'} + unist-util-modify-children@4.0.0: + resolution: {integrity: sha512-+tdN5fGNddvsQdIzUF3Xx82CU9sMM+fA0dLgR9vOmT0oPT2jH+P1nd5lSqfCfXAw+93NhcXNY2qqvTUtE4cQkw==} - untildify@4.0.0: - resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} - engines: {node: '>=8'} + unist-util-position@5.0.0: + resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} - update-browserslist-db@1.0.16: - resolution: {integrity: sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' + unist-util-remove-position@5.0.0: + resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==} - uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + unist-util-stringify-position@4.0.0: + resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} - urix@0.1.0: - resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==} - deprecated: Please see https://github.com/lydell/urix#deprecated + unist-util-visit-children@3.0.0: + resolution: {integrity: sha512-RgmdTfSBOg04sdPcpTSD1jzoNBjt9a80/ZCzp5cI9n1qPzLZWF9YdvWGN2zmTumP1HWhXKdUWexjy/Wy/lJ7tA==} - utf-8-validate@6.0.4: + unist-util-visit-parents@6.0.1: + resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} + + unist-util-visit@5.0.0: + resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} + + universalify@0.2.0: + resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} + engines: {node: '>= 4.0.0'} + + universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} + + update-browserslist-db@1.1.1: + resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + url-parse@1.5.10: + resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} + + utf-8-validate@6.0.4: resolution: {integrity: sha512-xu9GQDeFp+eZ6LnCywXN/zBancWvOpUMzgjLPSjy4BRHSmTelvn2E0DG0o1sTiw5hkCKBHo8rwSKncfRfv2EEQ==} engines: {node: '>=6.14.2'} @@ -3766,27 +3732,27 @@ packages: resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} hasBin: true - uuid@9.0.1: - resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} - hasBin: true + validator@13.12.0: + resolution: {integrity: sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg==} + engines: {node: '>= 0.10'} - vary@1.1.2: - resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} - engines: {node: '>= 0.8'} + vfile-location@5.0.3: + resolution: {integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==} + + vfile-message@4.0.2: + resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} - vite-plugin-static-copy@1.0.5: - resolution: {integrity: sha512-02k0Rox+buYdEOfeilKZSgs1gXfPf9RjVztZEIYZgVIxjsVZi6AXssjzdi+qW6zYt00d3bq+tpP2voVXN2fKLw==} + vfile@6.0.3: + resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} + + vite-plugin-static-copy@1.0.6: + resolution: {integrity: sha512-3uSvsMwDVFZRitqoWHj0t4137Kz7UynnJeq1EZlRW7e25h2068fyIZX4ORCCOAkfp1FklGxJNVJBkBOD+PZIew==} engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: vite: ^5.0.0 - vite-plugin-vsharp@1.8.1: - resolution: {integrity: sha512-7VRNK5DBbfpt52QvGOcdOxObaXgoBwlC+N0O185E3QNFciZ3Iby/E1pGg8KL541JY4AxhNne4RDBZhHWwRAATA==} - peerDependencies: - vite: '>= 2.6 <= 5' - - vite@5.3.2: - resolution: {integrity: sha512-6lA7OBHBlXUxiJxbO5aAY2fsHHzDr1q7DvXYnyZycRs2Dz+dXBWuhpWHvmljTRTpQC2uvGmUFFkSHF2vGo90MA==} + vite@5.4.10: + resolution: {integrity: sha512-1hvaPshuPUtxeQ0hsVH3Mud0ZanOLwVTneA1EgbAM5LhaZEqyPWGRQ7BtaMvUrTDeEaC8pxtj6a6jku3x4z6SQ==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -3794,6 +3760,7 @@ packages: less: '*' lightningcss: ^1.21.0 sass: '*' + sass-embedded: '*' stylus: '*' sugarss: '*' terser: ^5.4.0 @@ -3806,6 +3773,8 @@ packages: optional: true sass: optional: true + sass-embedded: + optional: true stylus: optional: true sugarss: @@ -3813,40 +3782,150 @@ packages: terser: optional: true - void-elements@3.1.0: - resolution: {integrity: sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==} - engines: {node: '>=0.10.0'} + vitefu@0.2.5: + resolution: {integrity: sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==} + peerDependencies: + vite: ^3.0.0 || ^4.0.0 || ^5.0.0 + peerDependenciesMeta: + vite: + optional: true - webauth@1.1.0: - resolution: {integrity: sha512-BwbI3vESF7eVleIU6zYPnFuzT89IRswYoJ0C6xYLDpNSUpiw7pdX0HjebyYkFYt1IuYnQvx2Y1Lx+bGKz4Zi6w==} - engines: {node: '>= 0.10.0'} + vitefu@1.0.3: + resolution: {integrity: sha512-iKKfOMBHob2WxEJbqbJjHAkmYgvFDPhuqrO82om83S8RLk+17FtyMBfcyeH8GqD0ihShtkMW/zzJgiA51hCNCQ==} + peerDependencies: + vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0-beta.0 + peerDependenciesMeta: + vite: + optional: true - webpack-sources@3.2.3: - resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} - engines: {node: '>=10.13.0'} + volar-service-css@0.0.62: + resolution: {integrity: sha512-JwNyKsH3F8PuzZYuqPf+2e+4CTU8YoyUHEHVnoXNlrLe7wy9U3biomZ56llN69Ris7TTy/+DEX41yVxQpM4qvg==} + peerDependencies: + '@volar/language-service': ~2.4.0 + peerDependenciesMeta: + '@volar/language-service': + optional: true - webpack-virtual-modules@0.6.2: - resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} + volar-service-emmet@0.0.62: + resolution: {integrity: sha512-U4dxWDBWz7Pi4plpbXf4J4Z/ss6kBO3TYrACxWNsE29abu75QzVS0paxDDhI6bhqpbDFXlpsDhZ9aXVFpnfGRQ==} + peerDependencies: + '@volar/language-service': ~2.4.0 + peerDependenciesMeta: + '@volar/language-service': + optional: true - which-boxed-primitive@1.0.2: - resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + volar-service-html@0.0.62: + resolution: {integrity: sha512-Zw01aJsZRh4GTGUjveyfEzEqpULQUdQH79KNEiKVYHZyuGtdBRYCHlrus1sueSNMxwwkuF5WnOHfvBzafs8yyQ==} + peerDependencies: + '@volar/language-service': ~2.4.0 + peerDependenciesMeta: + '@volar/language-service': + optional: true - which-builtin-type@1.1.3: - resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==} - engines: {node: '>= 0.4'} + volar-service-prettier@0.0.62: + resolution: {integrity: sha512-h2yk1RqRTE+vkYZaI9KYuwpDfOQRrTEMvoHol0yW4GFKc75wWQRrb5n/5abDrzMPrkQbSip8JH2AXbvrRtYh4w==} + peerDependencies: + '@volar/language-service': ~2.4.0 + prettier: ^2.2 || ^3.0 + peerDependenciesMeta: + '@volar/language-service': + optional: true + prettier: + optional: true - which-collection@1.0.2: - resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} - engines: {node: '>= 0.4'} + volar-service-typescript-twoslash-queries@0.0.62: + resolution: {integrity: sha512-KxFt4zydyJYYI0kFAcWPTh4u0Ha36TASPZkAnNY784GtgajerUqM80nX/W1d0wVhmcOFfAxkVsf/Ed+tiYU7ng==} + peerDependencies: + '@volar/language-service': ~2.4.0 + peerDependenciesMeta: + '@volar/language-service': + optional: true - which-typed-array@1.1.15: - resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} - engines: {node: '>= 0.4'} + volar-service-typescript@0.0.62: + resolution: {integrity: sha512-p7MPi71q7KOsH0eAbZwPBiKPp9B2+qrdHAd6VY5oTo9BUXatsOAdakTm9Yf0DUj6uWBAaOT01BSeVOPwucMV1g==} + peerDependencies: + '@volar/language-service': ~2.4.0 + peerDependenciesMeta: + '@volar/language-service': + optional: true + + volar-service-yaml@0.0.62: + resolution: {integrity: sha512-k7gvv7sk3wa+nGll3MaSKyjwQsJjIGCHFjVkl3wjaSP2nouKyn9aokGmqjrl39mi88Oy49giog2GkZH526wjig==} + peerDependencies: + '@volar/language-service': ~2.4.0 + peerDependenciesMeta: + '@volar/language-service': + optional: true + + vscode-css-languageservice@6.3.1: + resolution: {integrity: sha512-1BzTBuJfwMc3A0uX4JBdJgoxp74cjj4q2mDJdp49yD/GuAq4X0k5WtK6fNcMYr+FfJ9nqgR6lpfCSZDkARJ5qQ==} + + vscode-html-languageservice@5.3.1: + resolution: {integrity: sha512-ysUh4hFeW/WOWz/TO9gm08xigiSsV/FOAZ+DolgJfeLftna54YdmZ4A+lIn46RbdO3/Qv5QHTn1ZGqmrXQhZyA==} + + vscode-json-languageservice@4.1.8: + resolution: {integrity: sha512-0vSpg6Xd9hfV+eZAaYN63xVVMOTmJ4GgHxXnkLCh+9RsQBkWKIghzLhW2B9ebfG+LQQg8uLtsQ2aUKjTgE+QOg==} + engines: {npm: '>=7.0.0'} + + vscode-jsonrpc@6.0.0: + resolution: {integrity: sha512-wnJA4BnEjOSyFMvjZdpiOwhSq9uDoK8e/kpRJDTaMYzwlkrhG1fwDIZI94CLsLzlCK5cIbMMtFlJlfR57Lavmg==} + engines: {node: '>=8.0.0 || >=10.0.0'} + + vscode-jsonrpc@8.2.0: + resolution: {integrity: sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==} + engines: {node: '>=14.0.0'} + + vscode-languageserver-protocol@3.16.0: + resolution: {integrity: sha512-sdeUoAawceQdgIfTI+sdcwkiK2KU+2cbEYA0agzM2uqaUy2UpnnGHtWTHVEtS0ES4zHU0eMFRGN+oQgDxlD66A==} + + vscode-languageserver-protocol@3.17.5: + resolution: {integrity: sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==} + + vscode-languageserver-textdocument@1.0.12: + resolution: {integrity: sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==} + + vscode-languageserver-types@3.16.0: + resolution: {integrity: sha512-k8luDIWJWyenLc5ToFQQMaSrqCHiLwyKPHKPQZ5zz21vM+vIVUSvsRpcbiECH4WR88K2XZqc4ScRcZ7nk/jbeA==} + + vscode-languageserver-types@3.17.5: + resolution: {integrity: sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==} + + vscode-languageserver@7.0.0: + resolution: {integrity: sha512-60HTx5ID+fLRcgdHfmz0LDZAXYEV68fzwG0JWwEPBode9NuMYTIxuYXPg4ngO8i8+Ou0lM7y6GzaYWbiDL0drw==} + hasBin: true - which@1.3.1: - resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + vscode-languageserver@9.0.1: + resolution: {integrity: sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==} hasBin: true + vscode-nls@5.2.0: + resolution: {integrity: sha512-RAaHx7B14ZU04EU31pT+rKz2/zSl7xMsfIZuo8pd+KZO6PXtQmpevpq3vxvWNcrGbdmhM/rr5Uw5Mz+NBfhVng==} + + vscode-uri@2.1.2: + resolution: {integrity: sha512-8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A==} + + vscode-uri@3.0.8: + resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} + + web-namespaces@2.0.1: + resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} + + whatwg-encoding@3.1.1: + resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} + engines: {node: '>=18'} + + whatwg-mimetype@4.0.0: + resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} + engines: {node: '>=18'} + + which-pm-runs@1.1.0: + resolution: {integrity: sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==} + engines: {node: '>=4'} + + which-pm@3.0.0: + resolution: {integrity: sha512-ysVYmw6+ZBhx3+ZkcPwRuJi38ZOTLJJ33PSHaitLxSKUMsh0LkKd0nC69zZCwt5D+AYUcMK2hhw4yWny20vSGg==} + engines: {node: '>=18.12'} + which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} @@ -3855,12 +3934,15 @@ packages: wide-align@1.1.5: resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} - wisp-server-node@1.1.0: - resolution: {integrity: sha512-kJcuDIZZfV/HOkTepoVLfwzP7IieE0GfU57UTe8z2IwNRp+YbL12q5xsImcMNEYb9QeP/8loXiyBKXdZ+vojow==} + widest-line@5.0.0: + resolution: {integrity: sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==} + engines: {node: '>=18'} - word-wrap@1.2.5: - resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} - engines: {node: '>=0.10.0'} + wisp-server-node@1.1.7: + resolution: {integrity: sha512-1kL4dbGAZLHks3qYQDOzhxFKvmKwPwfMFTskvsdOc2YA6TmUKZvq5TNPkGs9JJXPnWiOtqMzAVQVC/FwixxXvQ==} + + wkx@0.5.0: + resolution: {integrity: sha512-Xng/d4Ichh8uN4l0FToV/258EjMGU9MGcA0HV2d9B/ZpZB3lqQm7nkOdZdm5GhKtLLhAE7PiVQwN4eN+2YJJUg==} wrap-ansi@7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} @@ -3870,23 +3952,27 @@ packages: resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} engines: {node: '>=12'} + wrap-ansi@9.0.0: + resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==} + engines: {node: '>=18'} + wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - ws@8.16.0: - resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==} - engines: {node: '>=10.0.0'} + ws@7.5.10: + resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==} + engines: {node: '>=8.3.0'} peerDependencies: bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' + utf-8-validate: ^5.0.2 peerDependenciesMeta: bufferutil: optional: true utf-8-validate: optional: true - ws@8.17.1: - resolution: {integrity: sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==} + ws@8.18.0: + resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -3901,21 +3987,29 @@ packages: resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} engines: {node: '>=0.4'} + xxhash-wasm@1.0.2: + resolution: {integrity: sha512-ibF0Or+FivM9lNrg+HGJfVX8WJqgo+kCLDc4vx6xMeTce7Aj+DLttKbxxRR/gNLSAelRc1omAPlJ77N/Jem07A==} + y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} - yallist@2.1.2: - resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==} - yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - yaml@2.4.5: - resolution: {integrity: sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==} + yaml-language-server@1.15.0: + resolution: {integrity: sha512-N47AqBDCMQmh6mBLmI6oqxryHRzi33aPFPsJhYy3VTUGCdLHYjGh4FZzpUjRlphaADBBkDmnkM/++KNIOHi5Rw==} + hasBin: true + + yaml@2.2.2: + resolution: {integrity: sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA==} + engines: {node: '>= 14'} + + yaml@2.6.0: + resolution: {integrity: sha512-a6ae//JvKDEra2kdi1qzCyrJW/WZCgFi8ydDV+eXExl95t+5R+ijnqHJbz9tmMh8FUjx3iv2fCQ4dclAQlO2UQ==} engines: {node: '>= 14'} hasBin: true @@ -3927,12 +4021,34 @@ packages: resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} engines: {node: '>=12'} - yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} + yauzl@2.10.0: + resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==} + + yocto-queue@1.1.1: + resolution: {integrity: sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==} + engines: {node: '>=12.20'} + + zod-to-json-schema@3.23.5: + resolution: {integrity: sha512-5wlSS0bXfF/BrL4jPAbz9da5hDlDptdEppYfe+x4eIJ7jioqKG9uUxOwPzqof09u/XeVdrgFu29lZi+8XNDJtA==} + peerDependencies: + zod: ^3.23.3 + + zod-to-ts@1.2.0: + resolution: {integrity: sha512-x30XE43V+InwGpvTySRNz9kB7qFU8DlyEy7BsSTCHPH1R0QasMmHWZDCzYm6bVXtj/9NNJAZF3jW8rzFvH5OFA==} + peerDependencies: + typescript: ^4.9.4 || ^5.0.2 + zod: ^3 + + zod@3.23.8: + resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} + + zwitch@2.0.4: + resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} snapshots: + '@adobe/css-tools@4.4.0': {} + '@alloc/quick-lru@5.2.0': {} '@ampproject/remapping@2.3.0': @@ -3940,403 +4056,512 @@ snapshots: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 - '@babel/code-frame@7.24.7': + '@antfu/install-pkg@0.4.1': dependencies: - '@babel/highlight': 7.24.7 - picocolors: 1.0.1 + package-manager-detector: 0.2.2 + tinyexec: 0.3.1 - '@babel/compat-data@7.24.7': {} + '@antfu/utils@0.7.10': {} - '@babel/core@7.24.7': + '@astrojs/check@0.8.3(typescript@5.6.3)': dependencies: - '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.24.7 - '@babel/generator': 7.24.7 - '@babel/helper-compilation-targets': 7.24.7 - '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.7) - '@babel/helpers': 7.24.7 - '@babel/parser': 7.24.7 - '@babel/template': 7.24.7 - '@babel/traverse': 7.24.7 - '@babel/types': 7.24.7 - convert-source-map: 2.0.0 - debug: 4.3.5 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 + '@astrojs/language-server': 2.15.4(typescript@5.6.3) + chokidar: 3.6.0 + fast-glob: 3.3.2 + kleur: 4.1.5 + typescript: 5.6.3 + yargs: 17.7.2 transitivePeerDependencies: - - supports-color - - '@babel/eslint-parser@7.24.7(@babel/core@7.24.7)(eslint@8.57.0)': - dependencies: - '@babel/core': 7.24.7 - '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 - eslint: 8.57.0 - eslint-visitor-keys: 2.1.0 - semver: 6.3.1 + - prettier + - prettier-plugin-astro - '@babel/generator@7.24.7': - dependencies: - '@babel/types': 7.24.7 - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 - jsesc: 2.5.2 + '@astrojs/compiler@2.10.3': {} - '@babel/helper-annotate-as-pure@7.24.7': - dependencies: - '@babel/types': 7.24.7 + '@astrojs/internal-helpers@0.4.1': {} - '@babel/helper-compilation-targets@7.24.7': + '@astrojs/language-server@2.15.4(typescript@5.6.3)': dependencies: - '@babel/compat-data': 7.24.7 - '@babel/helper-validator-option': 7.24.7 - browserslist: 4.23.1 - lru-cache: 5.1.1 - semver: 6.3.1 + '@astrojs/compiler': 2.10.3 + '@astrojs/yaml2ts': 0.2.2 + '@jridgewell/sourcemap-codec': 1.5.0 + '@volar/kit': 2.4.7(typescript@5.6.3) + '@volar/language-core': 2.4.7 + '@volar/language-server': 2.4.7 + '@volar/language-service': 2.4.7 + fast-glob: 3.3.2 + muggle-string: 0.4.1 + volar-service-css: 0.0.62(@volar/language-service@2.4.7) + volar-service-emmet: 0.0.62(@volar/language-service@2.4.7) + volar-service-html: 0.0.62(@volar/language-service@2.4.7) + volar-service-prettier: 0.0.62(@volar/language-service@2.4.7) + volar-service-typescript: 0.0.62(@volar/language-service@2.4.7) + volar-service-typescript-twoslash-queries: 0.0.62(@volar/language-service@2.4.7) + volar-service-yaml: 0.0.62(@volar/language-service@2.4.7) + vscode-html-languageservice: 5.3.1 + vscode-uri: 3.0.8 + transitivePeerDependencies: + - typescript - '@babel/helper-environment-visitor@7.24.7': - dependencies: - '@babel/types': 7.24.7 + '@astrojs/markdown-remark@5.3.0': + dependencies: + '@astrojs/prism': 3.1.0 + github-slugger: 2.0.0 + hast-util-from-html: 2.0.3 + hast-util-to-text: 4.0.2 + import-meta-resolve: 4.1.0 + mdast-util-definitions: 6.0.0 + rehype-raw: 7.0.0 + rehype-stringify: 10.0.1 + remark-gfm: 4.0.0 + remark-parse: 11.0.0 + remark-rehype: 11.1.1 + remark-smartypants: 3.0.2 + shiki: 1.22.1 + unified: 11.0.5 + unist-util-remove-position: 5.0.0 + unist-util-visit: 5.0.0 + unist-util-visit-parents: 6.0.1 + vfile: 6.0.3 + transitivePeerDependencies: + - supports-color - '@babel/helper-function-name@7.24.7': + '@astrojs/node@8.3.4(astro@4.16.7(@types/node@22.8.0)(lightningcss@1.27.0)(rollup@4.24.0)(terser@5.36.0)(typescript@5.6.3))': dependencies: - '@babel/template': 7.24.7 - '@babel/types': 7.24.7 + astro: 4.16.7(@types/node@22.8.0)(lightningcss@1.27.0)(rollup@4.24.0)(terser@5.36.0)(typescript@5.6.3) + send: 0.19.1 + server-destroy: 1.0.1 + transitivePeerDependencies: + - supports-color - '@babel/helper-hoist-variables@7.24.7': + '@astrojs/prism@3.1.0': dependencies: - '@babel/types': 7.24.7 + prismjs: 1.29.0 - '@babel/helper-module-imports@7.24.7': + '@astrojs/svelte@5.7.2(astro@4.16.7(@types/node@22.8.0)(lightningcss@1.27.0)(rollup@4.24.0)(terser@5.36.0)(typescript@5.6.3))(svelte@4.2.19)(typescript@5.6.3)(vite@5.4.10(@types/node@22.8.0)(lightningcss@1.27.0)(terser@5.36.0))': dependencies: - '@babel/traverse': 7.24.7 - '@babel/types': 7.24.7 + '@sveltejs/vite-plugin-svelte': 3.1.2(svelte@4.2.19)(vite@5.4.10(@types/node@22.8.0)(lightningcss@1.27.0)(terser@5.36.0)) + astro: 4.16.7(@types/node@22.8.0)(lightningcss@1.27.0)(rollup@4.24.0)(terser@5.36.0)(typescript@5.6.3) + svelte: 4.2.19 + svelte2tsx: 0.7.22(svelte@4.2.19)(typescript@5.6.3) + typescript: 5.6.3 transitivePeerDependencies: - supports-color + - vite - '@babel/helper-module-transforms@7.24.7(@babel/core@7.24.7)': + '@astrojs/tailwind@5.1.2(astro@4.16.7(@types/node@22.8.0)(lightningcss@1.27.0)(rollup@4.24.0)(terser@5.36.0)(typescript@5.6.3))(tailwindcss@3.4.14)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-environment-visitor': 7.24.7 - '@babel/helper-module-imports': 7.24.7 - '@babel/helper-simple-access': 7.24.7 - '@babel/helper-split-export-declaration': 7.24.7 - '@babel/helper-validator-identifier': 7.24.7 + astro: 4.16.7(@types/node@22.8.0)(lightningcss@1.27.0)(rollup@4.24.0)(terser@5.36.0)(typescript@5.6.3) + autoprefixer: 10.4.20(postcss@8.4.47) + postcss: 8.4.47 + postcss-load-config: 4.0.2(postcss@8.4.47) + tailwindcss: 3.4.14 transitivePeerDependencies: - - supports-color - - '@babel/helper-plugin-utils@7.24.7': {} + - ts-node - '@babel/helper-simple-access@7.24.7': + '@astrojs/telemetry@3.1.0': dependencies: - '@babel/traverse': 7.24.7 - '@babel/types': 7.24.7 + ci-info: 4.0.0 + debug: 4.3.7 + dlv: 1.1.3 + dset: 3.1.4 + is-docker: 3.0.0 + is-wsl: 3.1.0 + which-pm-runs: 1.1.0 transitivePeerDependencies: - supports-color - '@babel/helper-split-export-declaration@7.24.7': + '@astrojs/yaml2ts@0.2.2': + dependencies: + yaml: 2.6.0 + + '@babel/code-frame@7.26.0': dependencies: - '@babel/types': 7.24.7 + '@babel/helper-validator-identifier': 7.25.9 + js-tokens: 4.0.0 + picocolors: 1.1.1 - '@babel/helper-string-parser@7.24.7': {} + '@babel/compat-data@7.26.0': {} - '@babel/helper-validator-identifier@7.24.7': {} + '@babel/core@7.26.0': + dependencies: + '@ampproject/remapping': 2.3.0 + '@babel/code-frame': 7.26.0 + '@babel/generator': 7.26.0 + '@babel/helper-compilation-targets': 7.25.9 + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) + '@babel/helpers': 7.26.0 + '@babel/parser': 7.26.0 + '@babel/template': 7.25.9 + '@babel/traverse': 7.25.9 + '@babel/types': 7.26.0 + convert-source-map: 2.0.0 + debug: 4.3.7 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color - '@babel/helper-validator-option@7.24.7': {} + '@babel/generator@7.26.0': + dependencies: + '@babel/parser': 7.26.0 + '@babel/types': 7.26.0 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 3.0.2 - '@babel/helpers@7.24.7': + '@babel/helper-annotate-as-pure@7.25.9': dependencies: - '@babel/template': 7.24.7 - '@babel/types': 7.24.7 + '@babel/types': 7.26.0 - '@babel/highlight@7.24.7': + '@babel/helper-compilation-targets@7.25.9': dependencies: - '@babel/helper-validator-identifier': 7.24.7 - chalk: 2.4.2 - js-tokens: 4.0.0 - picocolors: 1.0.1 + '@babel/compat-data': 7.26.0 + '@babel/helper-validator-option': 7.25.9 + browserslist: 4.24.2 + lru-cache: 5.1.1 + semver: 6.3.1 - '@babel/parser@7.24.7': + '@babel/helper-module-imports@7.25.9': dependencies: - '@babel/types': 7.24.7 + '@babel/traverse': 7.25.9 + '@babel/types': 7.26.0 + transitivePeerDependencies: + - supports-color - '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.7)': + '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.26.0 + '@babel/helper-module-imports': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 + '@babel/traverse': 7.25.9 + transitivePeerDependencies: + - supports-color + + '@babel/helper-plugin-utils@7.25.9': {} + + '@babel/helper-string-parser@7.25.9': {} - '@babel/plugin-syntax-jsx@7.24.7(@babel/core@7.24.7)': + '@babel/helper-validator-identifier@7.25.9': {} + + '@babel/helper-validator-option@7.25.9': {} + + '@babel/helpers@7.26.0': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/template': 7.25.9 + '@babel/types': 7.26.0 - '@babel/plugin-syntax-typescript@7.24.7(@babel/core@7.24.7)': + '@babel/parser@7.26.0': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/types': 7.26.0 - '@babel/plugin-transform-react-jsx-development@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-syntax-jsx@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.7 - '@babel/plugin-transform-react-jsx': 7.24.7(@babel/core@7.24.7) - transitivePeerDependencies: - - supports-color + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-react-jsx@7.24.7(@babel/core@7.24.7)': + '@babel/plugin-transform-react-jsx@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-module-imports': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.24.7) - '@babel/types': 7.24.7 + '@babel/core': 7.26.0 + '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-module-imports': 7.25.9 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.0) + '@babel/types': 7.26.0 transitivePeerDependencies: - supports-color - '@babel/runtime@7.24.7': + '@babel/runtime@7.26.0': dependencies: regenerator-runtime: 0.14.1 - '@babel/template@7.24.7': + '@babel/template@7.25.9': dependencies: - '@babel/code-frame': 7.24.7 - '@babel/parser': 7.24.7 - '@babel/types': 7.24.7 + '@babel/code-frame': 7.26.0 + '@babel/parser': 7.26.0 + '@babel/types': 7.26.0 - '@babel/traverse@7.24.7': + '@babel/traverse@7.25.9': dependencies: - '@babel/code-frame': 7.24.7 - '@babel/generator': 7.24.7 - '@babel/helper-environment-visitor': 7.24.7 - '@babel/helper-function-name': 7.24.7 - '@babel/helper-hoist-variables': 7.24.7 - '@babel/helper-split-export-declaration': 7.24.7 - '@babel/parser': 7.24.7 - '@babel/types': 7.24.7 - debug: 4.3.5 + '@babel/code-frame': 7.26.0 + '@babel/generator': 7.26.0 + '@babel/parser': 7.26.0 + '@babel/template': 7.25.9 + '@babel/types': 7.26.0 + debug: 4.3.7 globals: 11.12.0 transitivePeerDependencies: - supports-color - '@babel/types@7.24.7': + '@babel/types@7.26.0': dependencies: - '@babel/helper-string-parser': 7.24.7 - '@babel/helper-validator-identifier': 7.24.7 - to-fast-properties: 2.0.0 + '@babel/helper-string-parser': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 - '@dynamic-pkg/mime@1.0.1': {} + '@biomejs/biome@1.9.4': + optionalDependencies: + '@biomejs/cli-darwin-arm64': 1.9.4 + '@biomejs/cli-darwin-x64': 1.9.4 + '@biomejs/cli-linux-arm64': 1.9.4 + '@biomejs/cli-linux-arm64-musl': 1.9.4 + '@biomejs/cli-linux-x64': 1.9.4 + '@biomejs/cli-linux-x64-musl': 1.9.4 + '@biomejs/cli-win32-arm64': 1.9.4 + '@biomejs/cli-win32-x64': 1.9.4 - '@dynamic-pkg/mutation@1.0.0': {} + '@biomejs/cli-darwin-arm64@1.9.4': + optional: true - '@emnapi/runtime@1.2.0': - dependencies: - tslib: 2.6.3 + '@biomejs/cli-darwin-x64@1.9.4': optional: true - '@emotion/is-prop-valid@0.8.8': - dependencies: - '@emotion/memoize': 0.7.4 + '@biomejs/cli-linux-arm64-musl@1.9.4': + optional: true + + '@biomejs/cli-linux-arm64@1.9.4': + optional: true + + '@biomejs/cli-linux-x64-musl@1.9.4': optional: true - '@emotion/memoize@0.7.4': + '@biomejs/cli-linux-x64@1.9.4': optional: true - '@esbuild/aix-ppc64@0.19.12': + '@biomejs/cli-win32-arm64@1.9.4': + optional: true + + '@biomejs/cli-win32-x64@1.9.4': + optional: true + + '@electron/asar@3.2.14': + dependencies: + commander: 5.1.0 + glob: 7.2.3 + minimatch: 3.1.2 + + '@emmetio/abbreviation@2.3.3': + dependencies: + '@emmetio/scanner': 1.0.4 + + '@emmetio/css-abbreviation@2.1.8': + dependencies: + '@emmetio/scanner': 1.0.4 + + '@emmetio/css-parser@0.4.0': + dependencies: + '@emmetio/stream-reader': 2.2.0 + '@emmetio/stream-reader-utils': 0.1.0 + + '@emmetio/html-matcher@1.3.0': + dependencies: + '@emmetio/scanner': 1.0.4 + + '@emmetio/scanner@1.0.4': {} + + '@emmetio/stream-reader-utils@0.1.0': {} + + '@emmetio/stream-reader@2.2.0': {} + + '@emnapi/runtime@1.3.1': + dependencies: + tslib: 2.8.0 optional: true '@esbuild/aix-ppc64@0.21.5': optional: true - '@esbuild/android-arm64@0.19.12': + '@esbuild/aix-ppc64@0.23.1': optional: true '@esbuild/android-arm64@0.21.5': optional: true - '@esbuild/android-arm@0.19.12': + '@esbuild/android-arm64@0.23.1': optional: true '@esbuild/android-arm@0.21.5': optional: true - '@esbuild/android-x64@0.19.12': + '@esbuild/android-arm@0.23.1': optional: true '@esbuild/android-x64@0.21.5': optional: true - '@esbuild/darwin-arm64@0.19.12': + '@esbuild/android-x64@0.23.1': optional: true '@esbuild/darwin-arm64@0.21.5': optional: true - '@esbuild/darwin-x64@0.19.12': + '@esbuild/darwin-arm64@0.23.1': optional: true '@esbuild/darwin-x64@0.21.5': optional: true - '@esbuild/freebsd-arm64@0.19.12': + '@esbuild/darwin-x64@0.23.1': optional: true '@esbuild/freebsd-arm64@0.21.5': optional: true - '@esbuild/freebsd-x64@0.19.12': + '@esbuild/freebsd-arm64@0.23.1': optional: true '@esbuild/freebsd-x64@0.21.5': optional: true - '@esbuild/linux-arm64@0.19.12': + '@esbuild/freebsd-x64@0.23.1': optional: true '@esbuild/linux-arm64@0.21.5': optional: true - '@esbuild/linux-arm@0.19.12': + '@esbuild/linux-arm64@0.23.1': optional: true '@esbuild/linux-arm@0.21.5': optional: true - '@esbuild/linux-ia32@0.19.12': + '@esbuild/linux-arm@0.23.1': optional: true '@esbuild/linux-ia32@0.21.5': optional: true - '@esbuild/linux-loong64@0.19.12': + '@esbuild/linux-ia32@0.23.1': optional: true '@esbuild/linux-loong64@0.21.5': optional: true - '@esbuild/linux-mips64el@0.19.12': + '@esbuild/linux-loong64@0.23.1': optional: true '@esbuild/linux-mips64el@0.21.5': optional: true - '@esbuild/linux-ppc64@0.19.12': + '@esbuild/linux-mips64el@0.23.1': optional: true '@esbuild/linux-ppc64@0.21.5': optional: true - '@esbuild/linux-riscv64@0.19.12': + '@esbuild/linux-ppc64@0.23.1': optional: true '@esbuild/linux-riscv64@0.21.5': optional: true - '@esbuild/linux-s390x@0.19.12': + '@esbuild/linux-riscv64@0.23.1': optional: true '@esbuild/linux-s390x@0.21.5': optional: true - '@esbuild/linux-x64@0.19.12': + '@esbuild/linux-s390x@0.23.1': optional: true '@esbuild/linux-x64@0.21.5': optional: true - '@esbuild/netbsd-x64@0.19.12': + '@esbuild/linux-x64@0.23.1': optional: true '@esbuild/netbsd-x64@0.21.5': optional: true - '@esbuild/openbsd-x64@0.19.12': + '@esbuild/netbsd-x64@0.23.1': + optional: true + + '@esbuild/openbsd-arm64@0.23.1': optional: true '@esbuild/openbsd-x64@0.21.5': optional: true - '@esbuild/sunos-x64@0.19.12': + '@esbuild/openbsd-x64@0.23.1': optional: true '@esbuild/sunos-x64@0.21.5': optional: true - '@esbuild/win32-arm64@0.19.12': + '@esbuild/sunos-x64@0.23.1': optional: true '@esbuild/win32-arm64@0.21.5': optional: true - '@esbuild/win32-ia32@0.19.12': + '@esbuild/win32-arm64@0.23.1': optional: true '@esbuild/win32-ia32@0.21.5': optional: true - '@esbuild/win32-x64@0.19.12': + '@esbuild/win32-ia32@0.23.1': optional: true '@esbuild/win32-x64@0.21.5': optional: true - '@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)': - dependencies: - eslint: 8.57.0 - eslint-visitor-keys: 3.4.3 + '@esbuild/win32-x64@0.23.1': + optional: true - '@eslint-community/regexpp@4.11.0': {} + '@fastify/accept-negotiator@2.0.0': {} - '@eslint/eslintrc@2.1.4': + '@fastify/ajv-compiler@4.0.1': dependencies: - ajv: 6.12.6 - debug: 4.3.5 - espree: 9.6.1 - globals: 13.24.0 - ignore: 5.3.1 - import-fresh: 3.3.0 - js-yaml: 4.1.0 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color + ajv: 8.17.1 + ajv-formats: 3.0.1(ajv@8.17.1) + fast-uri: 3.0.3 - '@eslint/js@8.57.0': {} - - '@fastify/accept-negotiator@1.1.0': {} - - '@fastify/ajv-compiler@3.6.0': - dependencies: - ajv: 8.16.0 - ajv-formats: 2.1.1(ajv@8.16.0) - fast-uri: 2.4.0 + '@fastify/busboy@3.0.0': {} - '@fastify/compress@6.5.0': + '@fastify/compress@8.0.1': dependencies: - '@fastify/accept-negotiator': 1.1.0 - fastify-plugin: 4.5.1 - into-stream: 6.0.0 - mime-db: 1.52.0 + '@fastify/accept-negotiator': 2.0.0 + fastify-plugin: 5.0.1 + mime-db: 1.53.0 minipass: 7.1.2 peek-stream: 1.1.3 - pump: 3.0.0 + pump: 3.0.2 pumpify: 2.0.1 + readable-stream: 4.5.2 - '@fastify/cookie@9.3.1': - dependencies: - cookie-signature: 1.2.1 - fastify-plugin: 4.5.1 + '@fastify/deepmerge@2.0.0': {} + + '@fastify/error@4.0.0': {} - '@fastify/error@3.4.1': {} + '@fastify/fast-json-stringify-compiler@5.0.1': + dependencies: + fast-json-stringify: 6.0.0 - '@fastify/fast-json-stringify-compiler@4.3.0': + '@fastify/helmet@12.0.1': dependencies: - fast-json-stringify: 5.16.1 + fastify-plugin: 5.0.1 + helmet: 7.2.0 '@fastify/merge-json-schemas@0.1.1': dependencies: fast-deep-equal: 3.1.3 - '@fastify/send@2.1.0': + '@fastify/middie@9.0.2': + dependencies: + '@fastify/error': 4.0.0 + fastify-plugin: 5.0.1 + path-to-regexp: 8.2.0 + reusify: 1.0.4 + + '@fastify/multipart@9.0.1': + dependencies: + '@fastify/busboy': 3.0.0 + '@fastify/deepmerge': 2.0.0 + '@fastify/error': 4.0.0 + fastify-plugin: 5.0.1 + secure-json-parse: 3.0.0 + + '@fastify/send@3.1.1': dependencies: '@lukeed/ms': 2.0.2 escape-html: 1.0.3 @@ -4344,103 +4569,126 @@ snapshots: http-errors: 2.0.0 mime: 3.0.0 - '@fastify/static@6.12.0': + '@fastify/static@8.0.2': dependencies: - '@fastify/accept-negotiator': 1.1.0 - '@fastify/send': 2.1.0 + '@fastify/accept-negotiator': 2.0.0 + '@fastify/send': 3.1.1 content-disposition: 0.5.4 - fastify-plugin: 4.5.1 - glob: 8.1.0 - p-limit: 3.1.0 + fastify-plugin: 5.0.1 + fastq: 1.17.1 + glob: 11.0.0 '@gar/promisify@1.1.3': optional: true - '@humanwhocodes/config-array@0.11.14': + '@iconify-json/ph@1.2.1': dependencies: - '@humanwhocodes/object-schema': 2.0.3 - debug: 4.3.5 - minimatch: 3.1.2 + '@iconify/types': 2.0.0 + + '@iconify/tools@4.0.7': + dependencies: + '@iconify/types': 2.0.0 + '@iconify/utils': 2.1.33 + '@types/tar': 6.1.13 + axios: 1.7.7 + cheerio: 1.0.0 + domhandler: 5.0.3 + extract-zip: 2.0.1 + local-pkg: 0.5.0 + pathe: 1.1.2 + svgo: 3.3.2 + tar: 6.2.1 transitivePeerDependencies: + - debug - supports-color - '@humanwhocodes/module-importer@1.0.1': {} + '@iconify/types@2.0.0': {} - '@humanwhocodes/object-schema@2.0.3': {} + '@iconify/utils@2.1.33': + dependencies: + '@antfu/install-pkg': 0.4.1 + '@antfu/utils': 0.7.10 + '@iconify/types': 2.0.0 + debug: 4.3.7 + kolorist: 1.8.0 + local-pkg: 0.5.0 + mlly: 1.7.2 + transitivePeerDependencies: + - supports-color - '@img/sharp-darwin-arm64@0.33.4': + '@img/sharp-darwin-arm64@0.33.5': optionalDependencies: - '@img/sharp-libvips-darwin-arm64': 1.0.2 + '@img/sharp-libvips-darwin-arm64': 1.0.4 optional: true - '@img/sharp-darwin-x64@0.33.4': + '@img/sharp-darwin-x64@0.33.5': optionalDependencies: - '@img/sharp-libvips-darwin-x64': 1.0.2 + '@img/sharp-libvips-darwin-x64': 1.0.4 optional: true - '@img/sharp-libvips-darwin-arm64@1.0.2': + '@img/sharp-libvips-darwin-arm64@1.0.4': optional: true - '@img/sharp-libvips-darwin-x64@1.0.2': + '@img/sharp-libvips-darwin-x64@1.0.4': optional: true - '@img/sharp-libvips-linux-arm64@1.0.2': + '@img/sharp-libvips-linux-arm64@1.0.4': optional: true - '@img/sharp-libvips-linux-arm@1.0.2': + '@img/sharp-libvips-linux-arm@1.0.5': optional: true - '@img/sharp-libvips-linux-s390x@1.0.2': + '@img/sharp-libvips-linux-s390x@1.0.4': optional: true - '@img/sharp-libvips-linux-x64@1.0.2': + '@img/sharp-libvips-linux-x64@1.0.4': optional: true - '@img/sharp-libvips-linuxmusl-arm64@1.0.2': + '@img/sharp-libvips-linuxmusl-arm64@1.0.4': optional: true - '@img/sharp-libvips-linuxmusl-x64@1.0.2': + '@img/sharp-libvips-linuxmusl-x64@1.0.4': optional: true - '@img/sharp-linux-arm64@0.33.4': + '@img/sharp-linux-arm64@0.33.5': optionalDependencies: - '@img/sharp-libvips-linux-arm64': 1.0.2 + '@img/sharp-libvips-linux-arm64': 1.0.4 optional: true - '@img/sharp-linux-arm@0.33.4': + '@img/sharp-linux-arm@0.33.5': optionalDependencies: - '@img/sharp-libvips-linux-arm': 1.0.2 + '@img/sharp-libvips-linux-arm': 1.0.5 optional: true - '@img/sharp-linux-s390x@0.33.4': + '@img/sharp-linux-s390x@0.33.5': optionalDependencies: - '@img/sharp-libvips-linux-s390x': 1.0.2 + '@img/sharp-libvips-linux-s390x': 1.0.4 optional: true - '@img/sharp-linux-x64@0.33.4': + '@img/sharp-linux-x64@0.33.5': optionalDependencies: - '@img/sharp-libvips-linux-x64': 1.0.2 + '@img/sharp-libvips-linux-x64': 1.0.4 optional: true - '@img/sharp-linuxmusl-arm64@0.33.4': + '@img/sharp-linuxmusl-arm64@0.33.5': optionalDependencies: - '@img/sharp-libvips-linuxmusl-arm64': 1.0.2 + '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 optional: true - '@img/sharp-linuxmusl-x64@0.33.4': + '@img/sharp-linuxmusl-x64@0.33.5': optionalDependencies: - '@img/sharp-libvips-linuxmusl-x64': 1.0.2 + '@img/sharp-libvips-linuxmusl-x64': 1.0.4 optional: true - '@img/sharp-wasm32@0.33.4': + '@img/sharp-wasm32@0.33.5': dependencies: - '@emnapi/runtime': 1.2.0 + '@emnapi/runtime': 1.3.1 optional: true - '@img/sharp-win32-ia32@0.33.4': + '@img/sharp-win32-ia32@0.33.5': optional: true - '@img/sharp-win32-x64@0.33.4': + '@img/sharp-win32-x64@0.33.5': optional: true '@isaacs/cliui@8.0.2': @@ -4455,86 +4703,38 @@ snapshots: '@jridgewell/gen-mapping@0.3.5': dependencies: '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/sourcemap-codec': 1.5.0 '@jridgewell/trace-mapping': 0.3.25 '@jridgewell/resolve-uri@3.1.2': {} '@jridgewell/set-array@1.2.1': {} - '@jridgewell/sourcemap-codec@1.4.15': {} + '@jridgewell/source-map@0.3.6': + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + + '@jridgewell/sourcemap-codec@1.5.0': {} '@jridgewell/trace-mapping@0.3.25': dependencies: '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/sourcemap-codec': 1.5.0 '@lukeed/ms@2.0.2': {} - '@mdn/browser-compat-data@5.5.35': {} + '@mercuryworkshop/bare-mux@2.1.6': {} - '@mercuryworkshop/bare-mux@1.1.1': - dependencies: - '@types/uuid': 9.0.8 - uuid: 9.0.1 - - '@mercuryworkshop/epoxy-tls@2.0.0-3': {} - - '@mercuryworkshop/epoxy-transport@2.0.1(bufferutil@4.0.8)(typescript@5.5.2)(utf-8-validate@6.0.4)': - dependencies: - '@mercuryworkshop/epoxy-tls': 2.0.0-3 - esbuild-plugin-umd-wrapper: 2.0.0 - rollup: 4.18.0 - rollup-plugin-node-resolve: 5.2.0(rollup@4.18.0) - rollup-plugin-typescript2: 0.36.0(rollup@4.18.0)(typescript@5.5.2) - ws: 8.16.0(bufferutil@4.0.8)(utf-8-validate@6.0.4) - transitivePeerDependencies: - - bufferutil - - typescript - - utf-8-validate + '@mercuryworkshop/epoxy-tls@2.1.6-1': {} - '@mercuryworkshop/libcurl-transport@1.3.1(bufferutil@4.0.8)(typescript@5.5.2)(utf-8-validate@6.0.4)': + '@mercuryworkshop/epoxy-transport@2.1.13': dependencies: - esbuild-plugin-umd-wrapper: 2.0.0 - libcurl.js: 0.6.8 - rollup: 4.18.0 - rollup-plugin-node-resolve: 5.2.0(rollup@4.18.0) - rollup-plugin-typescript2: 0.36.0(rollup@4.18.0)(typescript@5.5.2) - ws: 8.16.0(bufferutil@4.0.8)(utf-8-validate@6.0.4) - transitivePeerDependencies: - - bufferutil - - typescript - - utf-8-validate - - '@nebula-services/dynamic@0.7.2-patch.2(bufferutil@4.0.8)(utf-8-validate@6.0.4)': - dependencies: - '@dynamic-pkg/mime': 1.0.1 - '@dynamic-pkg/mutation': 1.0.0 - '@fastify/compress': 6.5.0 - '@fastify/static': 6.12.0 - '@tomphttp/bare-client': 2.2.0-alpha - '@tomphttp/bare-server-node': 2.0.3(bufferutil@4.0.8)(utf-8-validate@6.0.4) - acorn: 8.12.0 - astring: 1.8.6 - chalk: 5.3.0 - cookie: 0.5.0 - crypto-js: 4.2.0 - domhandler: 5.0.3 - esbuild: 0.19.12 - fastify: 4.28.1 - git-commit-info: 2.0.2 - idb: 7.1.1 - open: 9.1.0 - parse5: 7.1.2 - path-browserify: 1.0.1 - set-cookie-parser: 2.6.0 - transitivePeerDependencies: - - bufferutil - - utf-8-validate + '@mercuryworkshop/epoxy-tls': 2.1.6-1 - '@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1': + '@mercuryworkshop/libcurl-transport@1.3.11': dependencies: - eslint-scope: 5.1.1 + libcurl.js: 0.6.17 '@nodelib/fs.scandir@2.1.5': dependencies: @@ -4551,7 +4751,7 @@ snapshots: '@npmcli/fs@1.1.1': dependencies: '@gar/promisify': 1.1.3 - semver: 7.6.2 + semver: 7.6.3 optional: true '@npmcli/move-file@1.1.2': @@ -4560,367 +4760,332 @@ snapshots: rimraf: 3.0.2 optional: true + '@oslojs/encoding@1.1.0': {} + '@pkgjs/parseargs@0.11.0': optional: true - '@preact/preset-vite@2.8.3(@babel/core@7.24.7)(preact@10.22.1)(vite@5.3.2(@types/node@20.14.9))': + '@playform/compress@0.1.6(@types/node@22.8.0)(rollup@4.24.0)(typescript@5.6.3)': dependencies: - '@babel/code-frame': 7.24.7 - '@babel/core': 7.24.7 - '@babel/plugin-transform-react-jsx': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-transform-react-jsx-development': 7.24.7(@babel/core@7.24.7) - '@prefresh/vite': 2.4.6(preact@10.22.1)(vite@5.3.2(@types/node@20.14.9)) - '@rollup/pluginutils': 4.2.1 - babel-plugin-transform-hook-names: 1.0.2(@babel/core@7.24.7) - debug: 4.3.5 - kolorist: 1.8.0 - magic-string: 0.30.5 - node-html-parser: 6.1.13 - resolve: 1.22.8 - source-map: 0.7.4 - stack-trace: 1.0.0-pre2 - vite: 5.3.2(@types/node@20.14.9) + '@playform/pipe': 0.1.1 + '@types/csso': 5.0.4 + '@types/html-minifier-terser': 7.0.2 + astro: 4.16.7(@types/node@22.8.0)(lightningcss@1.27.0)(rollup@4.24.0)(terser@5.36.0)(typescript@5.6.3) + commander: 12.1.0 + csso: 5.0.5 + deepmerge-ts: 7.1.3 + fast-glob: 3.3.2 + html-minifier-terser: 7.2.0 + kleur: 4.1.5 + lightningcss: 1.27.0 + sharp: 0.33.5 + svgo: 3.3.2 + terser: 5.36.0 transitivePeerDependencies: - - preact + - '@types/node' + - less + - rollup + - sass + - sass-embedded + - stylus + - sugarss - supports-color + - typescript - '@prefresh/babel-plugin@0.5.1': {} + '@playform/pipe@0.1.1': + dependencies: + '@types/node': 22.5.0 + deepmerge-ts: 7.1.0 + fast-glob: 3.3.2 - '@prefresh/core@1.5.2(preact@10.22.1)': + '@rollup/pluginutils@5.1.3(rollup@4.24.0)': dependencies: - preact: 10.22.1 + '@types/estree': 1.0.6 + estree-walker: 2.0.2 + picomatch: 4.0.2 + optionalDependencies: + rollup: 4.24.0 - '@prefresh/utils@1.2.0': {} + '@rollup/rollup-android-arm-eabi@4.24.0': + optional: true - '@prefresh/vite@2.4.6(preact@10.22.1)(vite@5.3.2(@types/node@20.14.9))': - dependencies: - '@babel/core': 7.24.7 - '@prefresh/babel-plugin': 0.5.1 - '@prefresh/core': 1.5.2(preact@10.22.1) - '@prefresh/utils': 1.2.0 - '@rollup/pluginutils': 4.2.1 - preact: 10.22.1 - vite: 5.3.2(@types/node@20.14.9) - transitivePeerDependencies: - - supports-color - - '@rollup/pluginutils@4.2.1': - dependencies: - estree-walker: 2.0.2 - picomatch: 2.3.1 - - '@rollup/rollup-android-arm-eabi@4.18.0': - optional: true - - '@rollup/rollup-android-arm64@4.18.0': + '@rollup/rollup-android-arm64@4.24.0': optional: true - '@rollup/rollup-darwin-arm64@4.18.0': + '@rollup/rollup-darwin-arm64@4.24.0': optional: true - '@rollup/rollup-darwin-x64@4.18.0': + '@rollup/rollup-darwin-x64@4.24.0': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.18.0': + '@rollup/rollup-linux-arm-gnueabihf@4.24.0': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.18.0': + '@rollup/rollup-linux-arm-musleabihf@4.24.0': optional: true - '@rollup/rollup-linux-arm64-gnu@4.18.0': + '@rollup/rollup-linux-arm64-gnu@4.24.0': optional: true - '@rollup/rollup-linux-arm64-musl@4.18.0': + '@rollup/rollup-linux-arm64-musl@4.24.0': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.18.0': + '@rollup/rollup-linux-powerpc64le-gnu@4.24.0': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.18.0': + '@rollup/rollup-linux-riscv64-gnu@4.24.0': optional: true - '@rollup/rollup-linux-s390x-gnu@4.18.0': + '@rollup/rollup-linux-s390x-gnu@4.24.0': optional: true - '@rollup/rollup-linux-x64-gnu@4.18.0': + '@rollup/rollup-linux-x64-gnu@4.24.0': optional: true - '@rollup/rollup-linux-x64-musl@4.18.0': + '@rollup/rollup-linux-x64-musl@4.24.0': optional: true - '@rollup/rollup-win32-arm64-msvc@4.18.0': + '@rollup/rollup-win32-arm64-msvc@4.24.0': optional: true - '@rollup/rollup-win32-ia32-msvc@4.18.0': + '@rollup/rollup-win32-ia32-msvc@4.24.0': optional: true - '@rollup/rollup-win32-x64-msvc@4.18.0': + '@rollup/rollup-win32-x64-msvc@4.24.0': optional: true - '@titaniumnetwork-dev/ultraviolet@3.1.2': {} + '@rubynetwork/rammerhead-browser@1.0.9': {} - '@tomphttp/bare-client@2.2.0-alpha': {} + '@rubynetwork/rammerhead@1.3.5(bufferutil@4.0.8)(utf-8-validate@6.0.4)': + dependencies: + '@rubynetwork/rh': 1.2.74(bufferutil@4.0.8)(utf-8-validate@6.0.4) + commander: 12.1.0 + picocolors: 1.1.1 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate - '@tomphttp/bare-server-node@2.0.3(bufferutil@4.0.8)(utf-8-validate@6.0.4)': + '@rubynetwork/rh@1.2.74(bufferutil@4.0.8)(utf-8-validate@6.0.4)': dependencies: async-exit-hook: 2.0.1 - commander: 10.0.1 - dotenv: 16.4.5 - http-errors: 2.0.0 - ipaddr.js: 2.2.0 - source-map-support: 0.5.21 - ws: 8.17.1(bufferutil@4.0.8)(utf-8-validate@6.0.4) + cookie: 0.7.2 + lru-cache: 7.18.3 + mime: 2.6.0 + sticky-session-custom: 1.2.1 + testcafe-hammerhead: 31.7.2(bufferutil@4.0.8)(utf-8-validate@6.0.4) + uglify-js: 3.19.3 + uuid: 8.3.2 + ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@6.0.4) transitivePeerDependencies: - bufferutil + - supports-color - utf-8-validate - '@tootallnate/once@1.1.2': - optional: true - - '@tsparticles/basic@3.4.0': + '@shikijs/core@1.22.1': dependencies: - '@tsparticles/engine': 3.4.0 - '@tsparticles/move-base': 3.4.0 - '@tsparticles/shape-circle': 3.4.0 - '@tsparticles/updater-color': 3.4.0 - '@tsparticles/updater-opacity': 3.4.0 - '@tsparticles/updater-out-modes': 3.4.0 - '@tsparticles/updater-size': 3.4.0 - - '@tsparticles/engine@3.4.0': {} + '@shikijs/engine-javascript': 1.22.1 + '@shikijs/engine-oniguruma': 1.22.1 + '@shikijs/types': 1.22.1 + '@shikijs/vscode-textmate': 9.3.0 + '@types/hast': 3.0.4 + hast-util-to-html: 9.0.3 - '@tsparticles/interaction-external-attract@3.4.0': + '@shikijs/engine-javascript@1.22.1': dependencies: - '@tsparticles/engine': 3.4.0 + '@shikijs/types': 1.22.1 + '@shikijs/vscode-textmate': 9.3.0 + oniguruma-to-js: 0.4.3 - '@tsparticles/interaction-external-bounce@3.4.0': + '@shikijs/engine-oniguruma@1.22.1': dependencies: - '@tsparticles/engine': 3.4.0 + '@shikijs/types': 1.22.1 + '@shikijs/vscode-textmate': 9.3.0 - '@tsparticles/interaction-external-bubble@3.4.0': + '@shikijs/types@1.22.1': dependencies: - '@tsparticles/engine': 3.4.0 + '@shikijs/vscode-textmate': 9.3.0 + '@types/hast': 3.0.4 - '@tsparticles/interaction-external-connect@3.4.0': - dependencies: - '@tsparticles/engine': 3.4.0 + '@shikijs/vscode-textmate@9.3.0': {} - '@tsparticles/interaction-external-grab@3.4.0': + '@svelte-drama/suspense@0.5.1(svelte@4.2.19)': dependencies: - '@tsparticles/engine': 3.4.0 + svelte: 4.2.19 - '@tsparticles/interaction-external-pause@3.4.0': + '@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.10(@types/node@22.8.0)(lightningcss@1.27.0)(terser@5.36.0)))(svelte@4.2.19)(vite@5.4.10(@types/node@22.8.0)(lightningcss@1.27.0)(terser@5.36.0))': dependencies: - '@tsparticles/engine': 3.4.0 + '@sveltejs/vite-plugin-svelte': 3.1.2(svelte@4.2.19)(vite@5.4.10(@types/node@22.8.0)(lightningcss@1.27.0)(terser@5.36.0)) + debug: 4.3.7 + svelte: 4.2.19 + vite: 5.4.10(@types/node@22.8.0)(lightningcss@1.27.0)(terser@5.36.0) + transitivePeerDependencies: + - supports-color - '@tsparticles/interaction-external-push@3.4.0': + '@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.10(@types/node@22.8.0)(lightningcss@1.27.0)(terser@5.36.0))': dependencies: - '@tsparticles/engine': 3.4.0 + '@sveltejs/vite-plugin-svelte-inspector': 2.1.0(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.10(@types/node@22.8.0)(lightningcss@1.27.0)(terser@5.36.0)))(svelte@4.2.19)(vite@5.4.10(@types/node@22.8.0)(lightningcss@1.27.0)(terser@5.36.0)) + debug: 4.3.7 + deepmerge: 4.3.1 + kleur: 4.1.5 + magic-string: 0.30.12 + svelte: 4.2.19 + svelte-hmr: 0.16.0(svelte@4.2.19) + vite: 5.4.10(@types/node@22.8.0)(lightningcss@1.27.0)(terser@5.36.0) + vitefu: 0.2.5(vite@5.4.10(@types/node@22.8.0)(lightningcss@1.27.0)(terser@5.36.0)) + transitivePeerDependencies: + - supports-color - '@tsparticles/interaction-external-remove@3.4.0': - dependencies: - '@tsparticles/engine': 3.4.0 + '@titaniumnetwork-dev/ultraviolet@3.2.7': {} - '@tsparticles/interaction-external-repulse@3.4.0': - dependencies: - '@tsparticles/engine': 3.4.0 + '@tootallnate/once@1.1.2': + optional: true - '@tsparticles/interaction-external-slow@3.4.0': - dependencies: - '@tsparticles/engine': 3.4.0 + '@trysound/sax@0.2.0': {} - '@tsparticles/interaction-particles-attract@3.4.0': + '@types/babel__core@7.20.5': dependencies: - '@tsparticles/engine': 3.4.0 + '@babel/parser': 7.26.0 + '@babel/types': 7.26.0 + '@types/babel__generator': 7.6.8 + '@types/babel__template': 7.4.4 + '@types/babel__traverse': 7.20.6 - '@tsparticles/interaction-particles-collisions@3.4.0': + '@types/babel__generator@7.6.8': dependencies: - '@tsparticles/engine': 3.4.0 + '@babel/types': 7.26.0 - '@tsparticles/interaction-particles-links@3.4.0': + '@types/babel__template@7.4.4': dependencies: - '@tsparticles/engine': 3.4.0 + '@babel/parser': 7.26.0 + '@babel/types': 7.26.0 - '@tsparticles/move-base@3.4.0': + '@types/babel__traverse@7.20.6': dependencies: - '@tsparticles/engine': 3.4.0 + '@babel/types': 7.26.0 - '@tsparticles/move-parallax@3.4.0': - dependencies: - '@tsparticles/engine': 3.4.0 + '@types/bluebird@3.5.42': {} - '@tsparticles/plugin-easing-quad@3.4.0': + '@types/continuation-local-storage@3.2.7': dependencies: - '@tsparticles/engine': 3.4.0 + '@types/node': 22.8.0 - '@tsparticles/react@3.0.0(@tsparticles/engine@3.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@tsparticles/engine': 3.4.0 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + '@types/cookie@0.6.0': {} - '@tsparticles/shape-circle@3.4.0': - dependencies: - '@tsparticles/engine': 3.4.0 + '@types/css-tree@2.3.8': {} - '@tsparticles/shape-emoji@3.4.0': + '@types/csso@5.0.4': dependencies: - '@tsparticles/engine': 3.4.0 + '@types/css-tree': 2.3.8 - '@tsparticles/shape-image@3.4.0': + '@types/debug@4.1.12': dependencies: - '@tsparticles/engine': 3.4.0 + '@types/ms': 0.7.34 - '@tsparticles/shape-line@3.4.0': - dependencies: - '@tsparticles/engine': 3.4.0 + '@types/estree@0.0.46': {} - '@tsparticles/shape-polygon@3.4.0': - dependencies: - '@tsparticles/engine': 3.4.0 + '@types/estree@1.0.6': {} - '@tsparticles/shape-square@3.4.0': + '@types/hast@3.0.4': dependencies: - '@tsparticles/engine': 3.4.0 + '@types/unist': 3.0.3 - '@tsparticles/shape-star@3.4.0': - dependencies: - '@tsparticles/engine': 3.4.0 + '@types/html-minifier-terser@7.0.2': {} - '@tsparticles/slim@3.4.0': - dependencies: - '@tsparticles/basic': 3.4.0 - '@tsparticles/engine': 3.4.0 - '@tsparticles/interaction-external-attract': 3.4.0 - '@tsparticles/interaction-external-bounce': 3.4.0 - '@tsparticles/interaction-external-bubble': 3.4.0 - '@tsparticles/interaction-external-connect': 3.4.0 - '@tsparticles/interaction-external-grab': 3.4.0 - '@tsparticles/interaction-external-pause': 3.4.0 - '@tsparticles/interaction-external-push': 3.4.0 - '@tsparticles/interaction-external-remove': 3.4.0 - '@tsparticles/interaction-external-repulse': 3.4.0 - '@tsparticles/interaction-external-slow': 3.4.0 - '@tsparticles/interaction-particles-attract': 3.4.0 - '@tsparticles/interaction-particles-collisions': 3.4.0 - '@tsparticles/interaction-particles-links': 3.4.0 - '@tsparticles/move-parallax': 3.4.0 - '@tsparticles/plugin-easing-quad': 3.4.0 - '@tsparticles/shape-emoji': 3.4.0 - '@tsparticles/shape-image': 3.4.0 - '@tsparticles/shape-line': 3.4.0 - '@tsparticles/shape-polygon': 3.4.0 - '@tsparticles/shape-square': 3.4.0 - '@tsparticles/shape-star': 3.4.0 - '@tsparticles/updater-life': 3.4.0 - '@tsparticles/updater-rotate': 3.4.0 - '@tsparticles/updater-stroke-color': 3.4.0 + '@types/lodash@4.17.12': {} - '@tsparticles/updater-color@3.4.0': + '@types/mdast@4.0.4': dependencies: - '@tsparticles/engine': 3.4.0 + '@types/unist': 3.0.3 - '@tsparticles/updater-life@3.4.0': - dependencies: - '@tsparticles/engine': 3.4.0 + '@types/ms@0.7.34': {} - '@tsparticles/updater-opacity@3.4.0': + '@types/nlcst@2.0.3': dependencies: - '@tsparticles/engine': 3.4.0 + '@types/unist': 3.0.3 - '@tsparticles/updater-out-modes@3.4.0': + '@types/node@22.5.0': dependencies: - '@tsparticles/engine': 3.4.0 + undici-types: 6.19.8 - '@tsparticles/updater-rotate@3.4.0': + '@types/node@22.8.0': dependencies: - '@tsparticles/engine': 3.4.0 + undici-types: 6.19.8 - '@tsparticles/updater-size@3.4.0': + '@types/sequelize@4.28.20': dependencies: - '@tsparticles/engine': 3.4.0 + '@types/bluebird': 3.5.42 + '@types/continuation-local-storage': 3.2.7 + '@types/lodash': 4.17.12 + '@types/validator': 13.12.2 - '@tsparticles/updater-stroke-color@3.4.0': + '@types/tar@6.1.13': dependencies: - '@tsparticles/engine': 3.4.0 + '@types/node': 22.8.0 + minipass: 4.2.8 - '@types/estree@0.0.46': {} + '@types/tinycolor2@1.4.6': {} + + '@types/unist@3.0.3': {} - '@types/estree@1.0.5': {} + '@types/validator@13.12.2': {} - '@types/glob@7.2.0': + '@types/yauzl@2.10.3': dependencies: - '@types/minimatch': 5.1.2 - '@types/node': 20.14.9 + '@types/node': 22.8.0 optional: true - '@types/json-schema@7.0.15': {} - - '@types/minimatch@5.1.2': - optional: true + '@ungap/structured-clone@1.2.0': {} - '@types/node@20.14.9': + '@volar/kit@2.4.7(typescript@5.6.3)': dependencies: - undici-types: 5.26.5 + '@volar/language-service': 2.4.7 + '@volar/typescript': 2.4.7 + typesafe-path: 0.2.2 + typescript: 5.6.3 + vscode-languageserver-textdocument: 1.0.12 + vscode-uri: 3.0.8 - '@types/resolve@0.0.8': + '@volar/language-core@2.4.7': dependencies: - '@types/node': 20.14.9 - - '@types/semver@7.5.8': {} + '@volar/source-map': 2.4.7 - '@types/uuid@9.0.8': {} - - '@typescript-eslint/experimental-utils@5.62.0(eslint@8.57.0)(typescript@5.5.2)': + '@volar/language-server@2.4.7': dependencies: - '@typescript-eslint/utils': 5.62.0(eslint@8.57.0)(typescript@5.5.2) - eslint: 8.57.0 - transitivePeerDependencies: - - supports-color - - typescript + '@volar/language-core': 2.4.7 + '@volar/language-service': 2.4.7 + '@volar/typescript': 2.4.7 + path-browserify: 1.0.1 + request-light: 0.7.0 + vscode-languageserver: 9.0.1 + vscode-languageserver-protocol: 3.17.5 + vscode-languageserver-textdocument: 1.0.12 + vscode-uri: 3.0.8 - '@typescript-eslint/scope-manager@5.62.0': + '@volar/language-service@2.4.7': dependencies: - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/visitor-keys': 5.62.0 + '@volar/language-core': 2.4.7 + vscode-languageserver-protocol: 3.17.5 + vscode-languageserver-textdocument: 1.0.12 + vscode-uri: 3.0.8 - '@typescript-eslint/types@5.62.0': {} + '@volar/source-map@2.4.7': {} - '@typescript-eslint/typescript-estree@5.62.0(typescript@5.5.2)': + '@volar/typescript@2.4.7': dependencies: - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/visitor-keys': 5.62.0 - debug: 4.3.5 - globby: 11.1.0 - is-glob: 4.0.3 - semver: 7.6.2 - tsutils: 3.21.0(typescript@5.5.2) - optionalDependencies: - typescript: 5.5.2 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/utils@5.62.0(eslint@8.57.0)(typescript@5.5.2)': - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@types/json-schema': 7.0.15 - '@types/semver': 7.5.8 - '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.5.2) - eslint: 8.57.0 - eslint-scope: 5.1.1 - semver: 7.6.2 - transitivePeerDependencies: - - supports-color - - typescript + '@volar/language-core': 2.4.7 + path-browserify: 1.0.1 + vscode-uri: 3.0.8 - '@typescript-eslint/visitor-keys@5.62.0': + '@vscode/emmet-helper@2.9.3': dependencies: - '@typescript-eslint/types': 5.62.0 - eslint-visitor-keys: 3.4.3 + emmet: 2.4.11 + jsonc-parser: 2.3.1 + vscode-languageserver-textdocument: 1.0.12 + vscode-languageserver-types: 3.17.5 + vscode-uri: 2.1.2 - '@ungap/structured-clone@1.2.0': {} + '@vscode/l10n@0.0.18': {} abbrev@1.1.1: optional: true @@ -4931,24 +5096,15 @@ snapshots: abstract-logging@2.0.1: {} - accepts@1.3.8: - dependencies: - mime-types: 2.1.35 - negotiator: 0.6.3 - - acorn-hammerhead@0.6.1: + acorn-hammerhead@0.6.2: dependencies: '@types/estree': 0.0.46 - acorn-jsx@5.3.2(acorn@8.12.0): - dependencies: - acorn: 8.12.0 - - acorn@8.12.0: {} + acorn@8.13.0: {} agent-base@6.0.2: dependencies: - debug: 4.3.5 + debug: 4.3.7 transitivePeerDependencies: - supports-color optional: true @@ -4964,37 +5120,24 @@ snapshots: indent-string: 4.0.0 optional: true - ajv-formats@2.1.1(ajv@8.16.0): - optionalDependencies: - ajv: 8.16.0 - - ajv-formats@3.0.1(ajv@8.16.0): + ajv-formats@3.0.1(ajv@8.17.1): optionalDependencies: - ajv: 8.16.0 + ajv: 8.17.1 - ajv@6.12.6: - dependencies: - fast-deep-equal: 3.1.3 - fast-json-stable-stringify: 2.1.0 - json-schema-traverse: 0.4.1 - uri-js: 4.4.1 - - ajv@8.16.0: + ajv@8.17.1: dependencies: fast-deep-equal: 3.1.3 + fast-uri: 3.0.3 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 - uri-js: 4.4.1 - amdefine@1.0.1: {} + ansi-align@3.0.1: + dependencies: + string-width: 4.2.3 ansi-regex@5.0.1: {} - ansi-regex@6.0.1: {} - - ansi-styles@3.2.1: - dependencies: - color-convert: 1.9.3 + ansi-regex@6.1.0: {} ansi-styles@4.3.0: dependencies: @@ -5020,125 +5163,142 @@ snapshots: arg@5.0.2: {} - argparse@2.0.1: {} - - array-buffer-byte-length@1.0.1: - dependencies: - call-bind: 1.0.7 - is-array-buffer: 3.0.4 - - array-includes@3.1.8: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - es-object-atoms: 1.0.0 - get-intrinsic: 1.2.4 - is-string: 1.0.7 - - array-union@2.1.0: {} - - array.prototype.findlast@1.2.5: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - es-errors: 1.3.0 - es-object-atoms: 1.0.0 - es-shim-unscopables: 1.0.2 - - array.prototype.flat@1.3.2: + argparse@1.0.10: dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - es-shim-unscopables: 1.0.2 + sprintf-js: 1.0.3 - array.prototype.flatmap@1.3.2: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - es-shim-unscopables: 1.0.2 + argparse@2.0.1: {} - array.prototype.toreversed@1.1.2: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - es-shim-unscopables: 1.0.2 + aria-query@5.3.2: {} - array.prototype.tosorted@1.1.4: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - es-errors: 1.3.0 - es-shim-unscopables: 1.0.2 + array-iterate@2.0.1: {} - arraybuffer.prototype.slice@1.0.3: + astro-icon@1.1.1: dependencies: - array-buffer-byte-length: 1.0.1 - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - es-errors: 1.3.0 - get-intrinsic: 1.2.4 - is-array-buffer: 3.0.4 - is-shared-array-buffer: 1.0.3 + '@iconify/tools': 4.0.7 + '@iconify/types': 2.0.0 + '@iconify/utils': 2.1.33 + transitivePeerDependencies: + - debug + - supports-color - asar@2.1.0: - dependencies: - chromium-pickle-js: 0.2.0 - commander: 2.20.3 - cuint: 0.2.2 - glob: 7.2.3 - minimatch: 3.1.2 - mkdirp: 0.5.6 - tmp-promise: 1.1.0 + astro@4.16.7(@types/node@22.8.0)(lightningcss@1.27.0)(rollup@4.24.0)(terser@5.36.0)(typescript@5.6.3): + dependencies: + '@astrojs/compiler': 2.10.3 + '@astrojs/internal-helpers': 0.4.1 + '@astrojs/markdown-remark': 5.3.0 + '@astrojs/telemetry': 3.1.0 + '@babel/core': 7.26.0 + '@babel/plugin-transform-react-jsx': 7.25.9(@babel/core@7.26.0) + '@babel/types': 7.26.0 + '@oslojs/encoding': 1.1.0 + '@rollup/pluginutils': 5.1.3(rollup@4.24.0) + '@types/babel__core': 7.20.5 + '@types/cookie': 0.6.0 + acorn: 8.13.0 + aria-query: 5.3.2 + axobject-query: 4.1.0 + boxen: 8.0.1 + ci-info: 4.0.0 + clsx: 2.1.1 + common-ancestor-path: 1.0.1 + cookie: 0.7.2 + cssesc: 3.0.0 + debug: 4.3.7 + deterministic-object-hash: 2.0.2 + devalue: 5.1.1 + diff: 5.2.0 + dlv: 1.1.3 + dset: 3.1.4 + es-module-lexer: 1.5.4 + esbuild: 0.21.5 + estree-walker: 3.0.3 + fast-glob: 3.3.2 + flattie: 1.1.1 + github-slugger: 2.0.0 + gray-matter: 4.0.3 + html-escaper: 3.0.3 + http-cache-semantics: 4.1.1 + js-yaml: 4.1.0 + kleur: 4.1.5 + magic-string: 0.30.12 + magicast: 0.3.5 + micromatch: 4.0.8 + mrmime: 2.0.0 + neotraverse: 0.6.18 + ora: 8.1.0 + p-limit: 6.1.0 + p-queue: 8.0.1 + preferred-pm: 4.0.0 + prompts: 2.4.2 + rehype: 13.0.2 + semver: 7.6.3 + shiki: 1.22.1 + tinyexec: 0.3.1 + tsconfck: 3.1.4(typescript@5.6.3) + unist-util-visit: 5.0.0 + vfile: 6.0.3 + vite: 5.4.10(@types/node@22.8.0)(lightningcss@1.27.0)(terser@5.36.0) + vitefu: 1.0.3(vite@5.4.10(@types/node@22.8.0)(lightningcss@1.27.0)(terser@5.36.0)) + which-pm: 3.0.0 + xxhash-wasm: 1.0.2 + yargs-parser: 21.1.1 + zod: 3.23.8 + zod-to-json-schema: 3.23.5(zod@3.23.8) + zod-to-ts: 1.2.0(typescript@5.6.3)(zod@3.23.8) optionalDependencies: - '@types/glob': 7.2.0 - - ast-metadata-inferer@0.8.0: - dependencies: - '@mdn/browser-compat-data': 5.5.35 - - astring@1.8.6: {} + sharp: 0.33.5 + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - rollup + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - typescript async-exit-hook@2.0.1: {} - atob@2.1.2: {} + asynckit@0.4.0: {} atomic-sleep@1.0.0: {} - autoprefixer@10.4.19(postcss@8.4.39): + autoprefixer@10.4.20(postcss@8.4.47): dependencies: - browserslist: 4.23.1 - caniuse-lite: 1.0.30001639 + browserslist: 4.24.2 + caniuse-lite: 1.0.30001669 fraction.js: 4.3.7 normalize-range: 0.1.2 - picocolors: 1.0.1 - postcss: 8.4.39 + picocolors: 1.1.1 + postcss: 8.4.47 postcss-value-parser: 4.2.0 - available-typed-arrays@1.0.7: + avvio@9.1.0: dependencies: - possible-typed-array-names: 1.0.0 - - avvio@8.3.2: - dependencies: - '@fastify/error': 3.4.1 + '@fastify/error': 4.0.0 fastq: 1.17.1 - babel-plugin-transform-hook-names@1.0.2(@babel/core@7.24.7): + axios@1.7.7: dependencies: - '@babel/core': 7.24.7 + follow-redirects: 1.15.9 + form-data: 4.0.1 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + + axobject-query@4.1.0: {} + + bail@2.0.2: {} balanced-match@1.0.2: {} - base64-js@1.5.1: {} + base-64@1.0.0: {} - big-integer@1.6.52: {} + base64-js@1.5.1: {} binary-extensions@2.3.0: {} @@ -5152,15 +5312,20 @@ snapshots: inherits: 2.0.4 readable-stream: 3.6.2 - bluebird@3.7.2: {} - boolbase@1.0.0: {} bowser@1.6.0: {} - bplist-parser@0.2.0: + boxen@8.0.1: dependencies: - big-integer: 1.6.52 + ansi-align: 3.0.1 + camelcase: 8.0.0 + chalk: 5.3.0 + cli-boxes: 3.0.0 + string-width: 7.2.0 + type-fest: 4.26.1 + widest-line: 5.0.0 + wrap-ansi: 9.0.0 brace-expansion@1.1.11: dependencies: @@ -5175,12 +5340,14 @@ snapshots: dependencies: fill-range: 7.1.1 - browserslist@4.23.1: + browserslist@4.24.2: dependencies: - caniuse-lite: 1.0.30001639 - electron-to-chromium: 1.4.815 - node-releases: 2.0.14 - update-browserslist-db: 1.0.16(browserslist@4.23.1) + caniuse-lite: 1.0.30001669 + electron-to-chromium: 1.5.46 + node-releases: 2.0.18 + update-browserslist-db: 1.1.1(browserslist@4.24.2) + + buffer-crc32@0.2.13: {} buffer-from@1.1.2: {} @@ -5196,15 +5363,7 @@ snapshots: bufferutil@4.0.8: dependencies: - node-gyp-build: 4.8.1 - - builtin-modules@3.3.0: {} - - bundle-name@3.0.0: - dependencies: - run-applescript: 5.0.0 - - bytes@3.0.0: {} + node-gyp-build: 4.8.2 cacache@15.3.0: dependencies: @@ -5230,27 +5389,20 @@ snapshots: - bluebird optional: true - call-bind@1.0.7: - dependencies: - es-define-property: 1.0.0 - es-errors: 1.3.0 - function-bind: 1.1.2 - get-intrinsic: 1.2.4 - set-function-length: 1.2.2 - callsite@1.0.0: {} - callsites@3.1.0: {} + camel-case@4.1.2: + dependencies: + pascal-case: 3.1.2 + tslib: 2.8.0 camelcase-css@2.0.1: {} - caniuse-lite@1.0.30001639: {} + camelcase@8.0.0: {} - chalk@2.4.2: - dependencies: - ansi-styles: 3.2.1 - escape-string-regexp: 1.0.5 - supports-color: 5.5.0 + caniuse-lite@1.0.30001669: {} + + ccount@2.0.1: {} chalk@4.1.2: dependencies: @@ -5259,6 +5411,35 @@ snapshots: chalk@5.3.0: {} + character-entities-html4@2.1.0: {} + + character-entities-legacy@3.0.0: {} + + character-entities@2.0.2: {} + + cheerio-select@2.1.0: + dependencies: + boolbase: 1.0.0 + css-select: 5.1.0 + css-what: 6.1.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.1.0 + + cheerio@1.0.0: + dependencies: + cheerio-select: 2.1.0 + dom-serializer: 2.0.0 + domhandler: 5.0.3 + domutils: 3.1.0 + encoding-sniffer: 0.2.0 + htmlparser2: 9.1.0 + parse5: 7.2.0 + parse5-htmlparser2-tree-adapter: 7.1.0 + parse5-parser-stream: 7.1.2 + undici: 6.20.1 + whatwg-mimetype: 4.0.0 + chokidar@3.6.0: dependencies: anymatch: 3.1.3 @@ -5275,31 +5456,43 @@ snapshots: chownr@2.0.0: {} - chromium-pickle-js@0.2.0: {} + ci-info@4.0.0: {} - classnames@2.5.1: {} + clean-css@5.3.3: + dependencies: + source-map: 0.6.1 clean-stack@2.2.0: optional: true + cli-boxes@3.0.0: {} + + cli-cursor@5.0.0: + dependencies: + restore-cursor: 5.1.0 + + cli-spinners@2.9.2: {} + cliui@8.0.1: dependencies: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 7.0.0 - clsx@1.2.1: {} + clsx@2.1.1: {} - color-convert@1.9.3: + code-red@1.0.4: dependencies: - color-name: 1.1.3 + '@jridgewell/sourcemap-codec': 1.5.0 + '@types/estree': 1.0.6 + acorn: 8.13.0 + estree-walker: 3.0.3 + periscopic: 3.1.0 color-convert@2.0.1: dependencies: color-name: 1.1.4 - color-name@1.1.3: {} - color-name@1.1.4: {} color-string@1.9.1: @@ -5315,29 +5508,25 @@ snapshots: color-convert: 2.0.1 color-string: 1.9.1 + combined-stream@1.0.8: + dependencies: + delayed-stream: 1.0.0 + + comma-separated-tokens@2.0.3: {} + commander@10.0.1: {} + commander@12.1.0: {} + commander@2.20.3: {} commander@4.1.1: {} - commondir@1.0.1: {} + commander@5.1.0: {} - compressible@2.0.18: - dependencies: - mime-db: 1.52.0 + commander@7.2.0: {} - compression@1.7.4: - dependencies: - accepts: 1.3.8 - bytes: 3.0.0 - compressible: 2.0.18 - debug: 2.6.9 - on-headers: 1.0.2 - safe-buffer: 5.1.2 - vary: 1.1.2 - transitivePeerDependencies: - - supports-color + common-ancestor-path@1.0.1: {} concat-map@0.0.1: {} @@ -5353,6 +5542,8 @@ snapshots: tree-kill: 1.2.2 yargs: 17.7.2 + confbox@0.1.8: {} + console-control-strings@1.1.0: optional: true @@ -5362,37 +5553,18 @@ snapshots: convert-source-map@2.0.0: {} - cookie-parser@1.4.6: - dependencies: - cookie: 0.4.1 - cookie-signature: 1.0.6 - - cookie-signature@1.0.6: {} - - cookie-signature@1.2.1: {} - - cookie@0.4.1: {} + cookie@0.7.2: {} - cookie@0.5.0: {} - - cookie@0.6.0: {} + cookie@1.0.1: {} core-util-is@1.0.3: {} - cross-spawn@5.1.0: - dependencies: - lru-cache: 4.1.5 - shebang-command: 1.2.0 - which: 1.3.1 - cross-spawn@7.0.3: dependencies: path-key: 3.1.1 shebang-command: 2.0.0 which: 2.0.2 - crypto-js@4.2.0: {} - crypto-md5@1.0.0: {} css-select@5.1.0: @@ -5403,40 +5575,27 @@ snapshots: domutils: 3.1.0 nth-check: 2.1.1 - css-what@6.1.0: {} - - css@2.2.3: + css-tree@2.2.1: dependencies: - inherits: 2.0.4 - source-map: 0.1.43 - source-map-resolve: 0.5.3 - urix: 0.1.0 - - cssesc@3.0.0: {} - - cuint@0.2.2: {} + mdn-data: 2.0.28 + source-map-js: 1.2.1 - data-view-buffer@1.0.1: + css-tree@2.3.1: dependencies: - call-bind: 1.0.7 - es-errors: 1.3.0 - is-data-view: 1.0.1 + mdn-data: 2.0.30 + source-map-js: 1.2.1 - data-view-byte-length@1.0.1: - dependencies: - call-bind: 1.0.7 - es-errors: 1.3.0 - is-data-view: 1.0.1 + css-what@6.1.0: {} - data-view-byte-offset@1.0.0: + cssesc@3.0.0: {} + + csso@5.0.5: dependencies: - call-bind: 1.0.7 - es-errors: 1.3.0 - is-data-view: 1.0.1 + css-tree: 2.2.1 date-fns@2.30.0: dependencies: - '@babel/runtime': 7.24.7 + '@babel/runtime': 7.26.0 debug@2.6.9: dependencies: @@ -5446,68 +5605,63 @@ snapshots: dependencies: ms: 2.1.2 - debug@4.3.5: + debug@4.3.7: dependencies: - ms: 2.1.2 + ms: 2.1.3 - decode-uri-component@0.2.2: {} + decode-named-character-reference@1.0.2: + dependencies: + character-entities: 2.0.2 decompress-response@6.0.0: dependencies: mimic-response: 3.1.0 - deep-extend@0.6.0: {} - - deep-is@0.1.4: {} + dedent-js@1.0.1: {} - default-browser-id@3.0.0: - dependencies: - bplist-parser: 0.2.0 - untildify: 4.0.0 + deep-extend@0.6.0: {} - default-browser@4.0.0: - dependencies: - bundle-name: 3.0.0 - default-browser-id: 3.0.0 - execa: 7.2.0 - titleize: 3.0.0 + deepmerge-ts@7.1.0: {} - define-data-property@1.1.4: - dependencies: - es-define-property: 1.0.0 - es-errors: 1.3.0 - gopd: 1.0.1 + deepmerge-ts@7.1.3: {} - define-lazy-prop@3.0.0: {} + deepmerge@4.3.1: {} - define-properties@1.2.1: - dependencies: - define-data-property: 1.1.4 - has-property-descriptors: 1.0.2 - object-keys: 1.1.1 + delayed-stream@1.0.0: {} delegates@1.0.0: optional: true depd@2.0.0: {} - detect-libc@2.0.3: {} - - didyoumean@1.2.2: {} + dequal@2.0.3: {} - dir-glob@3.0.1: + des.js@1.1.0: dependencies: - path-type: 4.0.0 + inherits: 2.0.4 + minimalistic-assert: 1.0.1 - dlv@1.1.3: {} + destroy@1.2.0: {} + + detect-libc@1.0.3: {} + + detect-libc@2.0.3: {} - doctrine@2.1.0: + deterministic-object-hash@2.0.2: dependencies: - esutils: 2.0.3 + base-64: 1.0.0 - doctrine@3.0.0: + devalue@5.1.1: {} + + devlop@1.1.0: dependencies: - esutils: 2.0.3 + dequal: 2.0.3 + + didyoumean@1.2.2: {} + + diff@5.2.0: {} + + dlv@1.1.3: {} dom-serializer@2.0.0: dependencies: @@ -5527,7 +5681,14 @@ snapshots: domelementtype: 2.3.0 domhandler: 5.0.3 - dotenv@16.4.5: {} + dot-case@3.0.4: + dependencies: + no-case: 3.0.4 + tslib: 2.8.0 + + dottie@2.0.6: {} + + dset@3.1.4: {} duplexify@3.7.1: dependencies: @@ -5545,12 +5706,28 @@ snapshots: eastasianwidth@0.2.0: {} - electron-to-chromium@1.4.815: {} + ee-first@1.1.1: {} + + electron-to-chromium@1.5.46: {} + + emmet@2.4.11: + dependencies: + '@emmetio/abbreviation': 2.3.3 + '@emmetio/css-abbreviation': 2.1.8 + + emoji-regex@10.4.0: {} emoji-regex@8.0.0: {} emoji-regex@9.2.2: {} + encodeurl@2.0.0: {} + + encoding-sniffer@0.2.0: + dependencies: + iconv-lite: 0.6.3 + whatwg-encoding: 3.1.1 + encoding@0.1.13: dependencies: iconv-lite: 0.6.3 @@ -5568,125 +5745,7 @@ snapshots: err-code@2.0.3: optional: true - es-abstract@1.23.3: - dependencies: - array-buffer-byte-length: 1.0.1 - arraybuffer.prototype.slice: 1.0.3 - available-typed-arrays: 1.0.7 - call-bind: 1.0.7 - data-view-buffer: 1.0.1 - data-view-byte-length: 1.0.1 - data-view-byte-offset: 1.0.0 - es-define-property: 1.0.0 - es-errors: 1.3.0 - es-object-atoms: 1.0.0 - es-set-tostringtag: 2.0.3 - es-to-primitive: 1.2.1 - function.prototype.name: 1.1.6 - get-intrinsic: 1.2.4 - get-symbol-description: 1.0.2 - globalthis: 1.0.4 - gopd: 1.0.1 - has-property-descriptors: 1.0.2 - has-proto: 1.0.3 - has-symbols: 1.0.3 - hasown: 2.0.2 - internal-slot: 1.0.7 - is-array-buffer: 3.0.4 - is-callable: 1.2.7 - is-data-view: 1.0.1 - is-negative-zero: 2.0.3 - is-regex: 1.1.4 - is-shared-array-buffer: 1.0.3 - is-string: 1.0.7 - is-typed-array: 1.1.13 - is-weakref: 1.0.2 - object-inspect: 1.13.2 - object-keys: 1.1.1 - object.assign: 4.1.5 - regexp.prototype.flags: 1.5.2 - safe-array-concat: 1.1.2 - safe-regex-test: 1.0.3 - string.prototype.trim: 1.2.9 - string.prototype.trimend: 1.0.8 - string.prototype.trimstart: 1.0.8 - typed-array-buffer: 1.0.2 - typed-array-byte-length: 1.0.1 - typed-array-byte-offset: 1.0.2 - typed-array-length: 1.0.6 - unbox-primitive: 1.0.2 - which-typed-array: 1.1.15 - - es-define-property@1.0.0: - dependencies: - get-intrinsic: 1.2.4 - - es-errors@1.3.0: {} - - es-iterator-helpers@1.0.19: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - es-errors: 1.3.0 - es-set-tostringtag: 2.0.3 - function-bind: 1.1.2 - get-intrinsic: 1.2.4 - globalthis: 1.0.4 - has-property-descriptors: 1.0.2 - has-proto: 1.0.3 - has-symbols: 1.0.3 - internal-slot: 1.0.7 - iterator.prototype: 1.1.2 - safe-array-concat: 1.1.2 - - es-object-atoms@1.0.0: - dependencies: - es-errors: 1.3.0 - - es-set-tostringtag@2.0.3: - dependencies: - get-intrinsic: 1.2.4 - has-tostringtag: 1.0.2 - hasown: 2.0.2 - - es-shim-unscopables@1.0.2: - dependencies: - hasown: 2.0.2 - - es-to-primitive@1.2.1: - dependencies: - is-callable: 1.2.7 - is-date-object: 1.0.5 - is-symbol: 1.0.4 - - esbuild-plugin-umd-wrapper@2.0.0: {} - - esbuild@0.19.12: - optionalDependencies: - '@esbuild/aix-ppc64': 0.19.12 - '@esbuild/android-arm': 0.19.12 - '@esbuild/android-arm64': 0.19.12 - '@esbuild/android-x64': 0.19.12 - '@esbuild/darwin-arm64': 0.19.12 - '@esbuild/darwin-x64': 0.19.12 - '@esbuild/freebsd-arm64': 0.19.12 - '@esbuild/freebsd-x64': 0.19.12 - '@esbuild/linux-arm': 0.19.12 - '@esbuild/linux-arm64': 0.19.12 - '@esbuild/linux-ia32': 0.19.12 - '@esbuild/linux-loong64': 0.19.12 - '@esbuild/linux-mips64el': 0.19.12 - '@esbuild/linux-ppc64': 0.19.12 - '@esbuild/linux-riscv64': 0.19.12 - '@esbuild/linux-s390x': 0.19.12 - '@esbuild/linux-x64': 0.19.12 - '@esbuild/netbsd-x64': 0.19.12 - '@esbuild/openbsd-x64': 0.19.12 - '@esbuild/sunos-x64': 0.19.12 - '@esbuild/win32-arm64': 0.19.12 - '@esbuild/win32-ia32': 0.19.12 - '@esbuild/win32-x64': 0.19.12 + es-module-lexer@1.5.4: {} esbuild@0.21.5: optionalDependencies: @@ -5714,214 +5773,78 @@ snapshots: '@esbuild/win32-ia32': 0.21.5 '@esbuild/win32-x64': 0.21.5 - escalade@3.1.2: {} + esbuild@0.23.1: + optionalDependencies: + '@esbuild/aix-ppc64': 0.23.1 + '@esbuild/android-arm': 0.23.1 + '@esbuild/android-arm64': 0.23.1 + '@esbuild/android-x64': 0.23.1 + '@esbuild/darwin-arm64': 0.23.1 + '@esbuild/darwin-x64': 0.23.1 + '@esbuild/freebsd-arm64': 0.23.1 + '@esbuild/freebsd-x64': 0.23.1 + '@esbuild/linux-arm': 0.23.1 + '@esbuild/linux-arm64': 0.23.1 + '@esbuild/linux-ia32': 0.23.1 + '@esbuild/linux-loong64': 0.23.1 + '@esbuild/linux-mips64el': 0.23.1 + '@esbuild/linux-ppc64': 0.23.1 + '@esbuild/linux-riscv64': 0.23.1 + '@esbuild/linux-s390x': 0.23.1 + '@esbuild/linux-x64': 0.23.1 + '@esbuild/netbsd-x64': 0.23.1 + '@esbuild/openbsd-arm64': 0.23.1 + '@esbuild/openbsd-x64': 0.23.1 + '@esbuild/sunos-x64': 0.23.1 + '@esbuild/win32-arm64': 0.23.1 + '@esbuild/win32-ia32': 0.23.1 + '@esbuild/win32-x64': 0.23.1 + + escalade@3.2.0: {} escape-html@1.0.3: {} escape-string-regexp@1.0.5: {} - escape-string-regexp@4.0.0: {} + escape-string-regexp@5.0.0: {} - eslint-config-preact@1.4.0(eslint@8.57.0)(typescript@5.5.2): + esotope-hammerhead@0.6.8: dependencies: - '@babel/core': 7.24.7 - '@babel/eslint-parser': 7.24.7(@babel/core@7.24.7)(eslint@8.57.0) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.7) - '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.24.7) - eslint: 8.57.0 - eslint-plugin-compat: 4.2.0(eslint@8.57.0) - eslint-plugin-jest: 25.7.0(eslint@8.57.0)(typescript@5.5.2) - eslint-plugin-react: 7.34.3(eslint@8.57.0) - eslint-plugin-react-hooks: 4.6.2(eslint@8.57.0) - transitivePeerDependencies: - - '@typescript-eslint/eslint-plugin' - - jest - - supports-color - - typescript + '@types/estree': 0.0.46 - eslint-plugin-compat@4.2.0(eslint@8.57.0): - dependencies: - '@mdn/browser-compat-data': 5.5.35 - ast-metadata-inferer: 0.8.0 - browserslist: 4.23.1 - caniuse-lite: 1.0.30001639 - eslint: 8.57.0 - find-up: 5.0.0 - lodash.memoize: 4.1.2 - semver: 7.6.2 + esprima@4.0.1: {} - eslint-plugin-jest@25.7.0(eslint@8.57.0)(typescript@5.5.2): - dependencies: - '@typescript-eslint/experimental-utils': 5.62.0(eslint@8.57.0)(typescript@5.5.2) - eslint: 8.57.0 - transitivePeerDependencies: - - supports-color - - typescript + estree-walker@2.0.2: {} - eslint-plugin-react-hooks@4.6.2(eslint@8.57.0): + estree-walker@3.0.3: dependencies: - eslint: 8.57.0 + '@types/estree': 1.0.6 - eslint-plugin-react@7.34.3(eslint@8.57.0): - dependencies: - array-includes: 3.1.8 - array.prototype.findlast: 1.2.5 - array.prototype.flatmap: 1.3.2 - array.prototype.toreversed: 1.1.2 - array.prototype.tosorted: 1.1.4 - doctrine: 2.1.0 - es-iterator-helpers: 1.0.19 - eslint: 8.57.0 - estraverse: 5.3.0 - jsx-ast-utils: 3.3.5 - minimatch: 3.1.2 - object.entries: 1.1.8 - object.fromentries: 2.0.8 - object.hasown: 1.1.4 - object.values: 1.2.0 - prop-types: 15.8.1 - resolve: 2.0.0-next.5 - semver: 6.3.1 - string.prototype.matchall: 4.0.11 + etag@1.8.1: {} - eslint-scope@5.1.1: - dependencies: - esrecurse: 4.3.0 - estraverse: 4.3.0 + event-target-shim@5.0.1: {} - eslint-scope@7.2.2: - dependencies: - esrecurse: 4.3.0 - estraverse: 5.3.0 + eventemitter3@5.0.1: {} - eslint-visitor-keys@2.1.0: {} + events@3.3.0: {} - eslint-visitor-keys@3.4.3: {} + expand-template@2.0.3: {} - eslint@8.57.0: + extend-shallow@2.0.1: dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@eslint-community/regexpp': 4.11.0 - '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.57.0 - '@humanwhocodes/config-array': 0.11.14 - '@humanwhocodes/module-importer': 1.0.1 - '@nodelib/fs.walk': 1.2.8 - '@ungap/structured-clone': 1.2.0 - ajv: 6.12.6 - chalk: 4.1.2 - cross-spawn: 7.0.3 - debug: 4.3.5 - doctrine: 3.0.0 - escape-string-regexp: 4.0.0 - eslint-scope: 7.2.2 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 - esquery: 1.5.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 - find-up: 5.0.0 - glob-parent: 6.0.2 - globals: 13.24.0 - graphemer: 1.4.0 - ignore: 5.3.1 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - is-path-inside: 3.0.3 - js-yaml: 4.1.0 - json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 - lodash.merge: 4.6.2 - minimatch: 3.1.2 - natural-compare: 1.4.0 - optionator: 0.9.4 - strip-ansi: 6.0.1 - text-table: 0.2.0 - transitivePeerDependencies: - - supports-color - - esotope-hammerhead@0.6.1: - dependencies: - '@types/estree': 0.0.46 - - espree@9.6.1: - dependencies: - acorn: 8.12.0 - acorn-jsx: 5.3.2(acorn@8.12.0) - eslint-visitor-keys: 3.4.3 - - esquery@1.5.0: - dependencies: - estraverse: 5.3.0 + is-extendable: 0.1.1 - esrecurse@4.3.0: - dependencies: - estraverse: 5.3.0 - - estraverse@4.3.0: {} - - estraverse@5.3.0: {} - - estree-walker@0.6.1: {} - - estree-walker@2.0.2: {} - - esutils@2.0.3: {} + extend@3.0.2: {} - event-target-shim@5.0.1: {} - - events@3.3.0: {} - - execa@0.6.3: + extract-zip@2.0.1: dependencies: - cross-spawn: 5.1.0 - get-stream: 3.0.0 - is-stream: 1.1.0 - npm-run-path: 2.0.2 - p-finally: 1.0.0 - signal-exit: 3.0.7 - strip-eof: 1.0.0 - - execa@4.1.0: - dependencies: - cross-spawn: 7.0.3 + debug: 4.3.7 get-stream: 5.2.0 - human-signals: 1.1.1 - is-stream: 2.0.1 - merge-stream: 2.0.0 - npm-run-path: 4.0.1 - onetime: 5.1.2 - signal-exit: 3.0.7 - strip-final-newline: 2.0.0 - - execa@5.1.1: - dependencies: - cross-spawn: 7.0.3 - get-stream: 6.0.1 - human-signals: 2.1.0 - is-stream: 2.0.1 - merge-stream: 2.0.0 - npm-run-path: 4.0.1 - onetime: 5.1.2 - signal-exit: 3.0.7 - strip-final-newline: 2.0.0 - - execa@7.2.0: - dependencies: - cross-spawn: 7.0.3 - get-stream: 6.0.1 - human-signals: 4.3.1 - is-stream: 3.0.0 - merge-stream: 2.0.0 - npm-run-path: 5.3.0 - onetime: 6.0.0 - signal-exit: 3.0.7 - strip-final-newline: 3.0.0 - - expand-template@2.0.3: {} - - fast-content-type-parse@1.1.0: {} + yauzl: 2.10.0 + optionalDependencies: + '@types/yauzl': 2.10.3 + transitivePeerDependencies: + - supports-color fast-decode-uri-component@1.0.1: {} @@ -5933,22 +5856,18 @@ snapshots: '@nodelib/fs.walk': 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 - micromatch: 4.0.7 - - fast-json-stable-stringify@2.1.0: {} + micromatch: 4.0.8 - fast-json-stringify@5.16.1: + fast-json-stringify@6.0.0: dependencies: '@fastify/merge-json-schemas': 0.1.1 - ajv: 8.16.0 - ajv-formats: 3.0.1(ajv@8.16.0) + ajv: 8.17.1 + ajv-formats: 3.0.1(ajv@8.17.1) fast-deep-equal: 3.1.3 fast-uri: 2.4.0 json-schema-ref-resolver: 1.0.1 rfdc: 1.4.1 - fast-levenshtein@2.0.6: {} - fast-querystring@1.1.2: dependencies: fast-decode-uri-component: 1.0.1 @@ -5957,34 +5876,35 @@ snapshots: fast-uri@2.4.0: {} - fastify-plugin@4.5.1: {} + fast-uri@3.0.3: {} - fastify@4.28.1: + fastify-plugin@5.0.1: {} + + fastify@5.0.0: dependencies: - '@fastify/ajv-compiler': 3.6.0 - '@fastify/error': 3.4.1 - '@fastify/fast-json-stringify-compiler': 4.3.0 + '@fastify/ajv-compiler': 4.0.1 + '@fastify/error': 4.0.0 + '@fastify/fast-json-stringify-compiler': 5.0.1 abstract-logging: 2.0.1 - avvio: 8.3.2 - fast-content-type-parse: 1.1.0 - fast-json-stringify: 5.16.1 - find-my-way: 8.2.0 - light-my-request: 5.13.0 - pino: 9.2.0 - process-warning: 3.0.0 + avvio: 9.1.0 + fast-json-stringify: 6.0.0 + find-my-way: 9.1.0 + light-my-request: 6.2.0 + pino: 9.5.0 + process-warning: 4.0.0 proxy-addr: 2.0.7 rfdc: 1.4.1 secure-json-parse: 2.7.0 - semver: 7.6.2 + semver: 7.6.3 toad-cache: 3.7.0 fastq@1.17.1: dependencies: reusify: 1.0.4 - file-entry-cache@6.0.1: + fd-slicer@1.1.0: dependencies: - flat-cache: 3.2.0 + pend: 1.2.0 file-uri-to-path@1.0.0: {} @@ -5992,70 +5912,47 @@ snapshots: dependencies: to-regex-range: 5.0.1 - find-cache-dir@3.3.2: - dependencies: - commondir: 1.0.1 - make-dir: 3.1.0 - pkg-dir: 4.2.0 - - find-my-way@8.2.0: + find-my-way@9.1.0: dependencies: fast-deep-equal: 3.1.3 fast-querystring: 1.1.2 - safe-regex2: 3.1.0 + safe-regex2: 4.0.0 + + find-up-simple@1.0.0: {} find-up@4.1.0: dependencies: locate-path: 5.0.0 path-exists: 4.0.0 - find-up@5.0.0: - dependencies: - locate-path: 6.0.0 - path-exists: 4.0.0 - - flat-cache@3.2.0: + find-yarn-workspace-root2@1.2.16: dependencies: - flatted: 3.3.1 - keyv: 4.5.4 - rimraf: 3.0.2 + micromatch: 4.0.8 + pkg-dir: 4.2.0 - flatted@3.3.1: {} + flattie@1.1.1: {} - for-each@0.3.3: - dependencies: - is-callable: 1.2.7 + follow-redirects@1.15.9: {} - foreground-child@3.2.1: + foreground-child@3.3.0: dependencies: cross-spawn: 7.0.3 signal-exit: 4.1.0 + form-data@4.0.1: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + forwarded@0.2.0: {} fraction.js@4.3.7: {} - framer-motion@10.18.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - tslib: 2.6.3 - optionalDependencies: - '@emotion/is-prop-valid': 0.8.8 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - from2@2.3.0: - dependencies: - inherits: 2.0.4 - readable-stream: 2.3.8 + fresh@0.5.2: {} fs-constants@1.0.0: {} - fs-extra@10.1.0: - dependencies: - graceful-fs: 4.2.11 - jsonfile: 6.1.0 - universalify: 2.0.1 - fs-extra@11.2.0: dependencies: graceful-fs: 4.2.11 @@ -6073,15 +5970,6 @@ snapshots: function-bind@1.1.2: {} - function.prototype.name@1.1.6: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - functions-have-names: 1.2.3 - - functions-have-names@1.2.3: {} - gauge@4.0.4: dependencies: aproba: 2.0.0 @@ -6098,40 +5986,20 @@ snapshots: get-caller-file@2.0.5: {} - get-intrinsic@1.2.4: - dependencies: - es-errors: 1.3.0 - function-bind: 1.1.2 - has-proto: 1.0.3 - has-symbols: 1.0.3 - hasown: 2.0.2 - - get-stream@3.0.0: {} + get-east-asian-width@1.3.0: {} get-stream@5.2.0: dependencies: - pump: 3.0.0 - - get-stream@6.0.1: {} - - get-symbol-description@1.0.2: - dependencies: - call-bind: 1.0.7 - es-errors: 1.3.0 - get-intrinsic: 1.2.4 + pump: 3.0.2 - get-tsconfig@4.7.5: + get-tsconfig@4.8.1: dependencies: resolve-pkg-maps: 1.0.0 - git-commit-info@2.0.2: - dependencies: - execa: 4.1.0 - is-git-repository: 1.1.1 - path-is-absolute: 1.0.1 - github-from-package@0.0.0: {} + github-slugger@2.0.0: {} + glob-parent@5.1.2: dependencies: is-glob: 4.0.3 @@ -6140,15 +6008,24 @@ snapshots: dependencies: is-glob: 4.0.3 - glob@10.4.2: + glob@10.4.5: dependencies: - foreground-child: 3.2.1 - jackspeak: 3.4.0 + foreground-child: 3.3.0 + jackspeak: 3.4.3 minimatch: 9.0.5 minipass: 7.1.2 - package-json-from-dist: 1.0.0 + package-json-from-dist: 1.0.1 path-scurry: 1.11.1 + glob@11.0.0: + dependencies: + foreground-child: 3.3.0 + jackspeak: 4.0.2 + minimatch: 10.0.1 + minipass: 7.1.2 + package-json-from-dist: 1.0.1 + path-scurry: 2.0.0 + glob@7.2.3: dependencies: fs.realpath: 1.0.0 @@ -6158,72 +6035,140 @@ snapshots: once: 1.4.0 path-is-absolute: 1.0.1 - glob@8.1.0: - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 5.1.6 - once: 1.4.0 - globals@11.12.0: {} - globals@13.24.0: - dependencies: - type-fest: 0.20.2 - - globalthis@1.0.4: - dependencies: - define-properties: 1.2.1 - gopd: 1.0.1 + graceful-fs@4.2.11: {} - globby@11.1.0: + gradient-string@3.0.0: dependencies: - array-union: 2.1.0 - dir-glob: 3.0.1 - fast-glob: 3.3.2 - ignore: 5.3.1 - merge2: 1.4.1 - slash: 3.0.0 + chalk: 5.3.0 + tinygradient: 1.1.5 - gopd@1.0.1: + gray-matter@4.0.3: dependencies: - get-intrinsic: 1.2.4 - - graceful-fs@4.2.11: {} - - graphemer@1.4.0: {} - - has-bigints@1.0.2: {} - - has-flag@3.0.0: {} + js-yaml: 3.14.1 + kind-of: 6.0.3 + section-matter: 1.0.0 + strip-bom-string: 1.0.0 has-flag@4.0.0: {} - has-property-descriptors@1.0.2: + has-unicode@2.0.1: + optional: true + + hasown@2.0.2: dependencies: - es-define-property: 1.0.0 + function-bind: 1.1.2 - has-proto@1.0.3: {} + hast-util-from-html@2.0.3: + dependencies: + '@types/hast': 3.0.4 + devlop: 1.1.0 + hast-util-from-parse5: 8.0.1 + parse5: 7.2.0 + vfile: 6.0.3 + vfile-message: 4.0.2 - has-symbols@1.0.3: {} + hast-util-from-parse5@8.0.1: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + devlop: 1.1.0 + hastscript: 8.0.0 + property-information: 6.5.0 + vfile: 6.0.3 + vfile-location: 5.0.3 + web-namespaces: 2.0.1 - has-tostringtag@1.0.2: + hast-util-is-element@3.0.0: dependencies: - has-symbols: 1.0.3 + '@types/hast': 3.0.4 - has-unicode@2.0.1: - optional: true + hast-util-parse-selector@4.0.0: + dependencies: + '@types/hast': 3.0.4 - hasown@2.0.2: + hast-util-raw@9.0.4: dependencies: - function-bind: 1.1.2 + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + '@ungap/structured-clone': 1.2.0 + hast-util-from-parse5: 8.0.1 + hast-util-to-parse5: 8.0.0 + html-void-elements: 3.0.0 + mdast-util-to-hast: 13.2.0 + parse5: 7.2.0 + unist-util-position: 5.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.3 + web-namespaces: 2.0.1 + zwitch: 2.0.4 + + hast-util-to-html@9.0.3: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + ccount: 2.0.1 + comma-separated-tokens: 2.0.3 + hast-util-whitespace: 3.0.0 + html-void-elements: 3.0.0 + mdast-util-to-hast: 13.2.0 + property-information: 6.5.0 + space-separated-tokens: 2.0.2 + stringify-entities: 4.0.4 + zwitch: 2.0.4 + + hast-util-to-parse5@8.0.0: + dependencies: + '@types/hast': 3.0.4 + comma-separated-tokens: 2.0.3 + devlop: 1.1.0 + property-information: 6.5.0 + space-separated-tokens: 2.0.2 + web-namespaces: 2.0.1 + zwitch: 2.0.4 + + hast-util-to-text@4.0.2: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + hast-util-is-element: 3.0.0 + unist-util-find-after: 5.0.0 + + hast-util-whitespace@3.0.0: + dependencies: + '@types/hast': 3.0.4 + + hastscript@8.0.0: + dependencies: + '@types/hast': 3.0.4 + comma-separated-tokens: 2.0.3 + hast-util-parse-selector: 4.0.0 + property-information: 6.5.0 + space-separated-tokens: 2.0.2 + + helmet@7.2.0: {} + + html-escaper@3.0.3: {} + + html-minifier-terser@7.2.0: + dependencies: + camel-case: 4.1.2 + clean-css: 5.3.3 + commander: 10.0.1 + entities: 4.5.0 + param-case: 3.0.4 + relateurl: 0.2.7 + terser: 5.36.0 - he@1.2.0: {} + html-void-elements@3.0.0: {} - html-parse-stringify@3.0.1: + htmlparser2@9.1.0: dependencies: - void-elements: 3.1.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.1.0 + entities: 4.5.0 http-cache-semantics@4.1.1: {} @@ -6235,42 +6180,39 @@ snapshots: statuses: 2.0.1 toidentifier: 1.0.1 + http-parser-js@0.5.8: {} + http-proxy-agent@4.0.1: dependencies: '@tootallnate/once': 1.1.2 agent-base: 6.0.2 - debug: 4.3.5 + debug: 4.3.7 transitivePeerDependencies: - supports-color optional: true + httpntlm@1.8.13: + dependencies: + des.js: 1.1.0 + httpreq: 1.1.1 + js-md4: 0.3.2 + underscore: 1.12.1 + + httpreq@1.1.1: {} + https-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 - debug: 4.3.5 + debug: 4.3.7 transitivePeerDependencies: - supports-color optional: true - human-signals@1.1.1: {} - - human-signals@2.1.0: {} - - human-signals@4.3.1: {} - humanize-ms@1.2.1: dependencies: ms: 2.1.3 optional: true - i18next-browser-languagedetector@7.2.1: - dependencies: - '@babel/runtime': 7.24.7 - - i18next@23.11.5: - dependencies: - '@babel/runtime': 7.24.7 - iconv-lite@0.5.1: dependencies: safer-buffer: 2.1.2 @@ -6278,22 +6220,13 @@ snapshots: iconv-lite@0.6.3: dependencies: safer-buffer: 2.1.2 - optional: true - - idb@7.1.1: {} ieee754@1.2.1: {} - ignore@5.3.1: {} + import-meta-resolve@4.1.0: {} - immediate@3.0.6: {} - - import-fresh@3.3.0: - dependencies: - parent-module: 1.0.1 - resolve-from: 4.0.0 - - imurmurhash@0.1.4: {} + imurmurhash@0.1.4: + optional: true indent-string@4.0.0: optional: true @@ -6301,6 +6234,8 @@ snapshots: infer-owner@1.0.4: optional: true + inflection@1.13.4: {} + inflight@1.0.6: dependencies: once: 1.4.0 @@ -6310,382 +6245,623 @@ snapshots: ini@1.3.8: {} - internal-slot@1.0.7: + ip-address@9.0.5: + dependencies: + jsbn: 1.1.0 + sprintf-js: 1.1.3 + optional: true + + ip@1.1.9: {} + + ipaddr.js@1.9.1: {} + + is-arrayish@0.3.2: {} + + is-binary-path@2.1.0: + dependencies: + binary-extensions: 2.3.0 + + is-core-module@2.15.1: dependencies: - es-errors: 1.3.0 hasown: 2.0.2 - side-channel: 1.0.6 - into-stream@6.0.0: + is-docker@3.0.0: {} + + is-extendable@0.1.1: {} + + is-extglob@2.1.1: {} + + is-fullwidth-code-point@3.0.0: {} + + is-glob@4.0.3: dependencies: - from2: 2.3.0 - p-is-promise: 3.0.0 + is-extglob: 2.1.1 - ip-address@9.0.5: + is-inside-container@1.0.0: dependencies: - jsbn: 1.1.0 - sprintf-js: 1.1.3 + is-docker: 3.0.0 + + is-interactive@2.0.0: {} + + is-lambda@1.0.1: optional: true - ipaddr.js@1.9.1: {} + is-number@7.0.0: {} - ipaddr.js@2.2.0: {} + is-plain-obj@4.1.0: {} - is-array-buffer@3.0.4: + is-reference@3.0.2: dependencies: - call-bind: 1.0.7 - get-intrinsic: 1.2.4 + '@types/estree': 1.0.6 - is-arrayish@0.3.2: {} + is-unicode-supported@1.3.0: {} + + is-unicode-supported@2.1.0: {} + + is-wsl@3.1.0: + dependencies: + is-inside-container: 1.0.0 + + isarray@1.0.0: {} - is-async-function@2.0.0: + isexe@2.0.0: {} + + jackspeak@3.4.3: dependencies: - has-tostringtag: 1.0.2 + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 - is-bigint@1.0.4: + jackspeak@4.0.2: dependencies: - has-bigints: 1.0.2 + '@isaacs/cliui': 8.0.2 - is-binary-path@2.1.0: + jiti@1.21.6: {} + + js-md4@0.3.2: {} + + js-tokens@4.0.0: {} + + js-yaml@3.14.1: dependencies: - binary-extensions: 2.3.0 + argparse: 1.0.10 + esprima: 4.0.1 - is-boolean-object@1.1.2: + js-yaml@4.1.0: dependencies: - call-bind: 1.0.7 - has-tostringtag: 1.0.2 + argparse: 2.0.1 - is-callable@1.2.7: {} + jsbn@1.1.0: + optional: true - is-core-module@2.14.0: + jsesc@3.0.2: {} + + json-schema-ref-resolver@1.0.1: dependencies: - hasown: 2.0.2 + fast-deep-equal: 3.1.3 + + json-schema-traverse@1.0.0: {} + + json5@2.2.3: {} + + jsonc-parser@2.3.1: {} + + jsonc-parser@3.3.1: {} - is-data-view@1.0.1: + jsonfile@6.1.0: dependencies: - is-typed-array: 1.1.13 + universalify: 2.0.1 + optionalDependencies: + graceful-fs: 4.2.11 + + kind-of@6.0.3: {} + + kleur@3.0.3: {} + + kleur@4.1.5: {} + + kolorist@1.8.0: {} + + libcurl.js@0.6.17: {} - is-date-object@1.0.5: + light-my-request@6.2.0: dependencies: - has-tostringtag: 1.0.2 + cookie: 1.0.1 + process-warning: 4.0.0 + set-cookie-parser: 2.7.1 - is-docker@2.2.1: {} + lightningcss-darwin-arm64@1.27.0: + optional: true - is-docker@3.0.0: {} + lightningcss-darwin-x64@1.27.0: + optional: true - is-extglob@2.1.1: {} + lightningcss-freebsd-x64@1.27.0: + optional: true + + lightningcss-linux-arm-gnueabihf@1.27.0: + optional: true + + lightningcss-linux-arm64-gnu@1.27.0: + optional: true + + lightningcss-linux-arm64-musl@1.27.0: + optional: true + + lightningcss-linux-x64-gnu@1.27.0: + optional: true + + lightningcss-linux-x64-musl@1.27.0: + optional: true + + lightningcss-win32-arm64-msvc@1.27.0: + optional: true + + lightningcss-win32-x64-msvc@1.27.0: + optional: true - is-finalizationregistry@1.0.2: + lightningcss@1.27.0: dependencies: - call-bind: 1.0.7 + detect-libc: 1.0.3 + optionalDependencies: + lightningcss-darwin-arm64: 1.27.0 + lightningcss-darwin-x64: 1.27.0 + lightningcss-freebsd-x64: 1.27.0 + lightningcss-linux-arm-gnueabihf: 1.27.0 + lightningcss-linux-arm64-gnu: 1.27.0 + lightningcss-linux-arm64-musl: 1.27.0 + lightningcss-linux-x64-gnu: 1.27.0 + lightningcss-linux-x64-musl: 1.27.0 + lightningcss-win32-arm64-msvc: 1.27.0 + lightningcss-win32-x64-msvc: 1.27.0 - is-fullwidth-code-point@3.0.0: {} + lilconfig@2.1.0: {} + + lilconfig@3.1.2: {} - is-generator-function@1.0.10: + lines-and-columns@1.2.4: {} + + load-yaml-file@0.2.0: dependencies: - has-tostringtag: 1.0.2 + graceful-fs: 4.2.11 + js-yaml: 3.14.1 + pify: 4.0.1 + strip-bom: 3.0.0 - is-git-repository@1.1.1: + local-pkg@0.5.0: dependencies: - execa: 0.6.3 - path-is-absolute: 1.0.1 + mlly: 1.7.2 + pkg-types: 1.2.1 - is-glob@4.0.3: + locate-character@3.0.0: {} + + locate-path@5.0.0: dependencies: - is-extglob: 2.1.1 + p-locate: 4.1.0 - is-inside-container@1.0.0: + lodash@4.17.21: {} + + log-symbols@6.0.0: dependencies: - is-docker: 3.0.0 + chalk: 5.3.0 + is-unicode-supported: 1.3.0 - is-lambda@1.0.1: - optional: true + longest-streak@3.1.0: {} - is-map@2.0.3: {} + lower-case@2.0.2: + dependencies: + tslib: 2.8.0 - is-module@1.0.0: {} + lru-cache@10.4.3: {} - is-negative-zero@2.0.3: {} + lru-cache@11.0.1: {} + + lru-cache@2.6.3: {} - is-number-object@1.0.7: + lru-cache@5.1.1: dependencies: - has-tostringtag: 1.0.2 + yallist: 3.1.1 - is-number@7.0.0: {} + lru-cache@6.0.0: + dependencies: + yallist: 4.0.0 + + lru-cache@7.18.3: {} + + magic-string@0.30.12: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + + magicast@0.3.5: + dependencies: + '@babel/parser': 7.26.0 + '@babel/types': 7.26.0 + source-map-js: 1.2.1 + + make-fetch-happen@9.1.0: + dependencies: + agentkeepalive: 4.5.0 + cacache: 15.3.0 + http-cache-semantics: 4.1.1 + http-proxy-agent: 4.0.1 + https-proxy-agent: 5.0.1 + is-lambda: 1.0.1 + lru-cache: 6.0.0 + minipass: 3.3.6 + minipass-collect: 1.0.2 + minipass-fetch: 1.4.1 + minipass-flush: 1.0.5 + minipass-pipeline: 1.2.4 + negotiator: 0.6.4 + promise-retry: 2.0.1 + socks-proxy-agent: 6.2.1 + ssri: 8.0.1 + transitivePeerDependencies: + - bluebird + - supports-color + optional: true - is-path-inside@3.0.3: {} + markdown-table@3.0.4: {} - is-regex@1.1.4: + match-url-wildcard@0.0.4: dependencies: - call-bind: 1.0.7 - has-tostringtag: 1.0.2 + escape-string-regexp: 1.0.5 - is-set@2.0.3: {} + mdast-util-definitions@6.0.0: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + unist-util-visit: 5.0.0 + + mdast-util-find-and-replace@3.0.1: + dependencies: + '@types/mdast': 4.0.4 + escape-string-regexp: 5.0.0 + unist-util-is: 6.0.0 + unist-util-visit-parents: 6.0.1 + + mdast-util-from-markdown@2.0.2: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + decode-named-character-reference: 1.0.2 + devlop: 1.1.0 + mdast-util-to-string: 4.0.0 + micromark: 4.0.0 + micromark-util-decode-numeric-character-reference: 2.0.1 + micromark-util-decode-string: 2.0.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + unist-util-stringify-position: 4.0.0 + transitivePeerDependencies: + - supports-color - is-shared-array-buffer@1.0.3: + mdast-util-gfm-autolink-literal@2.0.1: dependencies: - call-bind: 1.0.7 + '@types/mdast': 4.0.4 + ccount: 2.0.1 + devlop: 1.1.0 + mdast-util-find-and-replace: 3.0.1 + micromark-util-character: 2.1.0 - is-stream@1.1.0: {} - - is-stream@2.0.1: {} - - is-stream@3.0.0: {} - - is-string@1.0.7: + mdast-util-gfm-footnote@2.0.0: dependencies: - has-tostringtag: 1.0.2 + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.0 + micromark-util-normalize-identifier: 2.0.0 + transitivePeerDependencies: + - supports-color - is-symbol@1.0.4: + mdast-util-gfm-strikethrough@2.0.0: dependencies: - has-symbols: 1.0.3 + '@types/mdast': 4.0.4 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color - is-typed-array@1.1.13: + mdast-util-gfm-table@2.0.0: dependencies: - which-typed-array: 1.1.15 - - is-weakmap@2.0.2: {} + '@types/mdast': 4.0.4 + devlop: 1.1.0 + markdown-table: 3.0.4 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color - is-weakref@1.0.2: + mdast-util-gfm-task-list-item@2.0.0: dependencies: - call-bind: 1.0.7 + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color - is-weakset@2.0.3: + mdast-util-gfm@3.0.0: dependencies: - call-bind: 1.0.7 - get-intrinsic: 1.2.4 + mdast-util-from-markdown: 2.0.2 + mdast-util-gfm-autolink-literal: 2.0.1 + mdast-util-gfm-footnote: 2.0.0 + mdast-util-gfm-strikethrough: 2.0.0 + mdast-util-gfm-table: 2.0.0 + mdast-util-gfm-task-list-item: 2.0.0 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color - is-wsl@2.2.0: + mdast-util-phrasing@4.1.0: dependencies: - is-docker: 2.2.1 - - isarray@1.0.0: {} + '@types/mdast': 4.0.4 + unist-util-is: 6.0.0 - isarray@2.0.5: {} - - isexe@2.0.0: {} - - iterator.prototype@1.1.2: + mdast-util-to-hast@13.2.0: dependencies: - define-properties: 1.2.1 - get-intrinsic: 1.2.4 - has-symbols: 1.0.3 - reflect.getprototypeof: 1.0.6 - set-function-name: 2.0.2 + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + '@ungap/structured-clone': 1.2.0 + devlop: 1.1.0 + micromark-util-sanitize-uri: 2.0.0 + trim-lines: 3.0.1 + unist-util-position: 5.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.3 - jackspeak@3.4.0: + mdast-util-to-markdown@2.1.0: dependencies: - '@isaacs/cliui': 8.0.2 - optionalDependencies: - '@pkgjs/parseargs': 0.11.0 - - jiti@1.21.6: {} - - js-tokens@4.0.0: {} + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + longest-streak: 3.1.0 + mdast-util-phrasing: 4.1.0 + mdast-util-to-string: 4.0.0 + micromark-util-decode-string: 2.0.0 + unist-util-visit: 5.0.0 + zwitch: 2.0.4 - js-yaml@4.1.0: + mdast-util-to-string@4.0.0: dependencies: - argparse: 2.0.1 - - jsbn@1.1.0: - optional: true + '@types/mdast': 4.0.4 - jsesc@2.5.2: {} + mdn-data@2.0.28: {} - json-buffer@3.0.1: {} + mdn-data@2.0.30: {} - json-schema-ref-resolver@1.0.1: + merge-stream@1.0.1: dependencies: - fast-deep-equal: 3.1.3 - - json-schema-traverse@0.4.1: {} - - json-schema-traverse@1.0.0: {} - - json-stable-stringify-without-jsonify@1.0.1: {} + readable-stream: 2.3.8 - json5@2.2.3: {} + merge2@1.4.1: {} - jsonfile@6.1.0: + micromark-core-commonmark@2.0.1: dependencies: - universalify: 2.0.1 - optionalDependencies: - graceful-fs: 4.2.11 + decode-named-character-reference: 1.0.2 + devlop: 1.1.0 + micromark-factory-destination: 2.0.0 + micromark-factory-label: 2.0.0 + micromark-factory-space: 2.0.0 + micromark-factory-title: 2.0.0 + micromark-factory-whitespace: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-chunked: 2.0.0 + micromark-util-classify-character: 2.0.0 + micromark-util-html-tag-name: 2.0.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-resolve-all: 2.0.0 + micromark-util-subtokenize: 2.0.1 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 - jsx-ast-utils@3.3.5: + micromark-extension-gfm-autolink-literal@2.1.0: dependencies: - array-includes: 3.1.8 - array.prototype.flat: 1.3.2 - object.assign: 4.1.5 - object.values: 1.2.0 + micromark-util-character: 2.1.0 + micromark-util-sanitize-uri: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 - keyv-lru-files@https://codeload.github.com/holy-unblocker/keyv-lru-files/tar.gz/dceb102630357eda76317f9005905bbc5e6521e7: + micromark-extension-gfm-footnote@2.1.0: dependencies: - rimraf: 3.0.2 - sqlite: 4.2.1 - sqlite3: 5.1.7 - transitivePeerDependencies: - - bluebird - - supports-color + devlop: 1.1.0 + micromark-core-commonmark: 2.0.1 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-sanitize-uri: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 - keyv@4.5.4: + micromark-extension-gfm-strikethrough@2.1.0: dependencies: - json-buffer: 3.0.1 - - kleur@4.1.5: {} + devlop: 1.1.0 + micromark-util-chunked: 2.0.0 + micromark-util-classify-character: 2.0.0 + micromark-util-resolve-all: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 - kolorist@1.8.0: {} + micromark-extension-gfm-table@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 - levn@0.4.1: + micromark-extension-gfm-tagfilter@2.0.0: dependencies: - prelude-ls: 1.2.1 - type-check: 0.4.0 + micromark-util-types: 2.0.0 - libcurl.js@0.6.8: {} + micromark-extension-gfm-task-list-item@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 - lie@3.1.1: + micromark-extension-gfm@3.0.0: dependencies: - immediate: 3.0.6 + micromark-extension-gfm-autolink-literal: 2.1.0 + micromark-extension-gfm-footnote: 2.1.0 + micromark-extension-gfm-strikethrough: 2.1.0 + micromark-extension-gfm-table: 2.1.0 + micromark-extension-gfm-tagfilter: 2.0.0 + micromark-extension-gfm-task-list-item: 2.1.0 + micromark-util-combine-extensions: 2.0.0 + micromark-util-types: 2.0.0 - light-my-request@5.13.0: + micromark-factory-destination@2.0.0: dependencies: - cookie: 0.6.0 - process-warning: 3.0.0 - set-cookie-parser: 2.6.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 - lilconfig@2.1.0: {} + micromark-factory-label@2.0.0: + dependencies: + devlop: 1.1.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 - lilconfig@3.1.2: {} + micromark-factory-space@2.0.0: + dependencies: + micromark-util-character: 2.1.0 + micromark-util-types: 2.0.0 - lines-and-columns@1.2.4: {} + micromark-factory-title@2.0.0: + dependencies: + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 - localforage@1.10.0: + micromark-factory-whitespace@2.0.0: dependencies: - lie: 3.1.1 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 - locate-path@5.0.0: + micromark-util-character@2.1.0: dependencies: - p-locate: 4.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 - locate-path@6.0.0: + micromark-util-chunked@2.0.0: dependencies: - p-locate: 5.0.0 + micromark-util-symbol: 2.0.0 - lodash.memoize@4.1.2: {} + micromark-util-classify-character@2.0.0: + dependencies: + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 - lodash.merge@4.6.2: {} + micromark-util-combine-extensions@2.0.0: + dependencies: + micromark-util-chunked: 2.0.0 + micromark-util-types: 2.0.0 - lodash@4.17.21: {} + micromark-util-decode-numeric-character-reference@2.0.1: + dependencies: + micromark-util-symbol: 2.0.0 - loose-envify@1.4.0: + micromark-util-decode-string@2.0.0: dependencies: - js-tokens: 4.0.0 + decode-named-character-reference: 1.0.2 + micromark-util-character: 2.1.0 + micromark-util-decode-numeric-character-reference: 2.0.1 + micromark-util-symbol: 2.0.0 - lru-cache@10.3.0: {} + micromark-util-encode@2.0.0: {} - lru-cache@2.6.3: {} + micromark-util-html-tag-name@2.0.0: {} - lru-cache@4.1.5: + micromark-util-normalize-identifier@2.0.0: dependencies: - pseudomap: 1.0.2 - yallist: 2.1.2 + micromark-util-symbol: 2.0.0 - lru-cache@5.1.1: + micromark-util-resolve-all@2.0.0: dependencies: - yallist: 3.1.1 + micromark-util-types: 2.0.0 - lru-cache@6.0.0: + micromark-util-sanitize-uri@2.0.0: dependencies: - yallist: 4.0.0 - optional: true + micromark-util-character: 2.1.0 + micromark-util-encode: 2.0.0 + micromark-util-symbol: 2.0.0 - magic-string@0.30.5: + micromark-util-subtokenize@2.0.1: dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 + devlop: 1.1.0 + micromark-util-chunked: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 - make-dir@3.1.0: - dependencies: - semver: 6.3.1 + micromark-util-symbol@2.0.0: {} - make-fetch-happen@9.1.0: + micromark-util-types@2.0.0: {} + + micromark@4.0.0: dependencies: - agentkeepalive: 4.5.0 - cacache: 15.3.0 - http-cache-semantics: 4.1.1 - http-proxy-agent: 4.0.1 - https-proxy-agent: 5.0.1 - is-lambda: 1.0.1 - lru-cache: 6.0.0 - minipass: 3.3.6 - minipass-collect: 1.0.2 - minipass-fetch: 1.4.1 - minipass-flush: 1.0.5 - minipass-pipeline: 1.2.4 - negotiator: 0.6.3 - promise-retry: 2.0.1 - socks-proxy-agent: 6.2.1 - ssri: 8.0.1 + '@types/debug': 4.1.12 + debug: 4.3.7 + decode-named-character-reference: 1.0.2 + devlop: 1.1.0 + micromark-core-commonmark: 2.0.1 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-chunked: 2.0.0 + micromark-util-combine-extensions: 2.0.0 + micromark-util-decode-numeric-character-reference: 2.0.1 + micromark-util-encode: 2.0.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-resolve-all: 2.0.0 + micromark-util-sanitize-uri: 2.0.0 + micromark-util-subtokenize: 2.0.1 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 transitivePeerDependencies: - - bluebird - supports-color - optional: true - - match-url-wildcard@0.0.4: - dependencies: - escape-string-regexp: 1.0.5 - merge-stream@1.0.1: - dependencies: - readable-stream: 2.3.8 - - merge-stream@2.0.0: {} - - merge2@1.4.1: {} - - micromatch@4.0.7: + micromatch@4.0.8: dependencies: braces: 3.0.3 picomatch: 2.3.1 - million@2.6.4: - dependencies: - '@babel/core': 7.24.7 - '@babel/generator': 7.24.7 - '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.24.7) - '@babel/plugin-syntax-typescript': 7.24.7(@babel/core@7.24.7) - '@babel/types': 7.24.7 - kleur: 4.1.5 - rollup: 3.29.4 - unplugin: 1.11.0 - transitivePeerDependencies: - - supports-color - mime-db@1.52.0: {} + mime-db@1.53.0: {} + mime-types@2.1.35: dependencies: mime-db: 1.52.0 mime@1.4.1: {} + mime@1.6.0: {} + mime@2.6.0: {} mime@3.0.0: {} - mimic-fn@2.1.0: {} - - mimic-fn@4.0.0: {} + mimic-function@5.0.1: {} mimic-response@3.1.0: {} - minimatch@3.1.2: - dependencies: - brace-expansion: 1.1.11 + minimalistic-assert@1.0.1: {} - minimatch@5.1.6: + minimatch@10.0.1: dependencies: brace-expansion: 2.0.1 + minimatch@3.1.2: + dependencies: + brace-expansion: 1.1.11 + minimatch@9.0.5: dependencies: brace-expansion: 2.0.1 @@ -6725,6 +6901,8 @@ snapshots: dependencies: yallist: 4.0.0 + minipass@4.2.8: {} + minipass@5.0.0: {} minipass@7.1.2: {} @@ -6736,18 +6914,30 @@ snapshots: mkdirp-classic@0.5.3: {} - mkdirp@0.5.6: + mkdirp@1.0.4: {} + + mlly@1.7.2: dependencies: - minimist: 1.2.8 + acorn: 8.13.0 + pathe: 1.1.2 + pkg-types: 1.2.1 + ufo: 1.5.4 - mkdirp@1.0.4: {} + moment-timezone@0.5.46: + dependencies: + moment: 2.30.1 + + moment@2.30.1: {} + + mrmime@2.0.0: {} ms@2.0.0: {} ms@2.1.2: {} - ms@2.1.3: - optional: true + ms@2.1.3: {} + + muggle-string@0.4.1: {} mustache@2.3.2: {} @@ -6759,19 +6949,31 @@ snapshots: nanoid@3.3.7: {} + nanostores@0.10.3: {} + napi-build-utils@1.0.2: {} - natural-compare@1.4.0: {} + negotiator@0.6.4: + optional: true + + neotraverse@0.6.18: {} - negotiator@0.6.3: {} + nlcst-to-string@4.0.0: + dependencies: + '@types/nlcst': 2.0.3 + + no-case@3.0.4: + dependencies: + lower-case: 2.0.2 + tslib: 2.8.0 - node-abi@3.65.0: + node-abi@3.71.0: dependencies: - semver: 7.6.2 + semver: 7.6.3 - node-addon-api@7.1.0: {} + node-addon-api@7.1.1: {} - node-gyp-build@4.8.1: {} + node-gyp-build@4.8.2: {} node-gyp@8.4.1: dependencies: @@ -6782,7 +6984,7 @@ snapshots: nopt: 5.0.0 npmlog: 6.0.2 rimraf: 3.0.2 - semver: 7.6.2 + semver: 7.6.3 tar: 6.2.1 which: 2.0.2 transitivePeerDependencies: @@ -6790,12 +6992,7 @@ snapshots: - supports-color optional: true - node-html-parser@6.1.13: - dependencies: - css-select: 5.1.0 - he: 1.2.0 - - node-releases@2.0.14: {} + node-releases@2.0.18: {} nopt@5.0.0: dependencies: @@ -6806,18 +7003,6 @@ snapshots: normalize-range@0.1.2: {} - npm-run-path@2.0.2: - dependencies: - path-key: 2.0.1 - - npm-run-path@4.0.1: - dependencies: - path-key: 3.1.1 - - npm-run-path@5.3.0: - dependencies: - path-key: 4.0.0 - npmlog@6.0.2: dependencies: are-we-there-yet: 3.0.1 @@ -6834,135 +7019,123 @@ snapshots: object-hash@3.0.0: {} - object-inspect@1.13.2: {} - - object-keys@1.1.1: {} - - object.assign@4.1.5: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - has-symbols: 1.0.3 - object-keys: 1.1.1 - - object.entries@1.1.8: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-object-atoms: 1.0.0 - - object.fromentries@2.0.8: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - es-object-atoms: 1.0.0 - - object.hasown@1.1.4: - dependencies: - define-properties: 1.2.1 - es-abstract: 1.23.3 - es-object-atoms: 1.0.0 - - object.values@1.2.0: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-object-atoms: 1.0.0 - on-exit-leak-free@2.1.2: {} - on-headers@1.0.2: {} + on-finished@2.4.1: + dependencies: + ee-first: 1.1.1 once@1.4.0: dependencies: wrappy: 1.0.2 - onetime@5.1.2: - dependencies: - mimic-fn: 2.1.0 - - onetime@6.0.0: + onetime@7.0.0: dependencies: - mimic-fn: 4.0.0 + mimic-function: 5.0.1 - open@9.1.0: + oniguruma-to-js@0.4.3: dependencies: - default-browser: 4.0.0 - define-lazy-prop: 3.0.0 - is-inside-container: 1.0.0 - is-wsl: 2.2.0 + regex: 4.3.3 - optionator@0.9.4: + ora@8.1.0: dependencies: - deep-is: 0.1.4 - fast-levenshtein: 2.0.6 - levn: 0.4.1 - prelude-ls: 1.2.1 - type-check: 0.4.0 - word-wrap: 1.2.5 + chalk: 5.3.0 + cli-cursor: 5.0.0 + cli-spinners: 2.9.2 + is-interactive: 2.0.0 + is-unicode-supported: 2.1.0 + log-symbols: 6.0.0 + stdin-discarder: 0.2.2 + string-width: 7.2.0 + strip-ansi: 7.1.0 os-family@1.1.0: {} - p-finally@1.0.0: {} - - p-is-promise@3.0.0: {} - p-limit@2.3.0: dependencies: p-try: 2.2.0 - p-limit@3.1.0: + p-limit@6.1.0: dependencies: - yocto-queue: 0.1.0 + yocto-queue: 1.1.1 p-locate@4.1.0: dependencies: p-limit: 2.3.0 - p-locate@5.0.0: - dependencies: - p-limit: 3.1.0 - p-map@4.0.0: dependencies: aggregate-error: 3.1.0 optional: true + p-queue@8.0.1: + dependencies: + eventemitter3: 5.0.1 + p-timeout: 6.1.3 + + p-timeout@6.1.3: {} + p-try@2.2.0: {} - package-json-from-dist@1.0.0: {} + package-json-from-dist@1.0.1: {} + + package-manager-detector@0.2.2: {} + + param-case@3.0.4: + dependencies: + dot-case: 3.0.4 + tslib: 2.8.0 + + parse-latin@7.0.0: + dependencies: + '@types/nlcst': 2.0.3 + '@types/unist': 3.0.3 + nlcst-to-string: 4.0.0 + unist-util-modify-children: 4.0.0 + unist-util-visit-children: 3.0.0 + vfile: 6.0.3 - parent-module@1.0.1: + parse5-htmlparser2-tree-adapter@7.1.0: dependencies: - callsites: 3.1.0 + domhandler: 5.0.3 + parse5: 7.2.0 - parse5@2.2.3: {} + parse5-parser-stream@7.1.2: + dependencies: + parse5: 7.2.0 - parse5@7.1.2: + parse5@7.2.0: dependencies: entities: 4.5.0 + pascal-case@3.1.2: + dependencies: + no-case: 3.0.4 + tslib: 2.8.0 + path-browserify@1.0.1: {} path-exists@4.0.0: {} path-is-absolute@1.0.1: {} - path-key@2.0.1: {} - path-key@3.1.1: {} - path-key@4.0.0: {} - path-parse@1.0.7: {} path-scurry@1.11.1: dependencies: - lru-cache: 10.3.0 + lru-cache: 10.4.3 + minipass: 7.1.2 + + path-scurry@2.0.0: + dependencies: + lru-cache: 11.0.1 minipass: 7.1.2 - path-type@4.0.0: {} + path-to-regexp@8.2.0: {} + + pathe@1.1.2: {} peek-stream@1.1.3: dependencies: @@ -6970,33 +7143,83 @@ snapshots: duplexify: 3.7.1 through2: 2.0.5 - picocolors@1.0.1: {} + pend@1.2.0: {} + + periscopic@3.1.0: + dependencies: + '@types/estree': 1.0.6 + estree-walker: 3.0.3 + is-reference: 3.0.2 + + pg-cloudflare@1.1.1: + optional: true + + pg-connection-string@2.7.0: {} + + pg-hstore@2.3.4: + dependencies: + underscore: 1.13.7 + + pg-int8@1.0.1: {} + + pg-pool@3.7.0(pg@8.13.1): + dependencies: + pg: 8.13.1 + + pg-protocol@1.7.0: {} + + pg-types@2.2.0: + dependencies: + pg-int8: 1.0.1 + postgres-array: 2.0.0 + postgres-bytea: 1.0.0 + postgres-date: 1.0.7 + postgres-interval: 1.2.0 + + pg@8.13.1: + dependencies: + pg-connection-string: 2.7.0 + pg-pool: 3.7.0(pg@8.13.1) + pg-protocol: 1.7.0 + pg-types: 2.2.0 + pgpass: 1.0.5 + optionalDependencies: + pg-cloudflare: 1.1.1 + + pgpass@1.0.5: + dependencies: + split2: 4.2.0 + + picocolors@1.1.1: {} picomatch@2.3.1: {} + picomatch@4.0.2: {} + pify@2.3.0: {} + pify@4.0.1: {} + pinkie@2.0.4: {} - pino-abstract-transport@1.2.0: + pino-abstract-transport@2.0.0: dependencies: - readable-stream: 4.5.2 split2: 4.2.0 pino-std-serializers@7.0.0: {} - pino@9.2.0: + pino@9.5.0: dependencies: atomic-sleep: 1.0.0 fast-redact: 3.5.0 on-exit-leak-free: 2.1.2 - pino-abstract-transport: 1.2.0 + pino-abstract-transport: 2.0.0 pino-std-serializers: 7.0.0 - process-warning: 3.0.0 + process-warning: 4.0.0 quick-format-unescaped: 4.0.4 real-require: 0.2.0 - safe-stable-stringify: 2.4.3 - sonic-boom: 4.0.1 + safe-stable-stringify: 2.5.0 + sonic-boom: 4.2.0 thread-stream: 3.1.0 pirates@4.0.6: {} @@ -7005,59 +7228,58 @@ snapshots: dependencies: find-up: 4.1.0 - possible-typed-array-names@1.0.0: {} + pkg-types@1.2.1: + dependencies: + confbox: 0.1.8 + mlly: 1.7.2 + pathe: 1.1.2 - postcss-import@15.1.0(postcss@8.4.39): + postcss-import@15.1.0(postcss@8.4.47): dependencies: - postcss: 8.4.39 + postcss: 8.4.47 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.8 - postcss-js@4.0.1(postcss@8.4.39): + postcss-js@4.0.1(postcss@8.4.47): dependencies: camelcase-css: 2.0.1 - postcss: 8.4.39 + postcss: 8.4.47 - postcss-load-config@4.0.2(postcss@8.4.39): + postcss-load-config@4.0.2(postcss@8.4.47): dependencies: lilconfig: 3.1.2 - yaml: 2.4.5 + yaml: 2.6.0 optionalDependencies: - postcss: 8.4.39 + postcss: 8.4.47 - postcss-nested@6.0.1(postcss@8.4.39): + postcss-nested@6.2.0(postcss@8.4.47): dependencies: - postcss: 8.4.39 - postcss-selector-parser: 6.1.0 + postcss: 8.4.47 + postcss-selector-parser: 6.1.2 - postcss-selector-parser@6.1.0: + postcss-selector-parser@6.1.2: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 postcss-value-parser@4.2.0: {} - postcss@8.4.39: + postcss@8.4.47: dependencies: nanoid: 3.3.7 - picocolors: 1.0.1 - source-map-js: 1.2.0 + picocolors: 1.1.1 + source-map-js: 1.2.1 - preact-iso@2.6.3(preact-render-to-string@6.5.5(preact@10.22.1))(preact@10.22.1): - dependencies: - preact: 10.22.1 - preact-render-to-string: 6.5.5(preact@10.22.1) + postgres-array@2.0.0: {} - preact-render-to-string@6.5.5(preact@10.22.1): - dependencies: - preact: 10.22.1 + postgres-bytea@1.0.0: {} - preact-router@4.1.2(preact@10.22.1): - dependencies: - preact: 10.22.1 + postgres-date@1.0.7: {} - preact@10.22.1: {} + postgres-interval@1.2.0: + dependencies: + xtend: 4.0.2 prebuild-install@7.1.2: dependencies: @@ -7067,24 +7289,27 @@ snapshots: minimist: 1.2.8 mkdirp-classic: 0.5.3 napi-build-utils: 1.0.2 - node-abi: 3.65.0 - pump: 3.0.0 + node-abi: 3.71.0 + pump: 3.0.2 rc: 1.2.8 simple-get: 4.0.1 tar-fs: 2.1.1 tunnel-agent: 0.6.0 - prelude-ls@1.2.1: {} - - prettier-plugin-tailwindcss@0.5.14(prettier@3.3.2): + preferred-pm@4.0.0: dependencies: - prettier: 3.3.2 + find-up-simple: 1.0.0 + find-yarn-workspace-root2: 1.2.16 + which-pm: 3.0.0 + + prettier@2.8.7: + optional: true - prettier@3.3.2: {} + prismjs@1.29.0: {} process-nextick-args@2.0.1: {} - process-warning@3.0.0: {} + process-warning@4.0.0: {} process@0.11.10: {} @@ -7097,22 +7322,23 @@ snapshots: retry: 0.12.0 optional: true - prop-types@15.8.1: + prompts@2.4.2: dependencies: - loose-envify: 1.4.0 - object-assign: 4.1.1 - react-is: 16.13.1 + kleur: 3.0.3 + sisteransi: 1.0.5 + + property-information@6.5.0: {} proxy-addr@2.0.7: dependencies: forwarded: 0.2.0 ipaddr.js: 1.9.1 - pseudomap@1.0.2: {} + proxy-from-env@1.1.0: {} psl@1.9.0: {} - pump@3.0.0: + pump@3.0.2: dependencies: end-of-stream: 1.4.4 once: 1.4.0 @@ -7121,81 +7347,24 @@ snapshots: dependencies: duplexify: 4.1.3 inherits: 2.0.4 - pump: 3.0.0 - - punycode@2.3.1: {} - - queue-microtask@1.2.3: {} - - quick-format-unescaped@4.0.4: {} - - rammerhead@https://github.com/NebulaServices/rammerhead/releases/download/rammerhead-1.2.41-nebula.8/rammerhead-1.2.41-nebula.7.tgz(bufferutil@4.0.8)(utf-8-validate@6.0.4): - dependencies: - async-exit-hook: 2.0.1 - cookie: 0.5.0 - keyv-lru-files: https://codeload.github.com/holy-unblocker/keyv-lru-files/tar.gz/dceb102630357eda76317f9005905bbc5e6521e7 - mime: 2.6.0 - testcafe-hammerhead: 24.5.18 - uglify-js: 3.18.0 - uuid: 8.3.2 - ws: 8.17.1(bufferutil@4.0.8)(utf-8-validate@6.0.4) - transitivePeerDependencies: - - bluebird - - bufferutil - - supports-color - - utf-8-validate - - rc@1.2.8: - dependencies: - deep-extend: 0.6.0 - ini: 1.3.8 - minimist: 1.2.8 - strip-json-comments: 2.0.1 - - react-dom@18.3.1(react@18.3.1): - dependencies: - loose-envify: 1.4.0 - react: 18.3.1 - scheduler: 0.23.2 - - react-fast-compare@3.2.2: {} - - react-helmet@6.1.0(react@18.3.1): - dependencies: - object-assign: 4.1.1 - prop-types: 15.8.1 - react: 18.3.1 - react-fast-compare: 3.2.2 - react-side-effect: 2.1.2(react@18.3.1) + pump: 3.0.2 - react-i18next@13.5.0(i18next@23.11.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - '@babel/runtime': 7.24.7 - html-parse-stringify: 3.0.1 - i18next: 23.11.5 - react: 18.3.1 - optionalDependencies: - react-dom: 18.3.1(react@18.3.1) + punycode@2.3.1: {} - react-icons@4.12.0(react@18.3.1): - dependencies: - react: 18.3.1 + querystringify@2.2.0: {} - react-is@16.13.1: {} + queue-microtask@1.2.3: {} - react-side-effect@2.1.2(react@18.3.1): - dependencies: - react: 18.3.1 + quick-format-unescaped@4.0.4: {} - react-toastify@9.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1): - dependencies: - clsx: 1.2.1 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + range-parser@1.2.1: {} - react@18.3.1: + rc@1.2.8: dependencies: - loose-envify: 1.4.0 + deep-extend: 0.6.0 + ini: 1.3.8 + minimist: 1.2.8 + strip-json-comments: 2.0.1 read-cache@1.0.0: dependencies: @@ -7235,48 +7404,129 @@ snapshots: real-require@0.2.0: {} - reflect.getprototypeof@1.0.6: + regenerator-runtime@0.14.1: {} + + regex@4.3.3: {} + + rehype-parse@9.0.1: dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - es-errors: 1.3.0 - get-intrinsic: 1.2.4 - globalthis: 1.0.4 - which-builtin-type: 1.1.3 + '@types/hast': 3.0.4 + hast-util-from-html: 2.0.3 + unified: 11.0.5 - regenerator-runtime@0.14.1: {} + rehype-raw@7.0.0: + dependencies: + '@types/hast': 3.0.4 + hast-util-raw: 9.0.4 + vfile: 6.0.3 + + rehype-stringify@10.0.1: + dependencies: + '@types/hast': 3.0.4 + hast-util-to-html: 9.0.3 + unified: 11.0.5 + + rehype@13.0.2: + dependencies: + '@types/hast': 3.0.4 + rehype-parse: 9.0.1 + rehype-stringify: 10.0.1 + unified: 11.0.5 + + relateurl@0.2.7: {} + + remark-gfm@4.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-gfm: 3.0.0 + micromark-extension-gfm: 3.0.0 + remark-parse: 11.0.0 + remark-stringify: 11.0.0 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + + remark-parse@11.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-from-markdown: 2.0.2 + micromark-util-types: 2.0.0 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + + remark-rehype@11.1.1: + dependencies: + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + mdast-util-to-hast: 13.2.0 + unified: 11.0.5 + vfile: 6.0.3 + + remark-smartypants@3.0.2: + dependencies: + retext: 9.0.0 + retext-smartypants: 6.2.0 + unified: 11.0.5 + unist-util-visit: 5.0.0 - regexp.prototype.flags@1.5.2: + remark-stringify@11.0.0: dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-errors: 1.3.0 - set-function-name: 2.0.2 + '@types/mdast': 4.0.4 + mdast-util-to-markdown: 2.1.0 + unified: 11.0.5 + + request-light@0.5.8: {} + + request-light@0.7.0: {} require-directory@2.1.1: {} require-from-string@2.0.2: {} - resolve-from@4.0.0: {} + requires-port@1.0.0: {} resolve-pkg-maps@1.0.0: {} - resolve-url@0.2.1: {} - resolve@1.22.8: dependencies: - is-core-module: 2.14.0 + is-core-module: 2.15.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - resolve@2.0.0-next.5: + restore-cursor@5.1.0: dependencies: - is-core-module: 2.14.0 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 + onetime: 7.0.0 + signal-exit: 4.1.0 + + ret@0.5.0: {} + + retext-latin@4.0.0: + dependencies: + '@types/nlcst': 2.0.3 + parse-latin: 7.0.0 + unified: 11.0.5 + + retext-smartypants@6.2.0: + dependencies: + '@types/nlcst': 2.0.3 + nlcst-to-string: 4.0.0 + unist-util-visit: 5.0.0 + + retext-stringify@4.0.0: + dependencies: + '@types/nlcst': 2.0.3 + nlcst-to-string: 4.0.0 + unified: 11.0.5 - ret@0.4.3: {} + retext@9.0.0: + dependencies: + '@types/nlcst': 2.0.3 + retext-latin: 4.0.0 + retext-stringify: 4.0.0 + unified: 11.0.5 + + retry-as-promised@7.0.4: {} retry@0.12.0: optional: true @@ -7285,183 +7535,169 @@ snapshots: rfdc@1.4.1: {} - rimraf@2.7.1: - dependencies: - glob: 7.2.3 - rimraf@3.0.2: dependencies: glob: 7.2.3 + optional: true - rollup-plugin-node-resolve@5.2.0(rollup@4.18.0): - dependencies: - '@types/resolve': 0.0.8 - builtin-modules: 3.3.0 - is-module: 1.0.0 - resolve: 1.22.8 - rollup: 4.18.0 - rollup-pluginutils: 2.8.2 - - rollup-plugin-typescript2@0.36.0(rollup@4.18.0)(typescript@5.5.2): - dependencies: - '@rollup/pluginutils': 4.2.1 - find-cache-dir: 3.3.2 - fs-extra: 10.1.0 - rollup: 4.18.0 - semver: 7.6.2 - tslib: 2.6.3 - typescript: 5.5.2 - - rollup-pluginutils@2.8.2: - dependencies: - estree-walker: 0.6.1 - - rollup@3.29.4: - optionalDependencies: - fsevents: 2.3.3 - - rollup@4.18.0: + rollup@4.24.0: dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.18.0 - '@rollup/rollup-android-arm64': 4.18.0 - '@rollup/rollup-darwin-arm64': 4.18.0 - '@rollup/rollup-darwin-x64': 4.18.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.18.0 - '@rollup/rollup-linux-arm-musleabihf': 4.18.0 - '@rollup/rollup-linux-arm64-gnu': 4.18.0 - '@rollup/rollup-linux-arm64-musl': 4.18.0 - '@rollup/rollup-linux-powerpc64le-gnu': 4.18.0 - '@rollup/rollup-linux-riscv64-gnu': 4.18.0 - '@rollup/rollup-linux-s390x-gnu': 4.18.0 - '@rollup/rollup-linux-x64-gnu': 4.18.0 - '@rollup/rollup-linux-x64-musl': 4.18.0 - '@rollup/rollup-win32-arm64-msvc': 4.18.0 - '@rollup/rollup-win32-ia32-msvc': 4.18.0 - '@rollup/rollup-win32-x64-msvc': 4.18.0 + '@rollup/rollup-android-arm-eabi': 4.24.0 + '@rollup/rollup-android-arm64': 4.24.0 + '@rollup/rollup-darwin-arm64': 4.24.0 + '@rollup/rollup-darwin-x64': 4.24.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.24.0 + '@rollup/rollup-linux-arm-musleabihf': 4.24.0 + '@rollup/rollup-linux-arm64-gnu': 4.24.0 + '@rollup/rollup-linux-arm64-musl': 4.24.0 + '@rollup/rollup-linux-powerpc64le-gnu': 4.24.0 + '@rollup/rollup-linux-riscv64-gnu': 4.24.0 + '@rollup/rollup-linux-s390x-gnu': 4.24.0 + '@rollup/rollup-linux-x64-gnu': 4.24.0 + '@rollup/rollup-linux-x64-musl': 4.24.0 + '@rollup/rollup-win32-arm64-msvc': 4.24.0 + '@rollup/rollup-win32-ia32-msvc': 4.24.0 + '@rollup/rollup-win32-x64-msvc': 4.24.0 fsevents: 2.3.3 - run-applescript@5.0.0: - dependencies: - execa: 5.1.1 - run-parallel@1.2.0: dependencies: queue-microtask: 1.2.3 rxjs@7.8.1: dependencies: - tslib: 2.6.3 - - safe-array-concat@1.1.2: - dependencies: - call-bind: 1.0.7 - get-intrinsic: 1.2.4 - has-symbols: 1.0.3 - isarray: 2.0.5 + tslib: 2.8.0 safe-buffer@5.1.2: {} safe-buffer@5.2.1: {} - safe-regex-test@1.0.3: + safe-regex2@4.0.0: dependencies: - call-bind: 1.0.7 - es-errors: 1.3.0 - is-regex: 1.1.4 + ret: 0.5.0 - safe-regex2@3.1.0: - dependencies: - ret: 0.4.3 - - safe-stable-stringify@2.4.3: {} + safe-stable-stringify@2.5.0: {} safer-buffer@2.1.2: {} - scheduler@0.23.2: + section-matter@1.0.0: dependencies: - loose-envify: 1.4.0 + extend-shallow: 2.0.1 + kind-of: 6.0.3 secure-json-parse@2.7.0: {} - semver@5.5.0: {} + secure-json-parse@3.0.0: {} semver@6.3.1: {} - semver@7.6.2: {} - - set-blocking@2.0.0: - optional: true + semver@7.5.3: + dependencies: + lru-cache: 6.0.0 - set-cookie-parser@2.6.0: {} + semver@7.6.3: {} - set-function-length@1.2.2: + send@0.19.1: dependencies: - define-data-property: 1.1.4 - es-errors: 1.3.0 - function-bind: 1.1.2 - get-intrinsic: 1.2.4 - gopd: 1.0.1 - has-property-descriptors: 1.0.2 + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + encodeurl: 2.0.0 + escape-html: 1.0.3 + etag: 1.8.1 + fresh: 0.5.2 + http-errors: 2.0.0 + mime: 1.6.0 + ms: 2.1.3 + on-finished: 2.4.1 + range-parser: 1.2.1 + statuses: 2.0.1 + transitivePeerDependencies: + - supports-color - set-function-name@2.0.2: + sequelize-pool@7.1.0: {} + + sequelize@6.37.5(pg-hstore@2.3.4)(pg@8.13.1)(sqlite3@5.1.7): dependencies: - define-data-property: 1.1.4 - es-errors: 1.3.0 - functions-have-names: 1.2.3 - has-property-descriptors: 1.0.2 + '@types/debug': 4.1.12 + '@types/validator': 13.12.2 + debug: 4.3.7 + dottie: 2.0.6 + inflection: 1.13.4 + lodash: 4.17.21 + moment: 2.30.1 + moment-timezone: 0.5.46 + pg-connection-string: 2.7.0 + retry-as-promised: 7.0.4 + semver: 7.6.3 + sequelize-pool: 7.1.0 + toposort-class: 1.0.1 + uuid: 8.3.2 + validator: 13.12.0 + wkx: 0.5.0 + optionalDependencies: + pg: 8.13.1 + pg-hstore: 2.3.4 + sqlite3: 5.1.7 + transitivePeerDependencies: + - supports-color + + server-destroy@1.0.1: {} + + set-blocking@2.0.0: + optional: true + + set-cookie-parser@2.7.1: {} setprototypeof@1.2.0: {} - sharp@0.33.4: + sharp@0.33.5: dependencies: color: 4.2.3 detect-libc: 2.0.3 - semver: 7.6.2 + semver: 7.6.3 optionalDependencies: - '@img/sharp-darwin-arm64': 0.33.4 - '@img/sharp-darwin-x64': 0.33.4 - '@img/sharp-libvips-darwin-arm64': 1.0.2 - '@img/sharp-libvips-darwin-x64': 1.0.2 - '@img/sharp-libvips-linux-arm': 1.0.2 - '@img/sharp-libvips-linux-arm64': 1.0.2 - '@img/sharp-libvips-linux-s390x': 1.0.2 - '@img/sharp-libvips-linux-x64': 1.0.2 - '@img/sharp-libvips-linuxmusl-arm64': 1.0.2 - '@img/sharp-libvips-linuxmusl-x64': 1.0.2 - '@img/sharp-linux-arm': 0.33.4 - '@img/sharp-linux-arm64': 0.33.4 - '@img/sharp-linux-s390x': 0.33.4 - '@img/sharp-linux-x64': 0.33.4 - '@img/sharp-linuxmusl-arm64': 0.33.4 - '@img/sharp-linuxmusl-x64': 0.33.4 - '@img/sharp-wasm32': 0.33.4 - '@img/sharp-win32-ia32': 0.33.4 - '@img/sharp-win32-x64': 0.33.4 - - shebang-command@1.2.0: - dependencies: - shebang-regex: 1.0.0 + '@img/sharp-darwin-arm64': 0.33.5 + '@img/sharp-darwin-x64': 0.33.5 + '@img/sharp-libvips-darwin-arm64': 1.0.4 + '@img/sharp-libvips-darwin-x64': 1.0.4 + '@img/sharp-libvips-linux-arm': 1.0.5 + '@img/sharp-libvips-linux-arm64': 1.0.4 + '@img/sharp-libvips-linux-s390x': 1.0.4 + '@img/sharp-libvips-linux-x64': 1.0.4 + '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 + '@img/sharp-libvips-linuxmusl-x64': 1.0.4 + '@img/sharp-linux-arm': 0.33.5 + '@img/sharp-linux-arm64': 0.33.5 + '@img/sharp-linux-s390x': 0.33.5 + '@img/sharp-linux-x64': 0.33.5 + '@img/sharp-linuxmusl-arm64': 0.33.5 + '@img/sharp-linuxmusl-x64': 0.33.5 + '@img/sharp-wasm32': 0.33.5 + '@img/sharp-win32-ia32': 0.33.5 + '@img/sharp-win32-x64': 0.33.5 shebang-command@2.0.0: dependencies: shebang-regex: 3.0.0 - shebang-regex@1.0.0: {} - shebang-regex@3.0.0: {} shell-quote@1.8.1: {} - side-channel@1.0.6: + shiki@1.22.1: dependencies: - call-bind: 1.0.7 - es-errors: 1.3.0 - get-intrinsic: 1.2.4 - object-inspect: 1.13.2 + '@shikijs/core': 1.22.1 + '@shikijs/engine-javascript': 1.22.1 + '@shikijs/engine-oniguruma': 1.22.1 + '@shikijs/types': 1.22.1 + '@shikijs/vscode-textmate': 9.3.0 + '@types/hast': 3.0.4 - signal-exit@3.0.7: {} + signal-exit@3.0.7: + optional: true signal-exit@4.1.0: {} @@ -7477,15 +7713,17 @@ snapshots: dependencies: is-arrayish: 0.3.2 - slash@3.0.0: {} + sisteransi@1.0.5: {} smart-buffer@4.2.0: optional: true + smol-toml@1.3.0: {} + socks-proxy-agent@6.2.1: dependencies: agent-base: 6.0.2 - debug: 4.3.5 + debug: 4.3.7 socks: 2.8.3 transitivePeerDependencies: - supports-color @@ -7497,46 +7735,34 @@ snapshots: smart-buffer: 4.2.0 optional: true - sonic-boom@4.0.1: + sonic-boom@4.2.0: dependencies: atomic-sleep: 1.0.0 - source-map-js@1.2.0: {} - - source-map-resolve@0.5.3: - dependencies: - atob: 2.1.2 - decode-uri-component: 0.2.2 - resolve-url: 0.2.1 - source-map-url: 0.4.1 - urix: 0.1.0 + source-map-js@1.2.1: {} source-map-support@0.5.21: dependencies: buffer-from: 1.1.2 source-map: 0.6.1 - source-map-url@0.4.1: {} - - source-map@0.1.43: - dependencies: - amdefine: 1.0.1 - source-map@0.6.1: {} - source-map@0.7.4: {} + space-separated-tokens@2.0.2: {} spawn-command@0.0.2: {} split2@4.2.0: {} + sprintf-js@1.0.3: {} + sprintf-js@1.1.3: optional: true sqlite3@5.1.7: dependencies: bindings: 1.5.0 - node-addon-api: 7.1.0 + node-addon-api: 7.1.1 prebuild-install: 7.1.2 tar: 6.2.1 optionalDependencies: @@ -7545,17 +7771,23 @@ snapshots: - bluebird - supports-color - sqlite@4.2.1: {} - ssri@8.0.1: dependencies: minipass: 3.3.6 optional: true - stack-trace@1.0.0-pre2: {} - statuses@2.0.1: {} + stdin-discarder@0.2.2: {} + + sticky-session-custom@1.2.1: + dependencies: + debug: 2.6.9 + http-parser-js: 0.5.8 + ip: 1.1.9 + transitivePeerDependencies: + - supports-color + stream-shift@1.0.3: {} string-width@4.2.3: @@ -7570,39 +7802,11 @@ snapshots: emoji-regex: 9.2.2 strip-ansi: 7.1.0 - string.prototype.matchall@4.0.11: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - es-errors: 1.3.0 - es-object-atoms: 1.0.0 - get-intrinsic: 1.2.4 - gopd: 1.0.1 - has-symbols: 1.0.3 - internal-slot: 1.0.7 - regexp.prototype.flags: 1.5.2 - set-function-name: 2.0.2 - side-channel: 1.0.6 - - string.prototype.trim@1.2.9: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - es-object-atoms: 1.0.0 - - string.prototype.trimend@1.0.8: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-object-atoms: 1.0.0 - - string.prototype.trimstart@1.0.8: + string-width@7.2.0: dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-object-atoms: 1.0.0 + emoji-regex: 10.4.0 + get-east-asian-width: 1.3.0 + strip-ansi: 7.1.0 string_decoder@1.1.1: dependencies: @@ -7612,38 +7816,35 @@ snapshots: dependencies: safe-buffer: 5.2.1 + stringify-entities@4.0.4: + dependencies: + character-entities-html4: 2.1.0 + character-entities-legacy: 3.0.0 + strip-ansi@6.0.1: dependencies: ansi-regex: 5.0.1 strip-ansi@7.1.0: dependencies: - ansi-regex: 6.0.1 - - strip-eof@1.0.0: {} + ansi-regex: 6.1.0 - strip-final-newline@2.0.0: {} + strip-bom-string@1.0.0: {} - strip-final-newline@3.0.0: {} + strip-bom@3.0.0: {} strip-json-comments@2.0.1: {} - strip-json-comments@3.1.1: {} - sucrase@3.35.0: dependencies: '@jridgewell/gen-mapping': 0.3.5 commander: 4.1.1 - glob: 10.4.2 + glob: 10.4.5 lines-and-columns: 1.2.4 mz: 2.7.0 pirates: 4.0.6 ts-interface-checker: 0.1.13 - supports-color@5.5.0: - dependencies: - has-flag: 3.0.0 - supports-color@7.2.0: dependencies: has-flag: 4.0.0 @@ -7654,7 +7855,54 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - tailwindcss@3.4.4: + svelte-french-toast@1.2.0(svelte@4.2.19): + dependencies: + svelte: 4.2.19 + svelte-writable-derived: 3.1.1(svelte@4.2.19) + + svelte-hmr@0.16.0(svelte@4.2.19): + dependencies: + svelte: 4.2.19 + + svelte-writable-derived@3.1.1(svelte@4.2.19): + dependencies: + svelte: 4.2.19 + + svelte2tsx@0.7.22(svelte@4.2.19)(typescript@5.6.3): + dependencies: + dedent-js: 1.0.1 + pascal-case: 3.1.2 + svelte: 4.2.19 + typescript: 5.6.3 + + svelte@4.2.19: + dependencies: + '@ampproject/remapping': 2.3.0 + '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping': 0.3.25 + '@types/estree': 1.0.6 + acorn: 8.13.0 + aria-query: 5.3.2 + axobject-query: 4.1.0 + code-red: 1.0.4 + css-tree: 2.3.1 + estree-walker: 3.0.3 + is-reference: 3.0.2 + locate-character: 3.0.0 + magic-string: 0.30.12 + periscopic: 3.1.0 + + svgo@3.3.2: + dependencies: + '@trysound/sax': 0.2.0 + commander: 7.2.0 + css-select: 5.1.0 + css-tree: 2.3.1 + css-what: 6.1.0 + csso: 5.0.5 + picocolors: 1.1.1 + + tailwindcss@3.4.14: dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 @@ -7666,16 +7914,16 @@ snapshots: is-glob: 4.0.3 jiti: 1.21.6 lilconfig: 2.1.0 - micromatch: 4.0.7 + micromatch: 4.0.8 normalize-path: 3.0.0 object-hash: 3.0.0 - picocolors: 1.0.1 - postcss: 8.4.39 - postcss-import: 15.1.0(postcss@8.4.39) - postcss-js: 4.0.1(postcss@8.4.39) - postcss-load-config: 4.0.2(postcss@8.4.39) - postcss-nested: 6.0.1(postcss@8.4.39) - postcss-selector-parser: 6.1.0 + picocolors: 1.1.1 + postcss: 8.4.47 + postcss-import: 15.1.0(postcss@8.4.47) + postcss-js: 4.0.1(postcss@8.4.47) + postcss-load-config: 4.0.2(postcss@8.4.47) + postcss-nested: 6.2.0(postcss@8.4.47) + postcss-selector-parser: 6.1.2 resolve: 1.22.8 sucrase: 3.35.0 transitivePeerDependencies: @@ -7685,7 +7933,7 @@ snapshots: dependencies: chownr: 1.1.4 mkdirp-classic: 0.5.3 - pump: 3.0.0 + pump: 3.0.2 tar-stream: 2.2.0 tar-stream@2.2.0: @@ -7705,16 +7953,24 @@ snapshots: mkdirp: 1.0.4 yallist: 4.0.0 - testcafe-hammerhead@24.5.18: + terser@5.36.0: + dependencies: + '@jridgewell/source-map': 0.3.6 + acorn: 8.13.0 + commander: 2.20.3 + source-map-support: 0.5.21 + + testcafe-hammerhead@31.7.2(bufferutil@4.0.8)(utf-8-validate@6.0.4): dependencies: - acorn-hammerhead: 0.6.1 - asar: 2.1.0 + '@adobe/css-tools': 4.4.0 + '@electron/asar': 3.2.14 + acorn-hammerhead: 0.6.2 bowser: 1.6.0 crypto-md5: 1.0.0 - css: 2.2.3 debug: 4.3.1 - esotope-hammerhead: 0.6.1 + esotope-hammerhead: 0.6.8 http-cache-semantics: 4.1.1 + httpntlm: 1.8.13 iconv-lite: 0.5.1 lodash: 4.17.21 lru-cache: 2.6.3 @@ -7724,17 +7980,17 @@ snapshots: mustache: 2.3.2 nanoid: 3.3.7 os-family: 1.1.0 - parse5: 2.2.3 + parse5: 7.2.0 pinkie: 2.0.4 read-file-relative: 1.2.0 - semver: 5.5.0 - tough-cookie: 4.0.0 + semver: 7.5.3 + tough-cookie: 4.1.3 tunnel-agent: 0.6.0 - webauth: 1.1.0 + ws: 7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.4) transitivePeerDependencies: + - bufferutil - supports-color - - text-table@0.2.0: {} + - utf-8-validate thenify-all@1.6.0: dependencies: @@ -7753,18 +8009,14 @@ snapshots: readable-stream: 2.3.8 xtend: 4.0.2 - titleize@3.0.0: {} + tinycolor2@1.6.0: {} - tmp-promise@1.1.0: - dependencies: - bluebird: 3.7.2 - tmp: 0.1.0 + tinyexec@0.3.1: {} - tmp@0.1.0: + tinygradient@1.1.5: dependencies: - rimraf: 2.7.1 - - to-fast-properties@2.0.0: {} + '@types/tinycolor2': 1.4.6 + tinycolor2: 1.6.0 to-regex-range@5.0.1: dependencies: @@ -7774,29 +8026,33 @@ snapshots: toidentifier@1.0.1: {} - tough-cookie@4.0.0: + toposort-class@1.0.1: {} + + tough-cookie@4.1.3: dependencies: psl: 1.9.0 punycode: 2.3.1 - universalify: 0.1.2 + universalify: 0.2.0 + url-parse: 1.5.10 tree-kill@1.2.2: {} - ts-interface-checker@0.1.13: {} + trim-lines@3.0.1: {} - tslib@1.14.1: {} + trough@2.2.0: {} - tslib@2.6.3: {} + ts-interface-checker@0.1.13: {} - tsutils@3.21.0(typescript@5.5.2): - dependencies: - tslib: 1.14.1 - typescript: 5.5.2 + tsconfck@3.1.4(typescript@5.6.3): + optionalDependencies: + typescript: 5.6.3 + + tslib@2.8.0: {} - tsx@4.16.0: + tsx@4.19.1: dependencies: - esbuild: 0.21.5 - get-tsconfig: 4.7.5 + esbuild: 0.23.1 + get-tsconfig: 4.8.1 optionalDependencies: fsevents: 2.3.3 @@ -7804,56 +8060,37 @@ snapshots: dependencies: safe-buffer: 5.2.1 - type-check@0.4.0: - dependencies: - prelude-ls: 1.2.1 + type-fest@4.26.1: {} - type-fest@0.20.2: {} + typesafe-path@0.2.2: {} - typed-array-buffer@1.0.2: + typescript-auto-import-cache@0.3.5: dependencies: - call-bind: 1.0.7 - es-errors: 1.3.0 - is-typed-array: 1.1.13 + semver: 7.6.3 - typed-array-byte-length@1.0.1: - dependencies: - call-bind: 1.0.7 - for-each: 0.3.3 - gopd: 1.0.1 - has-proto: 1.0.3 - is-typed-array: 1.1.13 + typescript@5.6.3: {} - typed-array-byte-offset@1.0.2: - dependencies: - available-typed-arrays: 1.0.7 - call-bind: 1.0.7 - for-each: 0.3.3 - gopd: 1.0.1 - has-proto: 1.0.3 - is-typed-array: 1.1.13 + ufo@1.5.4: {} - typed-array-length@1.0.6: - dependencies: - call-bind: 1.0.7 - for-each: 0.3.3 - gopd: 1.0.1 - has-proto: 1.0.3 - is-typed-array: 1.1.13 - possible-typed-array-names: 1.0.0 + uglify-js@3.19.3: {} - typescript@5.5.2: {} + underscore@1.12.1: {} - uglify-js@3.18.0: {} + underscore@1.13.7: {} - unbox-primitive@1.0.2: - dependencies: - call-bind: 1.0.7 - has-bigints: 1.0.2 - has-symbols: 1.0.3 - which-boxed-primitive: 1.0.2 + undici-types@6.19.8: {} - undici-types@5.26.5: {} + undici@6.20.1: {} + + unified@11.0.5: + dependencies: + '@types/unist': 3.0.3 + bail: 2.0.2 + devlop: 1.1.0 + extend: 3.0.2 + is-plain-obj: 4.1.0 + trough: 2.2.0 + vfile: 6.0.3 unique-filename@1.1.1: dependencies: @@ -7865,116 +8102,239 @@ snapshots: imurmurhash: 0.1.4 optional: true - universalify@0.1.2: {} + unist-util-find-after@5.0.0: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.0 - universalify@2.0.1: {} + unist-util-is@6.0.0: + dependencies: + '@types/unist': 3.0.3 - unplugin@1.11.0: + unist-util-modify-children@4.0.0: dependencies: - acorn: 8.12.0 - chokidar: 3.6.0 - webpack-sources: 3.2.3 - webpack-virtual-modules: 0.6.2 + '@types/unist': 3.0.3 + array-iterate: 2.0.1 - untildify@4.0.0: {} + unist-util-position@5.0.0: + dependencies: + '@types/unist': 3.0.3 - update-browserslist-db@1.0.16(browserslist@4.23.1): + unist-util-remove-position@5.0.0: dependencies: - browserslist: 4.23.1 - escalade: 3.1.2 - picocolors: 1.0.1 + '@types/unist': 3.0.3 + unist-util-visit: 5.0.0 - uri-js@4.4.1: + unist-util-stringify-position@4.0.0: dependencies: - punycode: 2.3.1 + '@types/unist': 3.0.3 + + unist-util-visit-children@3.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-visit-parents@6.0.1: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.0 + + unist-util-visit@5.0.0: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.0 + unist-util-visit-parents: 6.0.1 - urix@0.1.0: {} + universalify@0.2.0: {} + + universalify@2.0.1: {} + + update-browserslist-db@1.1.1(browserslist@4.24.2): + dependencies: + browserslist: 4.24.2 + escalade: 3.2.0 + picocolors: 1.1.1 + + url-parse@1.5.10: + dependencies: + querystringify: 2.2.0 + requires-port: 1.0.0 utf-8-validate@6.0.4: dependencies: - node-gyp-build: 4.8.1 + node-gyp-build: 4.8.2 util-deprecate@1.0.2: {} uuid@8.3.2: {} - uuid@9.0.1: {} + validator@13.12.0: {} + + vfile-location@5.0.3: + dependencies: + '@types/unist': 3.0.3 + vfile: 6.0.3 + + vfile-message@4.0.2: + dependencies: + '@types/unist': 3.0.3 + unist-util-stringify-position: 4.0.0 - vary@1.1.2: {} + vfile@6.0.3: + dependencies: + '@types/unist': 3.0.3 + vfile-message: 4.0.2 - vite-plugin-static-copy@1.0.5(vite@5.3.2(@types/node@20.14.9)): + vite-plugin-static-copy@1.0.6(vite@5.4.10(@types/node@22.8.0)(lightningcss@1.27.0)(terser@5.36.0)): dependencies: chokidar: 3.6.0 fast-glob: 3.3.2 fs-extra: 11.2.0 - picocolors: 1.0.1 - vite: 5.3.2(@types/node@20.14.9) - - vite-plugin-vsharp@1.8.1(vite@5.3.2(@types/node@20.14.9)): - dependencies: - chalk: 4.1.2 - glob: 7.2.3 - sharp: 0.33.4 - vite: 5.3.2(@types/node@20.14.9) + picocolors: 1.1.1 + vite: 5.4.10(@types/node@22.8.0)(lightningcss@1.27.0)(terser@5.36.0) - vite@5.3.2(@types/node@20.14.9): + vite@5.4.10(@types/node@22.8.0)(lightningcss@1.27.0)(terser@5.36.0): dependencies: esbuild: 0.21.5 - postcss: 8.4.39 - rollup: 4.18.0 + postcss: 8.4.47 + rollup: 4.24.0 optionalDependencies: - '@types/node': 20.14.9 + '@types/node': 22.8.0 fsevents: 2.3.3 + lightningcss: 1.27.0 + terser: 5.36.0 + + vitefu@0.2.5(vite@5.4.10(@types/node@22.8.0)(lightningcss@1.27.0)(terser@5.36.0)): + optionalDependencies: + vite: 5.4.10(@types/node@22.8.0)(lightningcss@1.27.0)(terser@5.36.0) + + vitefu@1.0.3(vite@5.4.10(@types/node@22.8.0)(lightningcss@1.27.0)(terser@5.36.0)): + optionalDependencies: + vite: 5.4.10(@types/node@22.8.0)(lightningcss@1.27.0)(terser@5.36.0) - void-elements@3.1.0: {} + volar-service-css@0.0.62(@volar/language-service@2.4.7): + dependencies: + vscode-css-languageservice: 6.3.1 + vscode-languageserver-textdocument: 1.0.12 + vscode-uri: 3.0.8 + optionalDependencies: + '@volar/language-service': 2.4.7 - webauth@1.1.0: {} + volar-service-emmet@0.0.62(@volar/language-service@2.4.7): + dependencies: + '@emmetio/css-parser': 0.4.0 + '@emmetio/html-matcher': 1.3.0 + '@vscode/emmet-helper': 2.9.3 + vscode-uri: 3.0.8 + optionalDependencies: + '@volar/language-service': 2.4.7 - webpack-sources@3.2.3: {} + volar-service-html@0.0.62(@volar/language-service@2.4.7): + dependencies: + vscode-html-languageservice: 5.3.1 + vscode-languageserver-textdocument: 1.0.12 + vscode-uri: 3.0.8 + optionalDependencies: + '@volar/language-service': 2.4.7 - webpack-virtual-modules@0.6.2: {} + volar-service-prettier@0.0.62(@volar/language-service@2.4.7): + dependencies: + vscode-uri: 3.0.8 + optionalDependencies: + '@volar/language-service': 2.4.7 - which-boxed-primitive@1.0.2: + volar-service-typescript-twoslash-queries@0.0.62(@volar/language-service@2.4.7): dependencies: - is-bigint: 1.0.4 - is-boolean-object: 1.1.2 - is-number-object: 1.0.7 - is-string: 1.0.7 - is-symbol: 1.0.4 + vscode-uri: 3.0.8 + optionalDependencies: + '@volar/language-service': 2.4.7 - which-builtin-type@1.1.3: + volar-service-typescript@0.0.62(@volar/language-service@2.4.7): dependencies: - function.prototype.name: 1.1.6 - has-tostringtag: 1.0.2 - is-async-function: 2.0.0 - is-date-object: 1.0.5 - is-finalizationregistry: 1.0.2 - is-generator-function: 1.0.10 - is-regex: 1.1.4 - is-weakref: 1.0.2 - isarray: 2.0.5 - which-boxed-primitive: 1.0.2 - which-collection: 1.0.2 - which-typed-array: 1.1.15 + path-browserify: 1.0.1 + semver: 7.6.3 + typescript-auto-import-cache: 0.3.5 + vscode-languageserver-textdocument: 1.0.12 + vscode-nls: 5.2.0 + vscode-uri: 3.0.8 + optionalDependencies: + '@volar/language-service': 2.4.7 - which-collection@1.0.2: + volar-service-yaml@0.0.62(@volar/language-service@2.4.7): dependencies: - is-map: 2.0.3 - is-set: 2.0.3 - is-weakmap: 2.0.2 - is-weakset: 2.0.3 + vscode-uri: 3.0.8 + yaml-language-server: 1.15.0 + optionalDependencies: + '@volar/language-service': 2.4.7 - which-typed-array@1.1.15: + vscode-css-languageservice@6.3.1: dependencies: - available-typed-arrays: 1.0.7 - call-bind: 1.0.7 - for-each: 0.3.3 - gopd: 1.0.1 - has-tostringtag: 1.0.2 + '@vscode/l10n': 0.0.18 + vscode-languageserver-textdocument: 1.0.12 + vscode-languageserver-types: 3.17.5 + vscode-uri: 3.0.8 - which@1.3.1: + vscode-html-languageservice@5.3.1: dependencies: - isexe: 2.0.0 + '@vscode/l10n': 0.0.18 + vscode-languageserver-textdocument: 1.0.12 + vscode-languageserver-types: 3.17.5 + vscode-uri: 3.0.8 + + vscode-json-languageservice@4.1.8: + dependencies: + jsonc-parser: 3.3.1 + vscode-languageserver-textdocument: 1.0.12 + vscode-languageserver-types: 3.17.5 + vscode-nls: 5.2.0 + vscode-uri: 3.0.8 + + vscode-jsonrpc@6.0.0: {} + + vscode-jsonrpc@8.2.0: {} + + vscode-languageserver-protocol@3.16.0: + dependencies: + vscode-jsonrpc: 6.0.0 + vscode-languageserver-types: 3.16.0 + + vscode-languageserver-protocol@3.17.5: + dependencies: + vscode-jsonrpc: 8.2.0 + vscode-languageserver-types: 3.17.5 + + vscode-languageserver-textdocument@1.0.12: {} + + vscode-languageserver-types@3.16.0: {} + + vscode-languageserver-types@3.17.5: {} + + vscode-languageserver@7.0.0: + dependencies: + vscode-languageserver-protocol: 3.16.0 + + vscode-languageserver@9.0.1: + dependencies: + vscode-languageserver-protocol: 3.17.5 + + vscode-nls@5.2.0: {} + + vscode-uri@2.1.2: {} + + vscode-uri@3.0.8: {} + + web-namespaces@2.0.1: {} + + whatwg-encoding@3.1.1: + dependencies: + iconv-lite: 0.6.3 + + whatwg-mimetype@4.0.0: {} + + which-pm-runs@1.1.0: {} + + which-pm@3.0.0: + dependencies: + load-yaml-file: 0.2.0 which@2.0.2: dependencies: @@ -7985,13 +8345,19 @@ snapshots: string-width: 4.2.3 optional: true - wisp-server-node@1.1.0: + widest-line@5.0.0: + dependencies: + string-width: 7.2.0 + + wisp-server-node@1.1.7: dependencies: bufferutil: 4.0.8 utf-8-validate: 6.0.4 - ws: 8.17.1(bufferutil@4.0.8)(utf-8-validate@6.0.4) + ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@6.0.4) - word-wrap@1.2.5: {} + wkx@0.5.0: + dependencies: + '@types/node': 22.8.0 wrap-ansi@7.0.0: dependencies: @@ -8005,40 +8371,81 @@ snapshots: string-width: 5.1.2 strip-ansi: 7.1.0 + wrap-ansi@9.0.0: + dependencies: + ansi-styles: 6.2.1 + string-width: 7.2.0 + strip-ansi: 7.1.0 + wrappy@1.0.2: {} - ws@8.16.0(bufferutil@4.0.8)(utf-8-validate@6.0.4): + ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.4): optionalDependencies: bufferutil: 4.0.8 utf-8-validate: 6.0.4 - ws@8.17.1(bufferutil@4.0.8)(utf-8-validate@6.0.4): + ws@8.18.0(bufferutil@4.0.8)(utf-8-validate@6.0.4): optionalDependencies: bufferutil: 4.0.8 utf-8-validate: 6.0.4 xtend@4.0.2: {} - y18n@5.0.8: {} + xxhash-wasm@1.0.2: {} - yallist@2.1.2: {} + y18n@5.0.8: {} yallist@3.1.1: {} yallist@4.0.0: {} - yaml@2.4.5: {} + yaml-language-server@1.15.0: + dependencies: + ajv: 8.17.1 + lodash: 4.17.21 + request-light: 0.5.8 + vscode-json-languageservice: 4.1.8 + vscode-languageserver: 7.0.0 + vscode-languageserver-textdocument: 1.0.12 + vscode-languageserver-types: 3.17.5 + vscode-nls: 5.2.0 + vscode-uri: 3.0.8 + yaml: 2.2.2 + optionalDependencies: + prettier: 2.8.7 + + yaml@2.2.2: {} + + yaml@2.6.0: {} yargs-parser@21.1.1: {} yargs@17.7.2: dependencies: cliui: 8.0.1 - escalade: 3.1.2 + escalade: 3.2.0 get-caller-file: 2.0.5 require-directory: 2.1.1 string-width: 4.2.3 y18n: 5.0.8 yargs-parser: 21.1.1 - yocto-queue@0.1.0: {} + yauzl@2.10.0: + dependencies: + buffer-crc32: 0.2.13 + fd-slicer: 1.1.0 + + yocto-queue@1.1.1: {} + + zod-to-json-schema@3.23.5(zod@3.23.8): + dependencies: + zod: 3.23.8 + + zod-to-ts@1.2.0(typescript@5.6.3)(zod@3.23.8): + dependencies: + typescript: 5.6.3 + zod: 3.23.8 + + zod@3.23.8: {} + + zwitch@2.0.4: {} diff --git a/postcss.config.js b/postcss.config.js deleted file mode 100644 index 82fbe552..00000000 --- a/postcss.config.js +++ /dev/null @@ -1,6 +0,0 @@ -export default { - plugins: { - tailwindcss: {}, - autoprefixer: {} - } -}; diff --git a/public/404.png b/public/404.png deleted file mode 100644 index 758ad8f0..00000000 Binary files a/public/404.png and /dev/null differ diff --git a/public/bg.mp4 b/public/bg.mp4 deleted file mode 100644 index 9f77be69..00000000 Binary files a/public/bg.mp4 and /dev/null differ diff --git a/public/classic_theme.png b/public/classic_theme.png new file mode 100644 index 00000000..a52677d9 Binary files /dev/null and b/public/classic_theme.png differ diff --git a/public/cloaks/canvas.ico b/public/cloaks/canvas.ico new file mode 100644 index 00000000..7798ef13 Binary files /dev/null and b/public/cloaks/canvas.ico differ diff --git a/public/cloaks/classroom.png b/public/cloaks/classroom.png new file mode 100644 index 00000000..49804ada Binary files /dev/null and b/public/cloaks/classroom.png differ diff --git a/public/cloaks/google.png b/public/cloaks/google.png new file mode 100644 index 00000000..8642fc1d Binary files /dev/null and b/public/cloaks/google.png differ diff --git a/public/cloaks/ps.ico b/public/cloaks/ps.ico new file mode 100644 index 00000000..22d60e31 Binary files /dev/null and b/public/cloaks/ps.ico differ diff --git a/public/cloaks/wikipedia.ico b/public/cloaks/wikipedia.ico new file mode 100644 index 00000000..e7002184 Binary files /dev/null and b/public/cloaks/wikipedia.ico differ diff --git a/public/comingsoonsnake.png b/public/comingsoonsnake.png deleted file mode 100644 index a5b5339e..00000000 Binary files a/public/comingsoonsnake.png and /dev/null differ diff --git a/public/crismas.json b/public/crismas.json deleted file mode 100644 index 715317ba..00000000 --- a/public/crismas.json +++ /dev/null @@ -1,110 +0,0 @@ -{ - "particles": { - "number": { - "value": 300, - "density": { - "enable": true, - "value_area": 800 - } - }, - "color": { - "value": "#ffffff" - }, - "shape": { - "type": "circle", - "stroke": { - "width": 0, - "color": "#000000" - }, - "polygon": { - "nb_sides": 5 - }, - "image": { - "src": "img/github.svg", - "width": 100, - "height": 100 - } - }, - "opacity": { - "value": 0.5, - "random": false, - "anim": { - "enable": false, - "speed": 1, - "opacity_min": 0.1, - "sync": false - } - }, - "size": { - "value": 1.5, - "random": true, - "anim": { - "enable": false, - "speed": 40, - "size_min": 0.1, - "sync": false - } - }, - "line_linked": { - "enable": false, - "distance": 150, - "color": "#ffffff", - "opacity": 0.4, - "width": 1 - }, - "move": { - "enable": true, - "speed": 6.3974410235905665, - "direction": "bottom-right", - "random": false, - "straight": false, - "out_mode": "out", - "bounce": false, - "attract": { - "enable": false, - "rotateX": 600, - "rotateY": 1200 - } - } - }, - "interactivity": { - "detect_on": "canvas", - "events": { - "onhover": { - "enable": false, - "mode": "repulse" - }, - "onclick": { - "enable": false, - "mode": "push" - }, - "resize": true - }, - "modes": { - "grab": { - "distance": 400, - "line_linked": { - "opacity": 1 - } - }, - "bubble": { - "distance": 400, - "size": 40, - "duration": 2, - "opacity": 8, - "speed": 3 - }, - "repulse": { - "distance": 200, - "duration": 0.4 - }, - "push": { - "particles_nb": 4 - }, - "remove": { - "particles_nb": 2 - } - } - }, - "retina_detect": true -} diff --git a/public/dynamic/dynamic.config.js b/public/dynamic/dynamic.config.js deleted file mode 100644 index 477e10d4..00000000 --- a/public/dynamic/dynamic.config.js +++ /dev/null @@ -1,30 +0,0 @@ -// See documentation for more information - -self.__dynamic$config = { - prefix: '/~/dynamic/', - encoding: 'aes', - mode: 'production', - logLevel: 0, - bare: { - version: 2, - path: '/bare/', - }, - tab: { - title: 'Service', - icon: null, - ua: null, - }, - assets: { - prefix: '/dynamic/', - files: { - handler: 'dynamic.handler.js', - client: 'dynamic.client.js', - worker: 'dynamic.worker.js', - config: 'dynamic.config.js', - inject: null, - } - }, - block: [ - - ] -}; diff --git a/public/favicon.svg b/public/favicon.svg new file mode 100644 index 00000000..f157bd1c --- /dev/null +++ b/public/favicon.svg @@ -0,0 +1,9 @@ + + + + diff --git a/public/generic_globe.png b/public/generic_globe.png deleted file mode 100644 index 79b56dae..00000000 Binary files a/public/generic_globe.png and /dev/null differ diff --git a/public/logo.png b/public/logo.png deleted file mode 100644 index 3afb9bf0..00000000 Binary files a/public/logo.png and /dev/null differ diff --git a/public/nebula.css b/public/nebula.css new file mode 100644 index 00000000..128833b2 --- /dev/null +++ b/public/nebula.css @@ -0,0 +1,19 @@ +:root { + --background-primary: #191724; + --background-lighter: #16121f; + --navbar-color: #26233a; + --navbar-height: 60px; + --navbar-text-color: #7967dd; + --navbar-link-color: #e0def4; + --navbar-link-hover-color: gray; + --navbar-font: "Roboto"; + --input-text-color: #e0def4; + --input-placeholder-color: white; + --input-background-color: #1f1d2e; + --input-border-color: #eb6f92; + --input-border-size: 1.3px; + --navbar-logo-filter: none; + --dropdown-option-hover-color: #312a49; + --tab-color: var(--black); + --border-color: #16121f; +} diff --git a/public/particlesjs-config.json b/public/particlesjs-config.json deleted file mode 100644 index e5d3a733..00000000 --- a/public/particlesjs-config.json +++ /dev/null @@ -1,110 +0,0 @@ -{ - "particles": { - "number": { - "value": 80, - "density": { - "enable": true, - "value_area": 800 - } - }, - "color": { - "value": "#ffffff" - }, - "shape": { - "type": "circle", - "stroke": { - "width": 0, - "color": "#000000" - }, - "polygon": { - "nb_sides": 5 - }, - "image": { - "src": "img/github.svg", - "width": 100, - "height": 100 - } - }, - "opacity": { - "value": 0.5, - "random": false, - "anim": { - "enable": false, - "speed": 1, - "opacity_min": 0.1, - "sync": false - } - }, - "size": { - "value": 3, - "random": true, - "anim": { - "enable": false, - "speed": 40, - "size_min": 0.1, - "sync": false - } - }, - "line_linked": { - "enable": true, - "distance": 150, - "color": "#ffffff", - "opacity": 0.4, - "width": 1 - }, - "move": { - "enable": true, - "speed": 6, - "direction": "none", - "random": false, - "straight": false, - "out_mode": "out", - "bounce": false, - "attract": { - "enable": false, - "rotateX": 600, - "rotateY": 1200 - } - } - }, - "interactivity": { - "detect_on": "canvas", - "events": { - "onhover": { - "enable": true, - "mode": "repulse" - }, - "onclick": { - "enable": true, - "mode": "push" - }, - "resize": true - }, - "modes": { - "grab": { - "distance": 400, - "line_linked": { - "opacity": 1 - } - }, - "bubble": { - "distance": 400, - "size": 40, - "duration": 2, - "opacity": 8, - "speed": 3 - }, - "repulse": { - "distance": 200, - "duration": 0.4 - }, - "push": { - "particles_nb": 4 - }, - "remove": { - "particles_nb": 2 - } - } - }, - "retina_detect": true -} diff --git a/public/robots.txt b/public/robots.txt deleted file mode 100644 index 08aec95f..00000000 --- a/public/robots.txt +++ /dev/null @@ -1,5 +0,0 @@ -User-agent: * -Disallow: /settings -Disallow: /~/ -Disallow: /go/ -Disallow: /games \ No newline at end of file diff --git a/public/services.png b/public/services.png deleted file mode 100644 index 7406a6ed..00000000 Binary files a/public/services.png and /dev/null differ diff --git a/public/sw.js b/public/sw.js index 0ef8ad18..78a69f0d 100644 --- a/public/sw.js +++ b/public/sw.js @@ -1,62 +1,57 @@ -importScripts("/epoxy/index.js"); -importScripts("/libcurl/index.js"); -importScripts("/transports/bareTransport.js"); -importScripts("/uv/uv.bundle.js"); -importScripts("/uv/uv.config.js"); -importScripts(__uv$config.sw || "/uv/uv.sw.js"); -importScripts("/dynamic/dynamic.config.js"); -importScripts("/dynamic/dynamic.worker.js"); -//import our IDB lib -importScripts("/localforage/localforage.min.js"); -localforage.config({ - driver: localforage.INDEXEDDB, - name: "Nebula", - version: 1.0, - storeName: "nebula_config", - description: "Nebula Config for things reliant on IndexedDB" -}); - -const uv = new UVServiceWorker(); -const dynPromise = new Promise(async (resolve) => { - try { - const bare = - (await localforage.getItem("bare")) || location.origin + "/bare/"; - self.__dynamic$config.bare.path = bare; - self.dynamic = new Dynamic(self.__dynamic$config); - } catch (error) { - console.log(error); - } - resolve(); -}); - -self.addEventListener("fetch", (event) => { - if ( - event.request.url.startsWith(location.origin + self.__dynamic$config.prefix) - ) { - event.respondWith( - (async function () { - try { - await dynPromise; - } catch (error) {} - if (await self.dynamic.route(event)) { - return await self.dynamic.fetch(event); - } - await fetch(event.request); - })() - ); - } else if ( - event.request.url.startsWith(location.origin + __uv$config.prefix) - ) { - event.respondWith( - (async function () { - return await uv.fetch(event); - })() - ); - } else { - event.respondWith( - (async function () { - return await fetch(event.request); - })() - ); - } -}); +importScripts("/uv/uv.bundle.js"); +importScripts("/uv/uv.config.js"); +importScripts("/workerware/workerware.js"); +importScripts(__uv$config.sw || "/uv/uv.sw.js"); +const uv = new UVServiceWorker(); +const ww = new WorkerWare({ debug: false }); + +//where we handle our plugins!!! +self.addEventListener("message", function (event) { + console.log(event.data); + uv.config.inject = []; + //loop over the required data (we don't verify here as types will take care of us :D) + event.data.forEach((data) => { + if (data.remove) { + if (data.type === "page") { + const idx = uv.config.inject.indexOf(data.host); + uv.config.inject.splice(idx, 1); + } else if (data.type === "serviceWorker") { + ww.deleteByName(data.name); + } + } else { + if (data.type === "page") { + uv.config.inject.push({ + host: data.host, + html: data.html, + injectTo: data.injectTo + }); + } else if (data.type === "serviceWorker") { + const wwFunction = eval(data.function); + ww.use({ + function: wwFunction ? wwFunction : new Function(data.function), + name: data.name, + events: data.events + }); + } else { + console.error("NO type exists for that. Only serviceWorker & page exist."); + return; + } + } + }); +}); + +self.addEventListener("fetch", function (event) { + event.respondWith( + (async () => { + const wwRes = await ww.run(event)(); + if (wwRes.includes(null)) { + return; + } + if (event.request.url.startsWith(location.origin + __uv$config.prefix)) { + return await uv.fetch(event); + } else { + return await fetch(event.request); + } + })() + ); +}); diff --git a/public/transports/bareTransport.js b/public/transports/bareTransport.js deleted file mode 100644 index 0107ef97..00000000 --- a/public/transports/bareTransport.js +++ /dev/null @@ -1,612 +0,0 @@ -//Built from: https://github.com/motortruck1221/bare-as-module3 (commit: 36759f801e0009027878edecff156408b06404c6) -(function (global, factory) { - typeof exports === "object" && typeof module !== "undefined" - ? factory(exports) - : typeof define === "function" && define.amd - ? define(["exports"], factory) - : ((global = - typeof globalThis !== "undefined" ? globalThis : global || self), - factory((global.BareMod = {}))); -})(this, function (exports) { - "use strict"; - - // The user likely has overwritten all networking functions after importing bare-client - // It is our responsibility to make sure components of Bare-Client are using native networking functions - // These exports are provided to plugins by @rollup/plugin-inject - const fetch = globalThis.fetch; - const WebSocket = globalThis.WebSocket; - const WebSocketFields = { - prototype: { - send: WebSocket.prototype.send - }, - CLOSED: WebSocket.CLOSED, - CLOSING: WebSocket.CLOSING, - CONNECTING: WebSocket.CONNECTING, - OPEN: WebSocket.OPEN - }; - - class BareError extends Error { - status; - body; - constructor(status, body) { - super(body.message || body.code); - this.status = status; - this.body = body; - } - } - class Client { - base; - /** - * - * @param version Version provided by extension - * @param server Bare Server URL provided by BareClient - */ - constructor(version, server) { - this.base = new URL(`./v${version}/`, server); - } - } - - /* - * JavaScript MD5 - * Adopted from https://github.com/blueimp/JavaScript-MD5 - * - * Copyright 2011, Sebastian Tschan - * https://blueimp.net - * - * Licensed under the MIT license: - * https://opensource.org/licenses/MIT - * - * Based on - * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message - * Digest Algorithm, as defined in RFC 1321. - * Version 2.2 Copyright (C) Paul Johnston 1999 - 2009 - * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet - * Distributed under the BSD License - * See http://pajhome.org.uk/crypt/md5 for more info. - */ - /** - * Add integers, wrapping at 2^32. - * This uses 16-bit operations internally to work around bugs in interpreters. - * - * @param x First integer - * @param y Second integer - * @returns Sum - */ - function safeAdd(x, y) { - const lsw = (x & 0xffff) + (y & 0xffff); - const msw = (x >> 16) + (y >> 16) + (lsw >> 16); - return (msw << 16) | (lsw & 0xffff); - } - /** - * Bitwise rotate a 32-bit number to the left. - * - * @param num 32-bit number - * @param cnt Rotation count - * @returns Rotated number - */ - function bitRotateLeft(num, cnt) { - return (num << cnt) | (num >>> (32 - cnt)); - } - /** - * Basic operation the algorithm uses. - * - * @param q q - * @param a a - * @param b b - * @param x x - * @param s s - * @param t t - * @returns Result - */ - function md5cmn(q, a, b, x, s, t) { - return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b); - } - /** - * Basic operation the algorithm uses. - * - * @param a a - * @param b b - * @param c c - * @param d d - * @param x x - * @param s s - * @param t t - * @returns Result - */ - function md5ff(a, b, c, d, x, s, t) { - return md5cmn((b & c) | (~b & d), a, b, x, s, t); - } - /** - * Basic operation the algorithm uses. - * - * @param a a - * @param b b - * @param c c - * @param d d - * @param x x - * @param s s - * @param t t - * @returns Result - */ - function md5gg(a, b, c, d, x, s, t) { - return md5cmn((b & d) | (c & ~d), a, b, x, s, t); - } - /** - * Basic operation the algorithm uses. - * - * @param a a - * @param b b - * @param c c - * @param d d - * @param x x - * @param s s - * @param t t - * @returns Result - */ - function md5hh(a, b, c, d, x, s, t) { - return md5cmn(b ^ c ^ d, a, b, x, s, t); - } - /** - * Basic operation the algorithm uses. - * - * @param a a - * @param b b - * @param c c - * @param d d - * @param x x - * @param s s - * @param t t - * @returns Result - */ - function md5ii(a, b, c, d, x, s, t) { - return md5cmn(c ^ (b | ~d), a, b, x, s, t); - } - /** - * Calculate the MD5 of an array of little-endian words, and a bit length. - * - * @param x Array of little-endian words - * @param len Bit length - * @returns MD5 Array - */ - function binlMD5(x, len) { - /* append padding */ - x[len >> 5] |= 0x80 << len % 32; - x[(((len + 64) >>> 9) << 4) + 14] = len; - let a = 1732584193; - let b = -271733879; - let c = -1732584194; - let d = 271733878; - for (let i = 0; i < x.length; i += 16) { - const olda = a; - const oldb = b; - const oldc = c; - const oldd = d; - a = md5ff(a, b, c, d, x[i], 7, -680876936); - d = md5ff(d, a, b, c, x[i + 1], 12, -389564586); - c = md5ff(c, d, a, b, x[i + 2], 17, 606105819); - b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330); - a = md5ff(a, b, c, d, x[i + 4], 7, -176418897); - d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426); - c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341); - b = md5ff(b, c, d, a, x[i + 7], 22, -45705983); - a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416); - d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417); - c = md5ff(c, d, a, b, x[i + 10], 17, -42063); - b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162); - a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682); - d = md5ff(d, a, b, c, x[i + 13], 12, -40341101); - c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290); - b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329); - a = md5gg(a, b, c, d, x[i + 1], 5, -165796510); - d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632); - c = md5gg(c, d, a, b, x[i + 11], 14, 643717713); - b = md5gg(b, c, d, a, x[i], 20, -373897302); - a = md5gg(a, b, c, d, x[i + 5], 5, -701558691); - d = md5gg(d, a, b, c, x[i + 10], 9, 38016083); - c = md5gg(c, d, a, b, x[i + 15], 14, -660478335); - b = md5gg(b, c, d, a, x[i + 4], 20, -405537848); - a = md5gg(a, b, c, d, x[i + 9], 5, 568446438); - d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690); - c = md5gg(c, d, a, b, x[i + 3], 14, -187363961); - b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501); - a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467); - d = md5gg(d, a, b, c, x[i + 2], 9, -51403784); - c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473); - b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734); - a = md5hh(a, b, c, d, x[i + 5], 4, -378558); - d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463); - c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562); - b = md5hh(b, c, d, a, x[i + 14], 23, -35309556); - a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060); - d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353); - c = md5hh(c, d, a, b, x[i + 7], 16, -155497632); - b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640); - a = md5hh(a, b, c, d, x[i + 13], 4, 681279174); - d = md5hh(d, a, b, c, x[i], 11, -358537222); - c = md5hh(c, d, a, b, x[i + 3], 16, -722521979); - b = md5hh(b, c, d, a, x[i + 6], 23, 76029189); - a = md5hh(a, b, c, d, x[i + 9], 4, -640364487); - d = md5hh(d, a, b, c, x[i + 12], 11, -421815835); - c = md5hh(c, d, a, b, x[i + 15], 16, 530742520); - b = md5hh(b, c, d, a, x[i + 2], 23, -995338651); - a = md5ii(a, b, c, d, x[i], 6, -198630844); - d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415); - c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905); - b = md5ii(b, c, d, a, x[i + 5], 21, -57434055); - a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571); - d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606); - c = md5ii(c, d, a, b, x[i + 10], 15, -1051523); - b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799); - a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359); - d = md5ii(d, a, b, c, x[i + 15], 10, -30611744); - c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380); - b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649); - a = md5ii(a, b, c, d, x[i + 4], 6, -145523070); - d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379); - c = md5ii(c, d, a, b, x[i + 2], 15, 718787259); - b = md5ii(b, c, d, a, x[i + 9], 21, -343485551); - a = safeAdd(a, olda); - b = safeAdd(b, oldb); - c = safeAdd(c, oldc); - d = safeAdd(d, oldd); - } - return [a, b, c, d]; - } - /** - * Convert an array of little-endian words to a string - * - * @param input MD5 Array - * @returns MD5 string - */ - function binl2rstr(input) { - let output = ""; - const length32 = input.length * 32; - for (let i = 0; i < length32; i += 8) { - output += String.fromCharCode((input[i >> 5] >>> i % 32) & 0xff); - } - return output; - } - /** - * Convert a raw string to an array of little-endian words - * Characters >255 have their high-byte silently ignored. - * - * @param input Raw input string - * @returns Array of little-endian words - */ - function rstr2binl(input) { - const output = []; - const outputLen = input.length >> 2; - for (let i = 0; i < outputLen; i += 1) { - output[i] = 0; - } - const length8 = input.length * 8; - for (let i = 0; i < length8; i += 8) { - output[i >> 5] |= (input.charCodeAt(i / 8) & 0xff) << i % 32; - } - return output; - } - /** - * Calculate the MD5 of a raw string - * - * @param s Input string - * @returns Raw MD5 string - */ - function rstrMD5(s) { - return binl2rstr(binlMD5(rstr2binl(s), s.length * 8)); - } - /** - * Calculates the HMAC-MD5 of a key and some data (raw strings) - * - * @param key HMAC key - * @param data Raw input string - * @returns Raw MD5 string - */ - function rstrHMACMD5(key, data) { - let bkey = rstr2binl(key); - const ipad = []; - const opad = []; - if (bkey.length > 16) { - bkey = binlMD5(bkey, key.length * 8); - } - for (let i = 0; i < 16; i += 1) { - ipad[i] = bkey[i] ^ 0x36363636; - opad[i] = bkey[i] ^ 0x5c5c5c5c; - } - const hash = binlMD5(ipad.concat(rstr2binl(data)), 512 + data.length * 8); - return binl2rstr(binlMD5(opad.concat(hash), 512 + 128)); - } - /** - * Convert a raw string to a hex string - * - * @param input Raw input string - * @returns Hex encoded string - */ - function rstr2hex(input) { - const hexTab = "0123456789abcdef"; - let output = ""; - for (let i = 0; i < input.length; i += 1) { - const x = input.charCodeAt(i); - output += hexTab.charAt((x >>> 4) & 0x0f) + hexTab.charAt(x & 0x0f); - } - return output; - } - /** - * Encode a string as UTF-8 - * - * @param input Input string - * @returns UTF8 string - */ - function str2rstrUTF8(input) { - return unescape(encodeURIComponent(input)); - } - /** - * Encodes input string as raw MD5 string - * - * @param s Input string - * @returns Raw MD5 string - */ - function rawMD5(s) { - return rstrMD5(str2rstrUTF8(s)); - } - /** - * Encodes input string as Hex encoded string - * - * @param s Input string - * @returns Hex encoded string - */ - function hexMD5(s) { - return rstr2hex(rawMD5(s)); - } - /** - * Calculates the raw HMAC-MD5 for the given key and data - * - * @param k HMAC key - * @param d Input string - * @returns Raw MD5 string - */ - function rawHMACMD5(k, d) { - return rstrHMACMD5(str2rstrUTF8(k), str2rstrUTF8(d)); - } - /** - * Calculates the Hex encoded HMAC-MD5 for the given key and data - * - * @param k HMAC key - * @param d Input string - * @returns Raw MD5 string - */ - function hexHMACMD5(k, d) { - return rstr2hex(rawHMACMD5(k, d)); - } - /** - * Calculates MD5 value for a given string. - * If a key is provided, calculates the HMAC-MD5 value. - * Returns a Hex encoded string unless the raw argument is given. - * - * @param string Input string - * @param key HMAC key - * @param raw Raw output switch - * @returns MD5 output - */ - function md5(string, key, raw) { - if (!key) { - if (!raw) { - return hexMD5(string); - } - return rawMD5(string); - } - if (!raw) { - return hexHMACMD5(key, string); - } - return rawHMACMD5(key, string); - } - - const MAX_HEADER_VALUE = 3072; - /** - * - * Splits headers according to spec - * @param headers - * @returns Split headers - */ - function splitHeaders(headers) { - const output = new Headers(headers); - if (headers.has("x-bare-headers")) { - const value = headers.get("x-bare-headers"); - if (value.length > MAX_HEADER_VALUE) { - output.delete("x-bare-headers"); - let split = 0; - for (let i = 0; i < value.length; i += MAX_HEADER_VALUE) { - const part = value.slice(i, i + MAX_HEADER_VALUE); - const id = split++; - output.set(`x-bare-headers-${id}`, `;${part}`); - } - } - } - return output; - } - /** - * Joins headers according to spec - * @param headers - * @returns Joined headers - */ - function joinHeaders(headers) { - const output = new Headers(headers); - const prefix = "x-bare-headers"; - if (headers.has(`${prefix}-0`)) { - const join = []; - for (const [header, value] of headers) { - if (!header.startsWith(prefix)) { - continue; - } - if (!value.startsWith(";")) { - throw new BareError(400, { - code: "INVALID_BARE_HEADER", - id: `request.headers.${header}`, - message: `Value didn't begin with semi-colon.` - }); - } - const id = parseInt(header.slice(prefix.length + 1)); - join[id] = value.slice(1); - output.delete(header); - } - output.set(prefix, join.join("")); - } - return output; - } - - class ClientV3 extends Client { - ws; - http; - meta() { - return {}; - } - constructor(server) { - super(3, server); - this.ws = new URL(this.base); - this.http = new URL(this.base); - if (this.ws.protocol === "https:") { - this.ws.protocol = "wss:"; - } else { - this.ws.protocol = "ws:"; - } - } - ready = true; - async init() { - this.ready = true; - } - connect( - url, - origin, - protocols, - requestHeaders, - onopen, - onmessage, - onclose, - onerror - ) { - const ws = new WebSocket(this.ws); - const cleanup = () => { - ws.removeEventListener("close", closeListener); - ws.removeEventListener("message", messageListener); - }; - const closeListener = () => { - cleanup(); - }; - const messageListener = (event) => { - cleanup(); - // ws.binaryType is irrelevant when sending text - if (typeof event.data !== "string") - throw new TypeError( - "the first websocket message was not a text frame" - ); - const message = JSON.parse(event.data); - // finally - if (message.type !== "open") - throw new TypeError("message was not of open type"); - // onMeta({ - // protocol: message.protocol, - // setCookies: message.setCookies, - // }); - onopen(message.protocol); - // TODO - ws.addEventListener("message", (ev) => { - onmessage(ev.data); - }); - }; - ws.addEventListener("close", closeListener); - ws.addEventListener("message", messageListener); - // CONNECTED TO THE BARE SERVER, NOT THE REMOTE - ws.addEventListener( - "open", - (event) => { - // getRequestHeaders().then((headers:any) => - WebSocketFields.prototype.send.call( - ws, - JSON.stringify({ - type: "connect", - remote: url.toString(), - protocols, - headers: requestHeaders, - forwardHeaders: [] - }) - ); - // ); - }, - // only block the open event once - { once: true } - ); - return ws.send.bind(ws); - } - async request(remote, method, body, headers, signal) { - const options = { - credentials: "omit", - method: method, - signal - }; - if (body !== undefined) { - options.body = body; - } - options.headers = this.createBareHeaders(remote, headers); - const response = await fetch( - this.http + "?cache=" + md5(remote.toString()), - options - ); - const readResponse = await this.readBareResponse(response); - // const result: Response & Partial = new Response( - // statusEmpty.includes(readResponse.status!) ? undefined : response.body, - // { - // status: readResponse.status, - // statusText: readResponse.statusText ?? undefined, - // headers: new Headers(readResponse.headers as HeadersInit), - // } - // ); - // - // result.rawHeaders = readResponse.headers; - // result.rawResponse = response; - return { - body: response.body, - headers: readResponse.headers, - status: readResponse.status, - statusText: readResponse.statusText - }; - } - async readBareResponse(response) { - if (!response.ok) { - throw new BareError(response.status, await response.json()); - } - const responseHeaders = joinHeaders(response.headers); - const result = {}; - const xBareStatus = responseHeaders.get("x-bare-status"); - if (xBareStatus !== null) result.status = parseInt(xBareStatus); - const xBareStatusText = responseHeaders.get("x-bare-status-text"); - if (xBareStatusText !== null) result.statusText = xBareStatusText; - const xBareHeaders = responseHeaders.get("x-bare-headers"); - if (xBareHeaders !== null) result.headers = JSON.parse(xBareHeaders); - return result; - } - createBareHeaders( - remote, - bareHeaders, - forwardHeaders = [], - passHeaders = [], - passStatus = [] - ) { - const headers = new Headers(); - headers.set("x-bare-url", remote.toString()); - headers.set("x-bare-headers", JSON.stringify(bareHeaders)); - for (const header of forwardHeaders) { - headers.append("x-bare-forward-headers", header); - } - for (const header of passHeaders) { - headers.append("x-bare-pass-headers", header); - } - for (const status of passStatus) { - headers.append("x-bare-pass-status", status.toString()); - } - splitHeaders(headers); - return headers; - } - } - - exports.BareClient = ClientV3; -}); -//# sourceMappingURL=bare.cjs.map diff --git a/public/uv/uv.config.js b/public/uv/uv.config.js index 38b45949..dc4ab97b 100644 --- a/public/uv/uv.config.js +++ b/public/uv/uv.config.js @@ -1,36 +1,30 @@ self.__uv$config = { - prefix: "/~/uv/", - bare: "/bare/", - encodeUrl: function encode(str) { + prefix: "/~/uv/", + bare: "/bare/", + encodeUrl: function encode(str) { if (!str) return str; return encodeURIComponent( str .toString() - .split('') - .map((char, ind) => - ind % 2 ? String.fromCharCode(char.charCodeAt() ^ 3) : char - ) - .join('') + .split("") + .map((char, ind) => (ind % 2 ? String.fromCharCode(char.charCodeAt() ^ 3) : char)) + .join("") ); }, - decodeUrl: function decode(str) { + decodeUrl: function decode(str) { if (!str) return str; - let [input, ...search] = str.split('?'); + let [input, ...search] = str.split("?"); return ( decodeURIComponent(input) - .split('') - .map((char, ind) => - ind % 2 ? String.fromCharCode(char.charCodeAt(0) ^ 3) : char - ) - .join('') + (search.length ? '?' + search.join('?') : '') + .split("") + .map((char, ind) => (ind % 2 ? String.fromCharCode(char.charCodeAt(0) ^ 3) : char)) + .join("") + (search.length ? "?" + search.join("?") : "") ); }, - handler: "/uv/uv.handler.js", - client: "/uv/uv.client.js", - bundle: "/uv/uv.bundle.js", - config: "/uv/uv.config.js", - sw: "/uv/uv.sw.js", - proxyIp: "", - proxyPort: "" + handler: "/uv/uv.handler.js", + client: "/uv/uv.client.js", + bundle: "/uv/uv.bundle.js", + config: "/uv/uv.config.js", + sw: "/uv/uv.sw.js" }; diff --git a/public/workerware/workerware.js b/public/workerware/workerware.js new file mode 100644 index 00000000..43e40384 --- /dev/null +++ b/public/workerware/workerware.js @@ -0,0 +1,171 @@ +importScripts("/workerware/WWError.js"); +const dbg = console.log.bind(console, "[WorkerWare]"); +const time = console.time.bind(console, "[WorkerWare]"); +const timeEnd = console.timeEnd.bind(console, "[WorkerWare]"); + +/* + OPTS: + debug - Enables debug logging. + randomNames - Generate random names for middlewares. + timing - Logs timing for each middleware. +*/ + +const defaultOpt = { + debug: false, + randomNames: false, + timing: false +}; + +const validEvents = [ + "abortpayment", + "activate", + "backgroundfetchabort", + "backgroundfetchclick", + "backgroundfetchfail", + "backgroundfetchsuccess", + "canmakepayment", + "contentdelete", + "cookiechange", + "fetch", + "install", + "message", + "messageerror", + "notificationclick", + "notificationclose", + "paymentrequest", + "periodicsync", + "push", + "pushsubscriptionchange", + "sync" +]; + +class WorkerWare { + constructor(opt) { + this._opt = Object.assign({}, defaultOpt, opt); + this._middlewares = []; + } + info() { + return { + version: "0.1.0", + middlewares: this._middlewares, + options: this._opt + }; + } + use(middleware) { + let validateMW = this.validateMiddleware(middleware); + if (validateMW.error) throw new WWError(validateMW.error); + // This means the middleware is an anonymous function, or the user is silly and named their function "function" + if (middleware.function.name == "function") middleware.name = crypto.randomUUID(); + if (!middleware.name) middleware.name = middleware.function.name; + if (this._opt.randomNames) middleware.name = crypto.randomUUID(); + if (this._opt.debug) dbg("Adding middleware:", middleware.name); + this._middlewares.push(middleware); + } + // Run all middlewares for the event type passed in. + run(event) { + const middlewares = this._middlewares; + const returnList = []; + let fn = async () => { + for (let i = 0; i < middlewares.length; i++) { + if (middlewares[i].events.includes(event.type)) { + if (this._opt.timing) console.time(middlewares[i].name); + // Add the configuration to the event object. + event.workerware = { + config: middlewares[i].configuration || {} + }; + if (!middlewares[i].explicitCall) { + let res = await middlewares[i].function(event); + if (this._opt.timing) console.timeEnd(middlewares[i].name); + returnList.push(res); + } + } + } + return returnList; + }; + return fn; + } + deleteByName(middlewareID) { + if (this._opt.debug) dbg("Deleting middleware:", middlewareID); + this._middlewares = this._middlewares.filter((mw) => mw.name !== middlewareID); + } + deleteByEvent(middlewareEvent) { + if (this._opt.debug) dbg("Deleting middleware by event:", middlewareEvent); + this._middlewares = this._middlewares.filter((mw) => !mw.events.includes(middlewareEvent)); + } + get() { + return this._middlewares; + } + /* + Run a single middleware by ID. + This assumes that the user knows what they're doing, and is running the middleware on an event that it's supposed to run on. + */ + runMW(name, event) { + const middlewares = this._middlewares; + if (this._opt.debug) dbg("Running middleware:", name); + // if (middlewares.includes(name)) { + // return middlewares[name](event); + // } else { + // throw new WWError("Middleware not found!"); + // } + let didCall = false; + for (let i = 0; i < middlewares.length; i++) { + if (middlewares[i].name == name) { + didCall = true; + event.workerware = { + config: middlewares[i].configuration || {} + }; + if (this._opt.timing) console.time(middlewares[i].name); + let call = middlewares[i].function(event); + if (this._opt.timing) console.timeEnd(middlewares[i].name); + return call; + } + } + if (!didCall) { + throw new WWError("Middleware not found!"); + } + } + // type middlewareManifest = { + // function: Function, + // name?: string, + // events: string[], // Should be a union of validEvents. + // configuration?: Object // Optional configuration for the middleware. + // } + validateMiddleware(middleware) { + if (!middleware.function) + return { + error: "middleware.function is required" + }; + if (typeof middleware.function !== "function") + return { + error: "middleware.function must be typeof function" + }; + if ( + typeof middleware.configuration !== "object" && + middleware.configuration !== undefined + ) { + return { + error: "middleware.configuration must be typeof object" + }; + } + if (!middleware.events) + return { + error: "middleware.events is required" + }; + if (!Array.isArray(middleware.events)) + return { + error: "middleware.events must be an array" + }; + if (middleware.events.some((ev) => !validEvents.includes(ev))) + return { + error: "Invalid event type! Must be one of the following: " + validEvents.join(", ") + }; + if (middleware.explicitCall && typeof middleware.explicitCall !== "boolean") { + return { + error: "middleware.explicitCall must be typeof boolean" + }; + } + return { + error: undefined + }; + } +} diff --git a/server.ts b/server.ts deleted file mode 100644 index 5f1950a0..00000000 --- a/server.ts +++ /dev/null @@ -1,113 +0,0 @@ -import fastify from "fastify"; -import fastifyStatic from "@fastify/static"; -import { fileURLToPath } from "url"; -import path from "path"; -import cookieParser from "@fastify/cookie"; -import { createServer } from "http"; -import { createBareServer } from "@tomphttp/bare-server-node"; -import createRammerhead from "rammerhead/src/server/index.js"; -import wisp from "wisp-server-node"; -const __filename = fileURLToPath(import.meta.url); -const __dirname = path.dirname(__filename); -const bare = createBareServer("/bare/"); -const rh = createRammerhead(); -import chalk from "chalk"; -import masqr from "./masqr.js"; - -const rammerheadScopes = [ - "/rammerhead.js", - "/hammerhead.js", - "/transport-worker.js", - "/task.js", - "/iframe-task.js", - "/worker-hammerhead.js", - "/messaging", - "/sessionexists", - "/deletesession", - "/newsession", - "/editsession", - "/needpassword", - "/syncLocalStorage", - "/api/shuffleDict", - "/mainport" -]; - -const rammerheadSession = /^\/[a-z0-9]{32}/; - -function shouldRouteRh(req) { - const url = new URL(req.url, "http://0.0.0.0"); - return ( - rammerheadScopes.includes(url.pathname) || - rammerheadSession.test(url.pathname) - ); -} - -function routeRhRequest(req, res) { - rh.emit("request", req, res); -} - -function routeRhUpgrade(req, socket, head) { - rh.emit("upgrade", req, socket, head); -} - -const serverFactory = (handler, opts) => { - return createServer() - .on("request", (req, res) => { - if (bare.shouldRoute(req)) { - bare.routeRequest(req, res); - } else if (shouldRouteRh(req)) { - routeRhRequest(req, res); - } else { - handler(req, res); - } - }) - .on("upgrade", (req, socket, head) => { - if (bare.shouldRoute(req)) { - bare.routeUpgrade(req, socket, head); - } else if (shouldRouteRh(req)) { - routeRhUpgrade(req, socket, head); - } else if (req.url.endsWith("/wisp/")) { - wisp.routeRequest(req, socket, head); - } - }); -}; - -const app = fastify({ logger: false, serverFactory }); - -app.register(cookieParser); -await app.register(import("@fastify/compress")); -//Uncomment the following line to enable masqr -//app.register(masqr); - -app.register(fastifyStatic, { - root: path.join(__dirname, "dist"), - prefix: "/", - serve: true, - wildcard: false -}); - -app.get("/search=:query", async (req, res) => { - const { query } = req.params as { query: string }; // Define the type for req.params - - const response = await fetch( - `http://api.duckduckgo.com/ac?q=${query}&format=json` - ).then((apiRes) => apiRes.json()); - - res.send(response); -}); - -app.setNotFoundHandler((req, res) => { - res.sendFile("index.html"); // SPA catch-all -}); - -console.log( - chalk.green(`Server listening on ${chalk.bold("http://localhost:8080")}`) -); -console.log( - chalk.magenta(`Server also listening on ${chalk.bold("http://0.0.0.0:8080")}`) -); - -app.listen({ - port: 8080, - host: "0.0.0.0" -}); diff --git a/server/config.ts b/server/config.ts new file mode 100644 index 00000000..1c64e0e6 --- /dev/null +++ b/server/config.ts @@ -0,0 +1,90 @@ +import { readFileSync } from "node:fs"; +import { fileURLToPath } from "node:url"; +import chalk from "chalk"; +import { TomlPrimitive, parse } from "smol-toml"; + +interface TomlData { + marketplace: { + enabled: boolean; + psk: String; + }; + server: { + server: { + port: number; + wisp: boolean; + logging: boolean; + }; + rammerhead: { + reverseproxy: boolean; + localstorage_sync: boolean; + http2: boolean; + }; + }; + db: { + name: string; + username: string; + password: string; + postgres: boolean; + }; + postgres: { + domain: string; + port: number; + }; +} + +interface Verify { + name: string; + typeOF: any; + type: any; +} + +let doc = readFileSync(fileURLToPath(new URL("../config.toml", import.meta.url))).toString(); +const parsedDoc = parse(doc) as unknown as TomlData; + +function verify(t: Verify[]) { + for (let i: number = 0; i !== t.length; i++) { + if (typeof t[i].typeOF !== t[i].type) { + throw new Error(`Invalid structure: "${t[i].name}" should be a(n) ${t[i].type}`); + } + } +} + +verify([ + { name: "marketplace", typeOF: parsedDoc.marketplace, type: "object" }, + { name: "marketplace.enabled", typeOF: parsedDoc.marketplace.enabled, type: "boolean" }, + { name: "marketplace.psk", typeOF: parsedDoc.marketplace.psk, type: "string" }, + { name: "server", typeOF: parsedDoc.server, type: "object" }, + { name: "server.server", typeOF: parsedDoc.server.server, type: "object" }, + { name: "server.rammerhead", typeOF: parsedDoc.server.rammerhead, type: "object" }, + { name: "server.server.port", typeOF: parsedDoc.server.server.port, type: "number" }, + { name: "server.server.wisp", typeOF: parsedDoc.server.server.wisp, type: "boolean" }, + { name: "server.server.logging", typeOF: parsedDoc.server.server.logging, type: "boolean" }, + { + name: "server.rammerhead.reverseproxy", + typeOF: parsedDoc.server.rammerhead.reverseproxy, + type: "boolean" + }, + { + name: "server.rammerhead.localstorage_sync", + typeOF: parsedDoc.server.rammerhead.localstorage_sync, + type: "boolean" + }, + { name: "server.rammerhead.http2", typeOF: parsedDoc.server.rammerhead.http2, type: "boolean" }, + { name: "db", typeOF: parsedDoc.db, type: "object" }, + { name: "db.name", typeOF: parsedDoc.db.name, type: "string" }, + { name: "db.username", typeOF: parsedDoc.db.username, type: "string" }, + { name: "db.password", typeOF: parsedDoc.db.password, type: "string" }, + { name: "db.postgres", typeOF: parsedDoc.db.postgres, type: "boolean" }, + { name: "postgres", typeOF: parsedDoc.postgres, type: "object" }, + { name: "postgres.domain", typeOF: parsedDoc.postgres.domain, type: "string" }, + { name: "postgres.port", typeOF: parsedDoc.postgres.port, type: "number" } +]); + +if (parsedDoc.marketplace.psk === "CHANGEME") { + console.warn(chalk.yellow.bold('PSK should be changed from "CHANGEME"')); +} +if (parsedDoc.db.password === "password") { + console.warn(chalk.red.bold("You should change your DB password!!")); +} + +export { TomlData, parsedDoc }; diff --git a/server/dbSetup.ts b/server/dbSetup.ts new file mode 100644 index 00000000..b3138ce0 --- /dev/null +++ b/server/dbSetup.ts @@ -0,0 +1,87 @@ +import { fileURLToPath } from "node:url"; +import chalk from "chalk"; +import ora from "ora"; +import { ModelStatic } from "sequelize"; +import { Catalog, CatalogModel } from "./marketplace.js"; + +interface Items extends Omit { + background_video?: string; + background_image?: string; +} + +async function installItems(db: ModelStatic, items: Items[]) { + items.forEach(async (item) => { + await db.create({ + package_name: item.package_name, + title: item.title, + image: item.image, + author: item.author, + version: item.version, + description: item.description, + tags: item.tags, + payload: item.payload, + background_video: item.background_video, + background_image: item.background_image, + type: item.type + }); + }); +} + +async function setupDB(db: ModelStatic) { + //We have some packages that need to be installed if they aren't. + const items: Items[] = [ + { + package_name: "com.nebula.gruvbox", + title: "Gruvbox", + image: "gruvbox.jpeg", + author: "Nebula Services", + version: "1.0.0", + description: "The gruvbox theme", + tags: ["Theme", "Simple"], + payload: "gruvbox.css", + type: "theme" + }, + { + package_name: "com.nebula.oled", + title: "Oled theme", + image: "oled.jpg", + author: "Nebula Services", + version: "1.0.0", + description: "A sleek & simple Oled theme for Nebula", + tags: ["Theme", "Simple", "Sleek"], + payload: "oled.css", + type: "theme" + }, + { + package_name: "com.nebula.lightTheme", + title: "Light Theme", + image: "light.png", + author: "Nebula Services", + version: "1.0.0", + description: "A sleek light theme for Nebula", + tags: ["Theme", "Simple", "Light"], + payload: "light.css", + type: "theme" + }, + { + package_name: "com.nebula.retro", + title: "Retro Theme", + image: "retro.png", + author: "Nebula Services", + version: "1.0.0", + description: "Give a retro look to Nebula", + tags: ["Theme", "Simple", "Dark", "Retro"], + payload: "retro.css", + type: "theme" + } + //To add plugins: plugin types consist of plugin-sw (workerware) & plugin-page (uv.config.inject) + ]; + const dbItems = await db.findAll(); + if (dbItems.length === 0) { + const spinner = ora(chalk.hex("#7967dd")("Performing DB setup...")).start(); + await installItems(db, items); + spinner.succeed(chalk.hex("#eb6f92")("DB setup complete!")); + } +} + +export { setupDB }; diff --git a/server/env.d.ts b/server/env.d.ts new file mode 100644 index 00000000..81627313 --- /dev/null +++ b/server/env.d.ts @@ -0,0 +1 @@ +declare module "@rubynetwork/rammerhead/src/server/index.js"; diff --git a/server/marketplace.ts b/server/marketplace.ts new file mode 100644 index 00000000..2c901fe9 --- /dev/null +++ b/server/marketplace.ts @@ -0,0 +1,229 @@ +import { createWriteStream } from "node:fs"; +import { constants, access, mkdir } from "node:fs/promises"; +import { pipeline } from "node:stream/promises"; +import { fileURLToPath } from "node:url"; +import { FastifyInstance, FastifyRequest } from "fastify"; +import { DataTypes, InferAttributes, InferCreationAttributes, Model, Sequelize } from "sequelize"; +import { parsedDoc } from "./config.js"; + +const db = new Sequelize(parsedDoc.db.name, parsedDoc.db.username, parsedDoc.db.password, { + host: parsedDoc.db.postgres ? `${parsedDoc.postgres.domain}` : "localhost", + port: parsedDoc.db.postgres ? parsedDoc.postgres.port : undefined, + dialect: parsedDoc.db.postgres ? "postgres" : "sqlite", + logging: parsedDoc.server.server.logging, + storage: "database.sqlite" //this is sqlite only +}); + +type CatalogType = "theme" | "plugin-page" | "plugin-sw"; + +interface Catalog { + package_name: string; + title: string; + description: string; + author: string; + image: string; + tags: object; + version: string; + background_image: string; + background_video: string; + payload: string; + type: CatalogType; +} + +interface CatalogModel + extends Catalog, + Model, InferCreationAttributes> {} + +const catalogAssets = db.define("catalog_assets", { + package_name: { type: DataTypes.STRING, unique: true }, + title: { type: DataTypes.TEXT }, + description: { type: DataTypes.TEXT }, + author: { type: DataTypes.TEXT }, + image: { type: DataTypes.TEXT }, + tags: { type: DataTypes.JSON, allowNull: true }, + version: { type: DataTypes.TEXT }, + background_image: { type: DataTypes.TEXT, allowNull: true }, + background_video: { type: DataTypes.TEXT, allowNull: true }, + payload: { type: DataTypes.TEXT }, + type: { type: DataTypes.TEXT } +}); + +function marketplaceAPI(app: FastifyInstance) { + app.get("/api/catalog-stats/", (request, reply) => { + reply.send({ + version: "1.0.0", + spec: "Nebula Services", + enabled: true + }); + }); + + // This API returns a list of the assets in the database (SW plugins and themes). + // It also returns the number of pages in the database. + // It can take a `?page=x` argument to display a different page, with a limit of 20 assets per page. + type CatalogAssetsReq = FastifyRequest<{ Querystring: { page: string } }>; + app.get("/api/catalog-assets/", async (request: CatalogAssetsReq, reply) => { + try { + const { page } = request.query; + const pageNum: number = parseInt(page, 10) || 1; + if (pageNum < 1) { + reply.status(400).send({ error: "Page must be a positive number!" }); + } + const offset = (pageNum - 1) * 20; + const totalItems = await catalogAssets.count(); + const dbAssets = await catalogAssets.findAll({ offset: offset, limit: 20 }); + const assets = dbAssets.reduce((acc, asset) => { + acc[asset.package_name] = { + title: asset.title, + description: asset.description, + author: asset.author, + image: asset.image, + tags: asset.tags, + version: asset.version, + background_image: asset.background_image, + background_video: asset.background_video, + payload: asset.payload, + type: asset.type + }; + return acc; + }, {}); + return reply.send({ assets, pages: Math.ceil(totalItems / 20) }); + } catch (error) { + return reply.status(500).send({ error: "An error occured" }); + } + }); + + type PackageReq = FastifyRequest<{ Params: { package: string } }>; + app.get("/api/packages/:package", async (request: PackageReq, reply) => { + try { + const packageRow = await catalogAssets.findOne({ + where: { package_name: request.params.package } + }); + if (!packageRow) return reply.status(404).send({ error: "Package not found!" }); + const details = { + title: packageRow.get("title"), + description: packageRow.get("description"), + image: packageRow.get("image"), + author: packageRow.get("author"), + tags: packageRow.get("tags"), + version: packageRow.get("version"), + background_image: packageRow.get("background_image"), + background_video: packageRow.get("background_video"), + payload: packageRow.get("payload"), + type: packageRow.get("type") + }; + reply.send(details); + } catch (error) { + reply.status(500).send({ error: "An unexpected error occured" }); + } + }); + + type UploadReq = FastifyRequest<{ Headers: { psk: string; packagename: string } }>; + type CreateReq = FastifyRequest<{ + Headers: { psk: string }; + Body: { + uuid: string; + title: string; + image: string; + author: string; + version: string; + description: string; + tags: object | any; + payload: string; + background_video: string; + background_image: string; + type: CatalogType; + }; + }>; + interface VerifyStatus { + status: number; + error?: Error; + } + async function verifyReq( + request: UploadReq | CreateReq, + upload: Boolean, + data: any + ): Promise { + if (request.headers.psk !== parsedDoc.marketplace.psk) { + return { status: 403, error: new Error("PSK isn't correct!") }; + } else if (upload && !request.headers.packagename) { + return { status: 500, error: new Error("No packagename defined!") }; + } else if (upload && !data) { + return { status: 400, error: new Error("No file uploaded!") }; + } else { + return { status: 200 }; + } + } + + app.post("/api/upload-asset", async (request: UploadReq, reply) => { + const data = await request.file(); + const verify: VerifyStatus = await verifyReq(request, true, data); + if (verify.error !== undefined) { + reply.status(verify.status).send({ status: verify.error.message }); + } else { + try { + await pipeline( + data.file, + createWriteStream( + fileURLToPath( + new URL( + `../database_assets/${request.headers.packagename}/${data.filename}`, + import.meta.url + ) + ) + ) + ); + } catch (error) { + return reply.status(500).send({ + status: `File couldn't be uploaded! (Package most likely doesn't exist)` + }); + } + return reply.status(verify.status).send({ status: "File uploaded successfully!" }); + } + }); + + app.post("/api/create-package", async (request: CreateReq, reply) => { + const verify: VerifyStatus = await verifyReq(request, false, undefined); + if (verify.error !== undefined) { + reply.status(verify.status).send({ status: verify.error.message }); + } else { + const body: Catalog = { + package_name: request.body.uuid, + title: request.body.title, + image: request.body.image, + author: request.body.author, + version: request.body.version, + description: request.body.description, + tags: request.body.tags, + payload: request.body.payload, + background_video: request.body.background_video, + background_image: request.body.background_image, + type: request.body.type as CatalogType + }; + await catalogAssets.create({ + package_name: body.package_name, + title: body.title, + image: body.image, + author: body.author, + version: body.version, + description: body.description, + tags: body.tags, + payload: body.payload, + background_video: body.background_video, + background_image: body.background_image, + type: body.type + }); + const assets = fileURLToPath(new URL("../database_assets", import.meta.url)); + try { + await access(`${assets}/${body.package_name}/`, constants.F_OK); + return reply.status(500).send({ status: "Package already exists!" }); + } catch (err) { + await mkdir(`${assets}/${body.package_name}/`); + return reply + .status(verify.status) + .send({ status: "Package created successfully!" }); + } + } + }); +} + +export { marketplaceAPI, db, catalogAssets, Catalog, CatalogModel }; diff --git a/server/server.ts b/server/server.ts new file mode 100644 index 00000000..ce889321 --- /dev/null +++ b/server/server.ts @@ -0,0 +1,88 @@ +import { createWriteStream } from "node:fs"; +import { constants, access, mkdir } from "node:fs/promises"; +import { pipeline } from "node:stream/promises"; +import { fileURLToPath } from "node:url"; +import fastifyCompress from "@fastify/compress"; +import fastifyHelmet from "@fastify/helmet"; +import fastifyMiddie from "@fastify/middie"; +import fastifyMultipart from "@fastify/multipart"; +import fastifyStatic from "@fastify/static"; +import chalk from "chalk"; +import Fastify, { FastifyReply, FastifyRequest } from "fastify"; +import gradient from "gradient-string"; +//@ts-ignore WHY would I want this typechecked AT ALL +import { handler as ssrHandler } from "../dist/server/entry.mjs"; +import { parsedDoc } from "./config.js"; +import { setupDB } from "./dbSetup.js"; +import { catalogAssets, marketplaceAPI } from "./marketplace.js"; +import { serverFactory } from "./serverFactory.js"; + +const app = Fastify({ + logger: parsedDoc.server.server.logging, + ignoreDuplicateSlashes: true, + ignoreTrailingSlash: true, + serverFactory: serverFactory +}); + +await app.register(fastifyCompress, { + encodings: ["br", "gzip", "deflate"] +}); + +await app.register(fastifyMultipart); + +await app.register(fastifyHelmet, { + xPoweredBy: false, + crossOriginEmbedderPolicy: true, + crossOriginOpenerPolicy: true, + contentSecurityPolicy: false //Disabled because astro DOES NOT LIKE IT +}); + +await app.register(fastifyStatic, { + root: fileURLToPath(new URL("../dist/client", import.meta.url)) +}); + +//Our marketplace API. Not middleware as I don't want to deal with that LOL. Just a function that passes our app to it. +if (parsedDoc.marketplace.enabled) { + await app.register(fastifyStatic, { + root: fileURLToPath(new URL("../database_assets", import.meta.url)), + prefix: "/packages/", + decorateReply: false + }); + marketplaceAPI(app); +} + +await app.register(fastifyMiddie); + +app.use(ssrHandler); + +const port: number = + parseInt(process.env.PORT as string) || parsedDoc.server.server.port || parseInt("8080"); +const titleText = ` + _ _ _ _ ____ _ +| \\ | | ___| |__ _ _| | __ _ / ___| ___ _ ____ _(_) ___ ___ ___ +| \\| |/ _ \\ '_ \\| | | | |/ _' | \\___ \\ / _ \\ '__\\ \\ / / |/ __/ _ \\/ __| +| |\\ | __/ |_) | |_| | | (_| | ___) | __/ | \\ V /| | (_| __/\\__ \\ +|_| \\_|\\___|_.__/ \\__,_|_|\\__,_| |____/ \\___|_| \\_/ |_|\\___\\___||___/ +`; +const titleColors = { + purple: "#7967dd", + pink: "#eb6f92" +}; + +console.log(gradient(Object.values(titleColors)).multiline(titleText as string)); +app.listen({ port: port, host: "0.0.0.0" }).then(async () => { + console.log( + chalk.hex("#7967dd")( + `Server listening on ${chalk.hex("#eb6f92").bold("http://localhost:" + port + "/")}` + ) + ); + console.log( + chalk.hex("#7967dd")( + `Server also listening on ${chalk.hex("#eb6f92").bold("http://0.0.0.0:" + port + "/")}` + ) + ); + if (parsedDoc.marketplace.enabled) { + await catalogAssets.sync(); + await setupDB(catalogAssets); + } +}); diff --git a/server/serverFactory.ts b/server/serverFactory.ts new file mode 100644 index 00000000..313a8858 --- /dev/null +++ b/server/serverFactory.ts @@ -0,0 +1,43 @@ +import { createServer } from "node:http"; +import rammerhead from "@rubynetwork/rammerhead"; +import { FastifyServerFactory, FastifyServerFactoryHandler, RawServerDefault } from "fastify"; +import wisp from "wisp-server-node"; +import { LOG_LEVEL, WispOptions } from "wisp-server-node/dist/Types.js"; +import { parsedDoc } from "./config.js"; + +const rh = rammerhead.createRammerhead({ + logLevel: parsedDoc.server.server.logging ? "debug" : "disabled", + reverseProxy: parsedDoc.server.rammerhead.reverseproxy, + disableLocalStorageSync: parsedDoc.server.rammerhead.localstorage_sync ? false : true, + disableHttp2: parsedDoc.server.rammerhead.http2 ? false : true +}); + +const wispOptions: WispOptions = { + logLevel: parsedDoc.server.server.logging ? LOG_LEVEL.DEBUG : LOG_LEVEL.NONE, + pingInterval: 30 +}; + +const serverFactory: FastifyServerFactory = ( + handler: FastifyServerFactoryHandler +): RawServerDefault => { + const httpServer = createServer(); + httpServer.on("request", (req, res) => { + if (rammerhead.shouldRouteRh(req)) { + rammerhead.routeRhRequest(rh, req, res); + } else { + handler(req, res); + } + }); + httpServer.on("upgrade", (req, socket, head) => { + if (rammerhead.shouldRouteRh(req)) { + rammerhead.routeRhUpgrade(rh, req, socket, head); + } else if (parsedDoc.server.server.wisp) { + if (req.url?.endsWith("/wisp/")) { + wisp.routeRequest(req, socket as any, head, wispOptions); + } + } + }); + return httpServer; +}; + +export { serverFactory }; diff --git a/server/tsconfig.json b/server/tsconfig.json new file mode 100644 index 00000000..31a46463 --- /dev/null +++ b/server/tsconfig.json @@ -0,0 +1,11 @@ +{ + "compilerOptions": { + "target": "ES2020", + "module": "ESNext", + "moduleResolution": "bundler", + "noEmit": false, + "esModuleInterop": true, + "skipLibCheck": true, + "paths": {} + } +} diff --git a/src/AboutBlank.tsx b/src/AboutBlank.tsx deleted file mode 100644 index e65f5af4..00000000 --- a/src/AboutBlank.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import { LoadSuspense } from "./LoadSuspense"; - -export function AboutBlank(props: { url: string }) { - var newWindow = window.open("about:blank"); - var iframe = document.createElement("iframe"); - iframe.src = window.location.origin + props.url; - iframe.style.width = "100%"; - iframe.style.height = "100%"; - iframe.style.border = "none"; - iframe.style.overflow = "hidden"; - iframe.style.margin = "0"; - iframe.style.padding = "0"; - iframe.style.position = "fixed"; - iframe.style.top = "0"; - iframe.style.bottom = "0"; - iframe.style.left = "0"; - iframe.style.right = "0"; - newWindow.document.body.appendChild(iframe); - window.location.replace("https://google.com"); - return ( -
- -
- ); -} diff --git a/src/LoadSuspense.tsx b/src/LoadSuspense.tsx deleted file mode 100644 index 71a61028..00000000 --- a/src/LoadSuspense.tsx +++ /dev/null @@ -1,26 +0,0 @@ -import "./Suspense.css"; - -export function LoadSuspense() { - return ( -
- - - - - -
- ); -} diff --git a/src/Suspense.css b/src/Suspense.css deleted file mode 100644 index 404b46ee..00000000 --- a/src/Suspense.css +++ /dev/null @@ -1,23 +0,0 @@ -.suspenseContainer { - display: flex; - height: 100vh; - width: 100vw; - align-items: center; - justify-content: center; - background-color: #191724; -} - -@keyframes pulse-brighter { - 0%, - 100% { - opacity: 1; - } - 50% { - opacity: 0.5; - } -} - -.animate-pulse-brighter { - animation: pulse-brighter 2s infinite; - height: 11rem; -} diff --git a/src/Video.tsx b/src/Video.tsx deleted file mode 100644 index 81773c11..00000000 --- a/src/Video.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import { useRef, useEffect } from "preact/hooks"; - -export default function Video({ src, isMuted }) { - const refVideo = useRef(null); - - useEffect(() => { - if (!refVideo.current) { - return; - } - - if (isMuted) { - //open bug since 2017 that you cannot set muted in video element https://github.com/facebook/react/issues/10389 - refVideo.current.defaultMuted = true; - refVideo.current.muted = true; - } - - refVideo.current.srcObject = src; - }, [src]); - - return ( - - ); -} diff --git a/src/aes.ts b/src/aes.ts deleted file mode 100644 index 30af67f6..00000000 --- a/src/aes.ts +++ /dev/null @@ -1,745 +0,0 @@ -var Nr = 14, - Nk = 8, - Decrypt = false, - enc_utf8 = function (s) { - try { - return unescape(encodeURIComponent(s)); - } catch (e) { - throw "Error on UTF-8 encode"; - } - }, - dec_utf8 = function (s) { - try { - return decodeURIComponent(escape(s)); - } catch (e) { - throw "Bad Key"; - } - }, - padBlock = function (byteArr) { - var array = [], - cpad, - i; - if (byteArr.length < 16) { - cpad = 16 - byteArr.length; - array = [ - cpad, - cpad, - cpad, - cpad, - cpad, - cpad, - cpad, - cpad, - cpad, - cpad, - cpad, - cpad, - cpad, - cpad, - cpad, - cpad - ]; - } - for (i = 0; i < byteArr.length; i++) { - array[i] = byteArr[i]; - } - return array; - }, - block2s = function (block, lastBlock) { - var string = "", - padding, - i; - if (lastBlock) { - padding = block[15]; - if (padding > 16) { - throw "Decryption error: Maybe bad key"; - } - if (padding === 16) { - return ""; - } - for (i = 0; i < 16 - padding; i++) { - string += String.fromCharCode(block[i]); - } - } else { - for (i = 0; i < 16; i++) { - string += String.fromCharCode(block[i]); - } - } - return string; - }, - a2h = function (numArr) { - var string = "", - i; - for (i = 0; i < numArr.length; i++) { - string += (numArr[i] < 16 ? "0" : "") + numArr[i].toString(16); - } - return string; - }, - h2a = function (s) { - var ret = []; - s.replace(/(..)/g, function (s) { - ret.push(parseInt(s, 16)); - }); - return ret; - }, - s2a = function (string, binary) { - var array = [], - i; - - if (!binary) { - string = enc_utf8(string); - } - - for (i = 0; i < string.length; i++) { - array[i] = string.charCodeAt(i); - } - - return array; - }, - size = function (newsize) { - switch (newsize) { - case 128: - Nr = 10; - Nk = 4; - break; - case 192: - Nr = 12; - Nk = 6; - break; - case 256: - Nr = 14; - Nk = 8; - break; - default: - throw "Invalid Key Size Specified:" + newsize; - } - }, - randArr = function (num) { - var result = [], - i; - for (i = 0; i < num; i++) { - result = result.concat(Math.floor(Math.random() * 256)); - } - return result; - }, - openSSLKey = function (passwordArr, saltArr) { - var rounds = Nr >= 12 ? 3 : 2, - key = [], - iv = [], - md5_hash = [], - result = [], - data00 = passwordArr.concat(saltArr), - i; - md5_hash[0] = MD5(data00); - result = md5_hash[0]; - for (i = 1; i < rounds; i++) { - md5_hash[i] = MD5(md5_hash[i - 1].concat(data00)); - result = result.concat(md5_hash[i]); - } - key = result.slice(0, 4 * Nk); - iv = result.slice(4 * Nk, 4 * Nk + 16); - return { - key: key, - iv: iv - }; - }, - rawEncrypt = function (plaintext, key, iv) { - key = expandKey(key); - var numBlocks = Math.ceil(plaintext.length / 16), - blocks = [], - i, - cipherBlocks = []; - for (i = 0; i < numBlocks; i++) { - blocks[i] = padBlock(plaintext.slice(i * 16, i * 16 + 16)); - } - if (plaintext.length % 16 === 0) { - blocks.push([ - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16 - ]); - numBlocks++; - } - for (i = 0; i < blocks.length; i++) { - blocks[i] = - i === 0 - ? xorBlocks(blocks[i], iv) - : xorBlocks(blocks[i], cipherBlocks[i - 1]); - cipherBlocks[i] = encryptBlock(blocks[i], key); - } - return cipherBlocks; - }, - rawDecrypt = function (cryptArr, key, iv, binary) { - key = expandKey(key); - var numBlocks = cryptArr.length / 16, - cipherBlocks = [], - i, - plainBlocks = [], - string = ""; - for (i = 0; i < numBlocks; i++) { - cipherBlocks.push(cryptArr.slice(i * 16, (i + 1) * 16)); - } - for (i = cipherBlocks.length - 1; i >= 0; i--) { - plainBlocks[i] = decryptBlock(cipherBlocks[i], key); - plainBlocks[i] = - i === 0 - ? xorBlocks(plainBlocks[i], iv) - : xorBlocks(plainBlocks[i], cipherBlocks[i - 1]); - } - for (i = 0; i < numBlocks - 1; i++) { - string += block2s(plainBlocks[i], false); - } - string += block2s(plainBlocks[i], true); - return binary ? string : dec_utf8(string); - }, - encryptBlock = function (block, words) { - Decrypt = false; - var state = addRoundKey(block, words, 0), - round; - for (round = 1; round < Nr + 1; round++) { - state = subBytes(state); - state = shiftRows(state); - if (round < Nr) { - state = mixColumns(state); - } - state = addRoundKey(state, words, round); - } - - return state; - }, - decryptBlock = function (block, words) { - Decrypt = true; - var state = addRoundKey(block, words, Nr), - round; - for (round = Nr - 1; round > -1; round--) { - state = shiftRows(state); - state = subBytes(state); - state = addRoundKey(state, words, round); - if (round > 0) { - state = mixColumns(state); - } - } - - return state; - }, - subBytes = function (state) { - var S = Decrypt ? SBoxInv : SBox, - temp = [], - i; - for (i = 0; i < 16; i++) { - temp[i] = S[state[i]]; - } - return temp; - }, - shiftRows = function (state) { - var temp = [], - shiftBy = Decrypt - ? [0, 13, 10, 7, 4, 1, 14, 11, 8, 5, 2, 15, 12, 9, 6, 3] - : [0, 5, 10, 15, 4, 9, 14, 3, 8, 13, 2, 7, 12, 1, 6, 11], - i; - for (i = 0; i < 16; i++) { - temp[i] = state[shiftBy[i]]; - } - return temp; - }, - mixColumns = function (state) { - var t = [], - c; - if (!Decrypt) { - for (c = 0; c < 4; c++) { - t[c * 4] = - G2X[state[c * 4]] ^ - G3X[state[1 + c * 4]] ^ - state[2 + c * 4] ^ - state[3 + c * 4]; - t[1 + c * 4] = - state[c * 4] ^ - G2X[state[1 + c * 4]] ^ - G3X[state[2 + c * 4]] ^ - state[3 + c * 4]; - t[2 + c * 4] = - state[c * 4] ^ - state[1 + c * 4] ^ - G2X[state[2 + c * 4]] ^ - G3X[state[3 + c * 4]]; - t[3 + c * 4] = - G3X[state[c * 4]] ^ - state[1 + c * 4] ^ - state[2 + c * 4] ^ - G2X[state[3 + c * 4]]; - } - } else { - for (c = 0; c < 4; c++) { - t[c * 4] = - GEX[state[c * 4]] ^ - GBX[state[1 + c * 4]] ^ - GDX[state[2 + c * 4]] ^ - G9X[state[3 + c * 4]]; - t[1 + c * 4] = - G9X[state[c * 4]] ^ - GEX[state[1 + c * 4]] ^ - GBX[state[2 + c * 4]] ^ - GDX[state[3 + c * 4]]; - t[2 + c * 4] = - GDX[state[c * 4]] ^ - G9X[state[1 + c * 4]] ^ - GEX[state[2 + c * 4]] ^ - GBX[state[3 + c * 4]]; - t[3 + c * 4] = - GBX[state[c * 4]] ^ - GDX[state[1 + c * 4]] ^ - G9X[state[2 + c * 4]] ^ - GEX[state[3 + c * 4]]; - } - } - - return t; - }, - addRoundKey = function (state, words, round) { - var temp = [], - i; - for (i = 0; i < 16; i++) { - temp[i] = state[i] ^ words[round][i]; - } - return temp; - }, - xorBlocks = function (block1, block2) { - var temp = [], - i; - for (i = 0; i < 16; i++) { - temp[i] = block1[i] ^ block2[i]; - } - return temp; - }, - expandKey = function (key) { - var w = [], - temp = [], - i, - r, - t, - flat = [], - j; - - for (i = 0; i < Nk; i++) { - r = [key[4 * i], key[4 * i + 1], key[4 * i + 2], key[4 * i + 3]]; - w[i] = r; - } - - for (i = Nk; i < 4 * (Nr + 1); i++) { - w[i] = []; - for (t = 0; t < 4; t++) { - temp[t] = w[i - 1][t]; - } - if (i % Nk === 0) { - temp = subWord(rotWord(temp)); - temp[0] ^= Rcon[i / Nk - 1]; - } else if (Nk > 6 && i % Nk === 4) { - temp = subWord(temp); - } - for (t = 0; t < 4; t++) { - w[i][t] = w[i - Nk][t] ^ temp[t]; - } - } - for (i = 0; i < Nr + 1; i++) { - flat[i] = []; - for (j = 0; j < 4; j++) { - flat[i].push( - w[i * 4 + j][0], - w[i * 4 + j][1], - w[i * 4 + j][2], - w[i * 4 + j][3] - ); - } - } - return flat; - }, - subWord = function (w) { - for (var i = 0; i < 4; i++) { - w[i] = SBox[w[i]]; - } - return w; - }, - rotWord = function (w) { - var tmp = w[0], - i; - for (i = 0; i < 3; i++) { - w[i] = w[i + 1]; - } - w[3] = tmp; - return w; - }, - strhex = function (str, size) { - var i, - ret = []; - for (i = 0; i < str.length; i += size) { - ret[i / size] = parseInt(str.substr(i, size), 16); - } - return ret; - }, - invertArr = function (arr) { - var i, - ret = []; - for (i = 0; i < arr.length; i++) { - ret[arr[i]] = i; - } - return ret; - }, - Gxx = function (a, b) { - var i, ret; - - ret = 0; - for (i = 0; i < 8; i++) { - ret = (b & 1) === 1 ? ret ^ a : ret; - a = a > 0x7f ? 0x11b ^ (a << 1) : a << 1; - b >>>= 1; - } - - return ret; - }, - Gx = function (x) { - var i, - r = []; - for (i = 0; i < 256; i++) { - r[i] = Gxx(x, i); - } - return r; - }, - SBox = strhex( - "637c777bf26b6fc53001672bfed7ab76ca82c97dfa5947f0add4a2af9ca472c0b7fd9326363ff7cc34a5e5f171d8311504c723c31896059a071280e2eb27b27509832c1a1b6e5aa0523bd6b329e32f8453d100ed20fcb15b6acbbe394a4c58cfd0efaafb434d338545f9027f503c9fa851a3408f929d38f5bcb6da2110fff3d2cd0c13ec5f974417c4a77e3d645d197360814fdc222a908846eeb814de5e0bdbe0323a0a4906245cc2d3ac629195e479e7c8376d8dd54ea96c56f4ea657aae08ba78252e1ca6b4c6e8dd741f4bbd8b8a703eb5664803f60e613557b986c11d9ee1f8981169d98e949b1e87e9ce5528df8ca1890dbfe6426841992d0fb054bb16", - 2 - ), - SBoxInv = invertArr(SBox), - Rcon = strhex( - "01020408102040801b366cd8ab4d9a2f5ebc63c697356ad4b37dfaefc591", - 2 - ), - G2X = Gx(2), - G3X = Gx(3), - G9X = Gx(9), - GBX = Gx(0xb), - GDX = Gx(0xd), - GEX = Gx(0xe), - enc = function (string, pass, binary) { - var salt = randArr(8), - pbe = openSSLKey(s2a(pass, binary), salt), - key = pbe.key, - iv = pbe.iv, - cipherBlocks, - saltBlock = [[83, 97, 108, 116, 101, 100, 95, 95].concat(salt)]; - string = s2a(string, binary); - cipherBlocks = rawEncrypt(string, key, iv); - - cipherBlocks = saltBlock.concat(cipherBlocks); - // @ts-ignore - return Base64.encode(cipherBlocks); - }, - dec = function (string, pass, binary) { - var cryptArr = Base64.decode(string), - salt = cryptArr.slice(8, 16), - pbe = openSSLKey(s2a(pass, binary), salt), - key = pbe.key, - iv = pbe.iv; - cryptArr = cryptArr.slice(16, cryptArr.length); - - string = rawDecrypt(cryptArr, key, iv, binary); - return string; - }, - MD5 = function (numArr) { - function rotateLeft(lValue, iShiftBits) { - return (lValue << iShiftBits) | (lValue >>> (32 - iShiftBits)); - } - - function addUnsigned(lX, lY) { - var lX4, lY4, lX8, lY8, lResult; - lX8 = lX & 0x80000000; - lY8 = lY & 0x80000000; - lX4 = lX & 0x40000000; - lY4 = lY & 0x40000000; - lResult = (lX & 0x3fffffff) + (lY & 0x3fffffff); - if (lX4 & lY4) { - return lResult ^ 0x80000000 ^ lX8 ^ lY8; - } - if (lX4 | lY4) { - if (lResult & 0x40000000) { - return lResult ^ 0xc0000000 ^ lX8 ^ lY8; - } else { - return lResult ^ 0x40000000 ^ lX8 ^ lY8; - } - } else { - return lResult ^ lX8 ^ lY8; - } - } - - function f(x, y, z) { - return (x & y) | (~x & z); - } - function g(x, y, z) { - return (x & z) | (y & ~z); - } - function h(x, y, z) { - return x ^ y ^ z; - } - function funcI(x, y, z) { - return y ^ (x | ~z); - } - - function ff(a, b, c, d, x, s, ac) { - a = addUnsigned(a, addUnsigned(addUnsigned(f(b, c, d), x), ac)); - return addUnsigned(rotateLeft(a, s), b); - } - - function gg(a, b, c, d, x, s, ac) { - a = addUnsigned(a, addUnsigned(addUnsigned(g(b, c, d), x), ac)); - return addUnsigned(rotateLeft(a, s), b); - } - - function hh(a, b, c, d, x, s, ac) { - a = addUnsigned(a, addUnsigned(addUnsigned(h(b, c, d), x), ac)); - return addUnsigned(rotateLeft(a, s), b); - } - - function ii(a, b, c, d, x, s, ac) { - a = addUnsigned(a, addUnsigned(addUnsigned(funcI(b, c, d), x), ac)); - return addUnsigned(rotateLeft(a, s), b); - } - - function convertToWordArray(numArr) { - var lWordCount, - lMessageLength = numArr.length, - lNumberOfWords_temp1 = lMessageLength + 8, - lNumberOfWords_temp2 = - (lNumberOfWords_temp1 - (lNumberOfWords_temp1 % 64)) / 64, - lNumberOfWords = (lNumberOfWords_temp2 + 1) * 16, - lWordArray = [], - lBytePosition = 0, - lByteCount = 0; - while (lByteCount < lMessageLength) { - lWordCount = (lByteCount - (lByteCount % 4)) / 4; - lBytePosition = (lByteCount % 4) * 8; - lWordArray[lWordCount] = - lWordArray[lWordCount] | (numArr[lByteCount] << lBytePosition); - lByteCount++; - } - lWordCount = (lByteCount - (lByteCount % 4)) / 4; - lBytePosition = (lByteCount % 4) * 8; - lWordArray[lWordCount] = lWordArray[lWordCount] | (0x80 << lBytePosition); - lWordArray[lNumberOfWords - 2] = lMessageLength << 3; - lWordArray[lNumberOfWords - 1] = lMessageLength >>> 29; - return lWordArray; - } - - function wordToHex(lValue) { - var lByte, - lCount, - wordToHexArr = []; - for (lCount = 0; lCount <= 3; lCount++) { - lByte = (lValue >>> (lCount * 8)) & 255; - wordToHexArr = wordToHexArr.concat(lByte); - } - return wordToHexArr; - } - - var x = [], - k, - AA, - BB, - CC, - DD, - a, - b, - c, - d, - rnd = strhex( - "67452301efcdab8998badcfe10325476d76aa478e8c7b756242070dbc1bdceeef57c0faf4787c62aa8304613fd469501698098d88b44f7afffff5bb1895cd7be6b901122fd987193a679438e49b40821f61e2562c040b340265e5a51e9b6c7aad62f105d02441453d8a1e681e7d3fbc821e1cde6c33707d6f4d50d87455a14eda9e3e905fcefa3f8676f02d98d2a4c8afffa39428771f6816d9d6122fde5380ca4beea444bdecfa9f6bb4b60bebfbc70289b7ec6eaa127fad4ef308504881d05d9d4d039e6db99e51fa27cf8c4ac5665f4292244432aff97ab9423a7fc93a039655b59c38f0ccc92ffeff47d85845dd16fa87e4ffe2ce6e0a30143144e0811a1f7537e82bd3af2352ad7d2bbeb86d391", - 8 - ); - - x = convertToWordArray(numArr); - - a = rnd[0]; - b = rnd[1]; - c = rnd[2]; - d = rnd[3]; - - for (k = 0; k < x.length; k += 16) { - AA = a; - BB = b; - CC = c; - DD = d; - a = ff(a, b, c, d, x[k + 0], 7, rnd[4]); - d = ff(d, a, b, c, x[k + 1], 12, rnd[5]); - c = ff(c, d, a, b, x[k + 2], 17, rnd[6]); - b = ff(b, c, d, a, x[k + 3], 22, rnd[7]); - a = ff(a, b, c, d, x[k + 4], 7, rnd[8]); - d = ff(d, a, b, c, x[k + 5], 12, rnd[9]); - c = ff(c, d, a, b, x[k + 6], 17, rnd[10]); - b = ff(b, c, d, a, x[k + 7], 22, rnd[11]); - a = ff(a, b, c, d, x[k + 8], 7, rnd[12]); - d = ff(d, a, b, c, x[k + 9], 12, rnd[13]); - c = ff(c, d, a, b, x[k + 10], 17, rnd[14]); - b = ff(b, c, d, a, x[k + 11], 22, rnd[15]); - a = ff(a, b, c, d, x[k + 12], 7, rnd[16]); - d = ff(d, a, b, c, x[k + 13], 12, rnd[17]); - c = ff(c, d, a, b, x[k + 14], 17, rnd[18]); - b = ff(b, c, d, a, x[k + 15], 22, rnd[19]); - a = gg(a, b, c, d, x[k + 1], 5, rnd[20]); - d = gg(d, a, b, c, x[k + 6], 9, rnd[21]); - c = gg(c, d, a, b, x[k + 11], 14, rnd[22]); - b = gg(b, c, d, a, x[k + 0], 20, rnd[23]); - a = gg(a, b, c, d, x[k + 5], 5, rnd[24]); - d = gg(d, a, b, c, x[k + 10], 9, rnd[25]); - c = gg(c, d, a, b, x[k + 15], 14, rnd[26]); - b = gg(b, c, d, a, x[k + 4], 20, rnd[27]); - a = gg(a, b, c, d, x[k + 9], 5, rnd[28]); - d = gg(d, a, b, c, x[k + 14], 9, rnd[29]); - c = gg(c, d, a, b, x[k + 3], 14, rnd[30]); - b = gg(b, c, d, a, x[k + 8], 20, rnd[31]); - a = gg(a, b, c, d, x[k + 13], 5, rnd[32]); - d = gg(d, a, b, c, x[k + 2], 9, rnd[33]); - c = gg(c, d, a, b, x[k + 7], 14, rnd[34]); - b = gg(b, c, d, a, x[k + 12], 20, rnd[35]); - a = hh(a, b, c, d, x[k + 5], 4, rnd[36]); - d = hh(d, a, b, c, x[k + 8], 11, rnd[37]); - c = hh(c, d, a, b, x[k + 11], 16, rnd[38]); - b = hh(b, c, d, a, x[k + 14], 23, rnd[39]); - a = hh(a, b, c, d, x[k + 1], 4, rnd[40]); - d = hh(d, a, b, c, x[k + 4], 11, rnd[41]); - c = hh(c, d, a, b, x[k + 7], 16, rnd[42]); - b = hh(b, c, d, a, x[k + 10], 23, rnd[43]); - a = hh(a, b, c, d, x[k + 13], 4, rnd[44]); - d = hh(d, a, b, c, x[k + 0], 11, rnd[45]); - c = hh(c, d, a, b, x[k + 3], 16, rnd[46]); - b = hh(b, c, d, a, x[k + 6], 23, rnd[47]); - a = hh(a, b, c, d, x[k + 9], 4, rnd[48]); - d = hh(d, a, b, c, x[k + 12], 11, rnd[49]); - c = hh(c, d, a, b, x[k + 15], 16, rnd[50]); - b = hh(b, c, d, a, x[k + 2], 23, rnd[51]); - a = ii(a, b, c, d, x[k + 0], 6, rnd[52]); - d = ii(d, a, b, c, x[k + 7], 10, rnd[53]); - c = ii(c, d, a, b, x[k + 14], 15, rnd[54]); - b = ii(b, c, d, a, x[k + 5], 21, rnd[55]); - a = ii(a, b, c, d, x[k + 12], 6, rnd[56]); - d = ii(d, a, b, c, x[k + 3], 10, rnd[57]); - c = ii(c, d, a, b, x[k + 10], 15, rnd[58]); - b = ii(b, c, d, a, x[k + 1], 21, rnd[59]); - a = ii(a, b, c, d, x[k + 8], 6, rnd[60]); - d = ii(d, a, b, c, x[k + 15], 10, rnd[61]); - c = ii(c, d, a, b, x[k + 6], 15, rnd[62]); - b = ii(b, c, d, a, x[k + 13], 21, rnd[63]); - a = ii(a, b, c, d, x[k + 4], 6, rnd[64]); - d = ii(d, a, b, c, x[k + 11], 10, rnd[65]); - c = ii(c, d, a, b, x[k + 2], 15, rnd[66]); - b = ii(b, c, d, a, x[k + 9], 21, rnd[67]); - a = addUnsigned(a, AA); - b = addUnsigned(b, BB); - c = addUnsigned(c, CC); - d = addUnsigned(d, DD); - } - - return wordToHex(a).concat(wordToHex(b), wordToHex(c), wordToHex(d)); - }, - encString = function (plaintext, key, iv) { - var i; - plaintext = s2a(plaintext, false); - - key = s2a(key, false); - for (i = key.length; i < 32; i++) { - key[i] = 0; - } - - if (iv === undefined) { - } else { - iv = s2a(iv, false); - for (i = iv.length; i < 16; i++) { - iv[i] = 0; - } - } - - var ct = rawEncrypt(plaintext, key, iv); - var ret = [iv]; - for (i = 0; i < ct.length; i++) { - ret[ret.length] = ct[i]; - } - // @ts-ignore - return Base64.encode(ret); - }, - decString = function (ciphertext, key) { - var tmp = Base64.decode(ciphertext); - var iv = tmp.slice(0, 16); - var ct = tmp.slice(16, tmp.length); - var i; - - key = s2a(key, false); - for (i = key.length; i < 32; i++) { - key[i] = 0; - } - - var pt = rawDecrypt(ct, key, iv, false); - return pt; - }, - Base64 = (function () { - var _chars = - "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", - chars = _chars.split(""), - encode = function (b, withBreaks) { - var flatArr = [], - b64 = "", - i, - broken_b64, - totalChunks = Math.floor((b.length * 16) / 3); - for (i = 0; i < b.length * 16; i++) { - flatArr.push(b[Math.floor(i / 16)][i % 16]); - } - for (i = 0; i < flatArr.length; i = i + 3) { - b64 += chars[flatArr[i] >> 2]; - b64 += chars[((flatArr[i] & 3) << 4) | (flatArr[i + 1] >> 4)]; - if (flatArr[i + 1] !== undefined) { - b64 += chars[((flatArr[i + 1] & 15) << 2) | (flatArr[i + 2] >> 6)]; - } else { - b64 += "="; - } - if (flatArr[i + 2] !== undefined) { - b64 += chars[flatArr[i + 2] & 63]; - } else { - b64 += "="; - } - } - broken_b64 = b64.slice(0, 64) + "\n"; - for (i = 1; i < Math.ceil(b64.length / 64); i++) { - broken_b64 += - b64.slice(i * 64, i * 64 + 64) + - (Math.ceil(b64.length / 64) === i + 1 ? "" : "\n"); - } - return broken_b64; - }, - decode = function (string) { - string = string.replace(/\n/g, ""); - var flatArr = [], - c = [], - b = [], - i; - for (i = 0; i < string.length; i = i + 4) { - c[0] = _chars.indexOf(string.charAt(i)); - c[1] = _chars.indexOf(string.charAt(i + 1)); - c[2] = _chars.indexOf(string.charAt(i + 2)); - c[3] = _chars.indexOf(string.charAt(i + 3)); - - b[0] = (c[0] << 2) | (c[1] >> 4); - b[1] = ((c[1] & 15) << 4) | (c[2] >> 2); - b[2] = ((c[2] & 3) << 6) | c[3]; - flatArr.push(b[0], b[1], b[2]); - } - flatArr = flatArr.slice(0, flatArr.length - (flatArr.length % 16)); - return flatArr; - }; - // @ts-ignore - if (typeof Array.indexOf === "function") { - // @ts-ignore - _chars = chars; - } - - return { - encode: encode, - decode: decode - }; - })(); - -export { enc, dec }; diff --git a/src/assets/automatic.png b/src/assets/automatic.png deleted file mode 100644 index 89a939da..00000000 Binary files a/src/assets/automatic.png and /dev/null differ diff --git a/src/assets/bing.png b/src/assets/bing.png deleted file mode 100644 index 0aa2db1e..00000000 Binary files a/src/assets/bing.png and /dev/null differ diff --git a/src/assets/classic_theme.png b/src/assets/classic_theme.png new file mode 100644 index 00000000..a52677d9 Binary files /dev/null and b/src/assets/classic_theme.png differ diff --git a/src/assets/credits/libcurl.png b/src/assets/credits/libcurl.png new file mode 100644 index 00000000..5d81843a Binary files /dev/null and b/src/assets/credits/libcurl.png differ diff --git a/src/assets/credits/mercury.png b/src/assets/credits/mercury.png new file mode 100644 index 00000000..fc189983 Binary files /dev/null and b/src/assets/credits/mercury.png differ diff --git a/src/assets/credits/motortruck1221.png b/src/assets/credits/motortruck1221.png new file mode 100644 index 00000000..d1b8e2e5 Binary files /dev/null and b/src/assets/credits/motortruck1221.png differ diff --git a/src/assets/rammerhead.png b/src/assets/credits/rammerhead.png similarity index 100% rename from src/assets/rammerhead.png rename to src/assets/credits/rammerhead.png diff --git a/src/assets/credits/rift.jpeg b/src/assets/credits/rift.jpeg new file mode 100644 index 00000000..9cb5c515 Binary files /dev/null and b/src/assets/credits/rift.jpeg differ diff --git a/src/assets/ultraviolet.png b/src/assets/credits/uv.png similarity index 100% rename from src/assets/ultraviolet.png rename to src/assets/credits/uv.png diff --git a/src/assets/ddg.png b/src/assets/ddg.png deleted file mode 100644 index 052fdc1b..00000000 Binary files a/src/assets/ddg.png and /dev/null differ diff --git a/src/assets/dynamic.png b/src/assets/dynamic.png deleted file mode 100644 index 96bca953..00000000 Binary files a/src/assets/dynamic.png and /dev/null differ diff --git a/src/assets/english.png b/src/assets/english.png deleted file mode 100644 index 2c4153da..00000000 Binary files a/src/assets/english.png and /dev/null differ diff --git a/src/assets/fortnite.jpg b/src/assets/fortnite.jpg new file mode 100644 index 00000000..1540b008 Binary files /dev/null and b/src/assets/fortnite.jpg differ diff --git a/src/assets/games.svg b/src/assets/games.svg deleted file mode 100644 index 5179f6bb..00000000 --- a/src/assets/games.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/src/assets/google.png b/src/assets/google.png deleted file mode 100644 index 2f53d7fa..00000000 Binary files a/src/assets/google.png and /dev/null differ diff --git a/src/assets/japanese.png b/src/assets/japanese.png deleted file mode 100644 index 62282d60..00000000 Binary files a/src/assets/japanese.png and /dev/null differ diff --git a/src/assets/link.svg b/src/assets/link.svg deleted file mode 100644 index 50cd5f12..00000000 --- a/src/assets/link.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - \ No newline at end of file diff --git a/src/assets/logo.svg b/src/assets/logo.svg deleted file mode 100644 index 1b0db3f7..00000000 --- a/src/assets/logo.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/src/assets/preact.svg b/src/assets/preact.svg deleted file mode 100644 index 908f17de..00000000 --- a/src/assets/preact.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/spanish.png b/src/assets/spanish.png deleted file mode 100644 index 2915c686..00000000 Binary files a/src/assets/spanish.png and /dev/null differ diff --git a/src/components/Card.astro b/src/components/Card.astro new file mode 100644 index 00000000..e146b2b2 --- /dev/null +++ b/src/components/Card.astro @@ -0,0 +1,61 @@ +--- +interface Props { + title: string; + body: string; + href: string; +} + +const { href, title, body } = Astro.props; +--- + + + diff --git a/src/components/Header.astro b/src/components/Header.astro new file mode 100644 index 00000000..dd0d1307 --- /dev/null +++ b/src/components/Header.astro @@ -0,0 +1,119 @@ +--- +import { MARKETPLACE_ENABLED } from "astro:env/client"; +import { Icon } from "astro-icon/components"; +import { getLangFromUrl, useTranslations } from "../i18n/utils"; +import { isMobileNavOpen } from "../store.js"; +import HeaderButton from "./HeaderButton.astro"; +import Logo from "./Logo.astro"; +const lang = getLangFromUrl(Astro.url); +const t = useTranslations(lang); +--- + + + diff --git a/src/components/Header.tsx b/src/components/Header.tsx deleted file mode 100644 index 7bbfa7b3..00000000 --- a/src/components/Header.tsx +++ /dev/null @@ -1,128 +0,0 @@ -import { HeaderButton } from "./HeaderButton"; -import { useTranslation } from "react-i18next"; -import { Link } from "preact-router"; -import { motion } from "framer-motion"; - -// Header icons -import { HiOutlineCube } from "react-icons/hi"; -import { RxMixerVertical, RxHamburgerMenu } from "react-icons/rx"; -import { RiLinksFill } from "react-icons/ri"; -import { BsQuestionLg } from "react-icons/bs"; -import { useState } from "preact/hooks"; -import { Logo } from "./logo"; - -export function Header() { - const { t } = useTranslation(); - const [isActive, setIsActive] = useState(false); - - return ( - - ); -} diff --git a/src/components/HeaderButton.astro b/src/components/HeaderButton.astro new file mode 100644 index 00000000..05bf6631 --- /dev/null +++ b/src/components/HeaderButton.astro @@ -0,0 +1,16 @@ +--- +const { text, route } = Astro.props; +--- + + + + + {text} + + diff --git a/src/components/HeaderButton.tsx b/src/components/HeaderButton.tsx deleted file mode 100644 index c87fea24..00000000 --- a/src/components/HeaderButton.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import { useTranslation } from "react-i18next"; -import { Link } from "preact-router"; - -interface HeaderButtonProps { - href: string; - Icon: any; - translationKey: string; -} - -export function HeaderButton(props: HeaderButtonProps) { - const { href, Icon, translationKey } = props; - const { t } = useTranslation(); - - return ( - -
- - - {t(translationKey)} - -
- - ); -} diff --git a/src/components/HeaderRoute.tsx b/src/components/HeaderRoute.tsx deleted file mode 100644 index 5ce0e1e5..00000000 --- a/src/components/HeaderRoute.tsx +++ /dev/null @@ -1,12 +0,0 @@ -import { Header } from "./Header"; - -export function HeaderRoute(props: { children: any }) { - return ( -
-
-
-
{props.children}
-
-
- ); -} diff --git a/src/components/Loading.astro b/src/components/Loading.astro new file mode 100644 index 00000000..53b3fd37 --- /dev/null +++ b/src/components/Loading.astro @@ -0,0 +1,23 @@ +
+ + + + + +
+ + diff --git a/src/components/Logo.astro b/src/components/Logo.astro new file mode 100644 index 00000000..a33b2114 --- /dev/null +++ b/src/components/Logo.astro @@ -0,0 +1,15 @@ +nebula diff --git a/src/components/Meta.tsx b/src/components/Meta.tsx deleted file mode 100644 index 82cab45b..00000000 --- a/src/components/Meta.tsx +++ /dev/null @@ -1,88 +0,0 @@ -import { Helmet } from "react-helmet"; -export default function Meta() { - return ( - - - - - - - - - - - - - - - - - - - ); -} diff --git a/src/components/MobileNavigation.astro b/src/components/MobileNavigation.astro new file mode 100644 index 00000000..df8cbae0 --- /dev/null +++ b/src/components/MobileNavigation.astro @@ -0,0 +1,58 @@ +--- +import { Icon } from "astro-icon/components"; +import { getLangFromUrl, useTranslations } from "../i18n/utils"; +import HeaderButton from "./HeaderButton.astro"; +const lang = getLangFromUrl(Astro.url); +const t = useTranslations(lang); +import { MARKETPLACE_ENABLED } from "astro:env/client"; +--- + +
+ + + + + + + + + + {MARKETPLACE_ENABLED && + + + + } + + + +
+ diff --git a/src/components/SidebarButton.astro b/src/components/SidebarButton.astro new file mode 100644 index 00000000..de5e324b --- /dev/null +++ b/src/components/SidebarButton.astro @@ -0,0 +1,17 @@ +--- +const { title, route } = Astro.props; +--- + + +
+ +
+
+ {title} +
+
diff --git a/src/components/ThemeProvider.tsx b/src/components/ThemeProvider.tsx deleted file mode 100644 index 7077463d..00000000 --- a/src/components/ThemeProvider.tsx +++ /dev/null @@ -1,92 +0,0 @@ -import { createContext } from "preact"; -import { useContext, useEffect, useState } from "preact/hooks"; -type Theme = - | "main" - | "hacker" - | "catppuccin-mocha" - | "catppuccin-macchiato" - | "catppuccin-frappe" - | "catppuccin-latte"; -const themes: Theme[] = [ - "main", - "hacker", - "catppuccin-mocha", - "catppuccin-macchiato", - "catppuccin-frappe", - "catppuccin-latte" -]; -type ThemeProviderProps = { - children: React.ReactNode; -}; -type ThemeProviderState = { - themes: Theme[]; - theme: Theme; - background: string; - setTheme: (theme: Theme) => void; - setBackground: (background: string) => void; -}; - -const initialState: ThemeProviderState = { - themes: themes, - theme: "main", - background: "", - setTheme: () => null, - setBackground: () => null -}; - -const ThemeProviderContext = createContext(initialState); - -export function ThemeProvider({ children, ...props }: ThemeProviderProps) { - const defaultTheme = "main"; - const storageKey = "theme"; - const bgKey = "background"; - const [theme, setTheme] = useState( - () => (localStorage.getItem(storageKey) as Theme) || defaultTheme - ); - const [background, setBackground] = useState(() => - localStorage.getItem(bgKey) - ); - - useEffect(() => { - const root = window.document.documentElement; - - themes.forEach((theme) => { - root.classList.remove(theme); - }); - root.classList.add(theme); - if (background) { - document.documentElement.style.setProperty( - "--background-image", - `url(${background})` - ); - } - }, [theme, themes, background]); - - const value = { - theme, - themes, - background, - setTheme: (theme: Theme) => { - localStorage.setItem(storageKey, theme); - setTheme(theme); - }, - setBackground: (background: string) => { - localStorage.setItem(bgKey, background); - setBackground(background); - } - }; - - return ( - - {children} - - ); -} -export const useTheme = () => { - const context = useContext(ThemeProviderContext); - - if (context === undefined) - throw new Error("useTheme must be used within a ThemeProvider"); - - return context; -}; diff --git a/src/components/catalog/CatalogCard.svelte b/src/components/catalog/CatalogCard.svelte new file mode 100644 index 00000000..c0d583cf --- /dev/null +++ b/src/components/catalog/CatalogCard.svelte @@ -0,0 +1,47 @@ + + +
+ +
+

Loading...

+
+ {#await suspend(assets) then data} + {#if Object.keys(data).length > 0} + + {/if} + {/await} +
+
diff --git a/src/components/catalog/InstalledPlugins.svelte b/src/components/catalog/InstalledPlugins.svelte new file mode 100644 index 00000000..fce23a5e --- /dev/null +++ b/src/components/catalog/InstalledPlugins.svelte @@ -0,0 +1,57 @@ + + + {#await suspend(assets) then data} + {#each Object.entries(data) as [key, asset]} + +
+
+ plugin +
+
+
{asset.title}
+
+
{settings.marketPlaceSettings.uninstall(asset.type === "page" ? "plugin-page" : "plugin-sw", asset.package_name); compRef[key].$destroy()}}> + + + +
+ + + + + +
+
+
+
+ {/each} + {/await} +
diff --git a/src/components/catalog/InstalledThemes.svelte b/src/components/catalog/InstalledThemes.svelte new file mode 100644 index 00000000..241fdec0 --- /dev/null +++ b/src/components/catalog/InstalledThemes.svelte @@ -0,0 +1,64 @@ + + +
+
{settings.marketPlaceSettings.changeTheme(true)}}> + Classic Nebula +
+
+ Classic Nebula +
+
+ {#await suspend(assets) then data} + {#each Object.entries(data) as [key, asset]} + +
+
{settings.marketPlaceSettings.changeTheme(false, asset.payload, asset.background_video, asset.background_image, asset.package_name)}}> + theme +
+
+
{asset.title}
+
+
{settings.marketPlaceSettings.uninstall("theme", asset.package_name); settings.marketPlaceSettings.changeTheme(true); compRef[key].$destroy()}}> + + + +
+ + + + + +
+
+
+
+ {/each} + {/await} +
diff --git a/src/components/catalog/Parent.svelte b/src/components/catalog/Parent.svelte new file mode 100644 index 00000000..b10e18f5 --- /dev/null +++ b/src/components/catalog/Parent.svelte @@ -0,0 +1,2 @@ + + diff --git a/src/components/iframe/Iframe.tsx b/src/components/iframe/Iframe.tsx deleted file mode 100644 index 3d0c888e..00000000 --- a/src/components/iframe/Iframe.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import { motion } from "framer-motion"; -import { IframeHeader } from "./IframeHeader"; - -export function Iframe(props: { url: string }) { - return ( - <> - - - - - ); -} diff --git a/src/pages/Settings/BareInput.tsx b/src/pages/Settings/BareInput.tsx deleted file mode 100644 index dfa1c278..00000000 --- a/src/pages/Settings/BareInput.tsx +++ /dev/null @@ -1,88 +0,0 @@ -import { useState, useEffect } from "preact/hooks"; -import { set } from "../../util/IDB"; -import { uninstallServiceWorkers } from "../../util/SWHelper"; -import { useTranslation } from "react-i18next"; -import { ToastContainer, toast } from "react-toastify"; -import { BareTest } from "./BareTest"; - -interface BareInputProps { - placeholder: string; - storageKey: string; -} - -function BareInput(props: BareInputProps) { - const { t } = useTranslation(); - const value = localStorage.getItem(props.storageKey) || "/bare/"; - const [inputValue, setInputValue] = useState(value); - function validateUrl(url: string) { - let finalUrl = url; - if (url === "/bare/" || url === "/bare") { - finalUrl = "/bare/"; - return finalUrl; - } - if (url === null || url === undefined || url === "") { - finalUrl = "/bare/"; - return finalUrl; - } - if (!url.endsWith("/")) { - finalUrl = url + "/"; - } - if (!finalUrl.startsWith("http://") && !finalUrl.startsWith("https://")) { - finalUrl = "https://" + finalUrl; - } - return finalUrl; - } - function handleChange() { - const url = validateUrl( - (document.getElementById("input") as HTMLInputElement).value - ); - BareTest(url + "v3/").then((result) => { - if (result) { - setInputValue( - (document.getElementById("input") as HTMLInputElement).value - ); - set(props.storageKey, url); - - set("HTTPProxy", ""); // Disable http proxy servicesssss (most bare servers won't support these and we don't want to be untruthful to the user.) - localStorage.setItem("HTTPProxy", ""); - - localStorage.setItem(props.storageKey, url); - uninstallServiceWorkers(); - window.location.reload(); - } else { - (document.getElementById("input") as HTMLInputElement).value = - localStorage.getItem("bare") || "/bare/"; - toast(t("bareError"), { - type: "error" - }); - } - }); - } - return ( -
- -
- { - if (event.key === "Enter") { - handleChange(); - } - }} - id="input" - className="font-roboto flex h-14 w-56 flex-row rounded-2xl border border-input-border-color bg-input p-4 text-center text-xl text-input-text" - /> -
- {t("settings.bare.select")} -
-
-
- ); -} - -export default BareInput; diff --git a/src/pages/Settings/BareTest.tsx b/src/pages/Settings/BareTest.tsx deleted file mode 100644 index 7dbf6e18..00000000 --- a/src/pages/Settings/BareTest.tsx +++ /dev/null @@ -1,29 +0,0 @@ -export function BareTest(bareUrl) { - const headers = new Headers({ - "x-bare-url": "https://www.google.com", - "X-Bare-Headers": JSON.stringify({ - Accept: - "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9" - }) - }); - - return fetch(bareUrl, { - method: "GET", - headers: headers - }) - .then((response) => { - if ( - response.headers.get("x-bare-status") === "200" || - response.headers.get("x-bare-status") === "302" - ) { - return true; - } else { - // the site is a real site but doesn't act like a bare server - return false; - } - }) - .catch((error) => { - // incase the site doesn't exist - return false; - }); -} diff --git a/src/pages/Settings/CloakPreset.tsx b/src/pages/Settings/CloakPreset.tsx deleted file mode 100644 index f5a29de8..00000000 --- a/src/pages/Settings/CloakPreset.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import { useState, useEffect } from "preact/hooks"; - -interface Props { - faviconUrl: string; - title: string; -} - -const CloakPreset = (props: Props) => { - const cloak = (event: any) => { - event.preventDefault(); - console.log(props.faviconUrl); - localStorage.setItem("cloakFavicon", props.faviconUrl); - localStorage.setItem("cloakTitle", props.title); - window.location.reload(); - }; - - return ( -
- -
- ); -}; - -export default CloakPreset; diff --git a/src/pages/Settings/Credits.tsx b/src/pages/Settings/Credits.tsx deleted file mode 100644 index ba6fbaf7..00000000 --- a/src/pages/Settings/Credits.tsx +++ /dev/null @@ -1,104 +0,0 @@ -import { motion } from "framer-motion"; -import { tabContentVariant, settingsPageVariant } from "./Variants"; -import Dropdown from "./Dropdown"; -import { useTranslation } from "react-i18next"; -import { PersonCard } from "./PersonCard"; - -export const Credits = ({ id, active }) => { - const { t } = useTranslation(); - - return ( - - -
-
-

{t("credits.devs")}

-
- - - - - -
-

{t("credits.jpTranslators")}

-
- - - -
-

{t("credits.esTranslators")}

-
- - -
- -

Ultraviolet

-
- -

Rammerhead

-
- -

Dynamic

-
- -

epoxy-tls

-
- -

libcurl.js

-
-
-
-
-
- ); -}; diff --git a/src/pages/Settings/Customization.tsx b/src/pages/Settings/Customization.tsx deleted file mode 100644 index ed02e429..00000000 --- a/src/pages/Settings/Customization.tsx +++ /dev/null @@ -1,74 +0,0 @@ -import { useRef } from "preact/hooks"; -import { useTheme } from "../../components/ThemeProvider"; -import { motion } from "framer-motion"; -import { tabContentVariant, settingsPageVariant } from "./Variants"; -import { useTranslation } from "react-i18next"; -import Dropdown from "./Dropdown"; -import ThemeDropdown from "./ThemeDropdown"; - -function Customization({ id, active }) { - const bgInput = useRef(null); - const { t } = useTranslation(); - const { background, setBackground } = useTheme(); - const particles = [ - { id: "none", label: t("settings.theme.particlesNone") }, - { id: "/crismas.json", label: t("themes.crismas") } - ]; - - return ( - - -
-
- {t("settings.theme.title")} -
-
- {t("settings.theme.subtitle")} -
- -
-
-
- {t("settings.theme.particles")} -
-
- {t("settings.theme.particlesDesc")} -
- -
-
-
- {t("settings.theme.background")} -
-
- {t("settings.theme.backgroundDesc")} -
- - -
-
-
- ); -} - -export default Customization; diff --git a/src/pages/Settings/Dropdown.tsx b/src/pages/Settings/Dropdown.tsx deleted file mode 100644 index 7330b538..00000000 --- a/src/pages/Settings/Dropdown.tsx +++ /dev/null @@ -1,87 +0,0 @@ -import { useState, useEffect } from "preact/hooks"; -import { FaAngleDown } from "react-icons/fa"; - -interface Option { - id: string; - label: string; // Translations CAN be passed - image?: any; -} - -const Dropdown = ({ - storageKey, - options, - refresh -}: { - storageKey: string; - options: Option[]; - refresh: boolean; -}) => { - const [isOpen, setIsOpen] = useState(false); - - const [choice, setChoice] = useState(() => { - return localStorage.getItem(storageKey) || options[0]?.id || ""; - }); - - // update on localstorage change - useEffect(() => { - setChoice(localStorage.getItem(storageKey) || options[0]?.id || ""); - }, [storageKey, options]); - - return ( -
-
setIsOpen(!isOpen)} - > -
-
-
- {options.find((o) => o.id === choice)?.image && ( - o.id === choice)?.image} - className="mr-2 h-6 w-6" - /> - )} - {options.find((o) => o.id === choice)?.label} -
-
- -
-
- {isOpen && ( -
- {options.map((option, index) => ( -
{ - setIsOpen(false); - setChoice(option.id); - localStorage.setItem(storageKey, option.id); - if (refresh === true) { - window.location.reload(); - } - }} - > - {option.image && ( - Option Image - )} - {option.label} -
- ))} -
- )} -
-
- ); -}; - -export default Dropdown; diff --git a/src/pages/Settings/Misc.tsx b/src/pages/Settings/Misc.tsx deleted file mode 100644 index d6dca0b0..00000000 --- a/src/pages/Settings/Misc.tsx +++ /dev/null @@ -1,48 +0,0 @@ -import { motion } from "framer-motion"; -import { tabContentVariant, settingsPageVariant } from "./Variants"; -import Dropdown from "./Dropdown"; -import { useTranslation } from "react-i18next"; -import EnglishFlag from "../../assets/english.png"; -import SpanishFlag from "../../assets/spanish.png"; -import JapaneseFlag from "../../assets/japanese.png"; - -const Misc = ({ id, active }) => { - const { t } = useTranslation(); - - const languages = [ - { id: "en-US", label: "English", image: EnglishFlag }, - { id: "es", label: "Español", image: SpanishFlag }, - { id: "ja", label: "日本語", image: JapaneseFlag } - ]; - - return ( - - -
-
- {t("settings.languages.title")} -
-
- {t("settings.languages.subtitle")} -
- -
-
-
- ); -}; -export default Misc; diff --git a/src/pages/Settings/PersonCard.tsx b/src/pages/Settings/PersonCard.tsx deleted file mode 100644 index 81c96c61..00000000 --- a/src/pages/Settings/PersonCard.tsx +++ /dev/null @@ -1,18 +0,0 @@ -interface props { - name: string; - url: string; - profile: string; -} - -export const PersonCard = (props) => { - return ( - - ); -}; diff --git a/src/pages/Settings/Proxy.tsx b/src/pages/Settings/Proxy.tsx deleted file mode 100644 index cddd44a8..00000000 --- a/src/pages/Settings/Proxy.tsx +++ /dev/null @@ -1,151 +0,0 @@ -import { motion } from "framer-motion"; -import { tabContentVariant, settingsPageVariant } from "./Variants"; -import Dropdown from "./Dropdown"; -import BareInput from "./BareInput"; -import WispInput from "./WispInput"; -import ProxyInput from "./ProxyInput"; -import { useTranslation } from "react-i18next"; -import TransportDropdown from "./transportDropdown"; - -import RammerheadLogo from "../../assets/rammerhead.png"; -import UltravioletLogo from "../../assets/ultraviolet.png"; -import AutomaticLogo from "../../assets/automatic.png"; -import DynamicLogo from "../../assets/dynamic.png"; -import GoogleLogo from "../../assets/google.png"; -import BingLogo from "../../assets/bing.png"; -import DuckDuckGoLogo from "../../assets/ddg.png"; - -const Proxy = ({ id, active }) => { - const { t } = useTranslation(); - const transport = localStorage.getItem("transport") || "libcurl"; - const proccy = localStorage.getItem("proxy") || "automatic"; - - const engines = [ - { - id: "automatic", - label: t("settings.proxy.automatic"), - image: AutomaticLogo - }, - { id: "ultraviolet", label: "Ultraviolet", image: UltravioletLogo }, - { id: "rammerhead", label: "Rammerhead", image: RammerheadLogo }, - { id: "dynamic", label: "Dynamic", image: DynamicLogo } - ]; - - const proxyModes = [ - { id: "embed", label: t("settings.proxymodes.embed") }, - { id: "direct", label: t("settings.proxymodes.direct") }, - { id: "aboutblank", label: t("settings.proxymodes.aboutblank") } - ]; - - const searchEngines = [ - { - id: "https://duckduckgo.com/?q=%s", - label: "DuckDuckGo", - image: DuckDuckGoLogo - }, - { - id: "https://google.com/search?q=%s", - label: "Google", - image: GoogleLogo - }, - { id: "https://bing.com/search?q=%s", label: "Bing", image: BingLogo } - ]; - - const wispUrl = - (location.protocol === "https:" ? "wss://" : "ws://") + - location.host + - "/wisp/"; - const transports = [ - { id: "libcurl", label: "Libcurl" }, - { id: "bare", label: "Bare Server" }, - { id: "epoxy", label: "Epoxy" } - ]; - - return ( - - -
-
- {t("settings.proxy.title")} -
-
- {t("settings.proxy.subtitle")} -
- -
-
-
- {t("settings.proxymodes.title")} -
-
- {t("settings.proxymodes.subtitle")} -
- -
-
-
- {t("settings.search.title")} -
-
- {t("settings.search.subtitle")} -
- -
- {transport === "bare" && ( -
-
- {t("settings.bare.title")} -
-
- {t("settings.bare.subtitle")} -
- -
- )} - {transport !== "bare" && ( -
-
- {t("settings.wisp.title")} -
-
- {t("settings.wisp.subtitle")} -
- -
- )} -
-
- {t("settings.transport.title")} -
-
- {t("settings.transport.desc")} -
- -
-
-
- ); -}; -export default Proxy; diff --git a/src/pages/Settings/ProxyInput.tsx b/src/pages/Settings/ProxyInput.tsx deleted file mode 100644 index afbbaa5f..00000000 --- a/src/pages/Settings/ProxyInput.tsx +++ /dev/null @@ -1,140 +0,0 @@ -import { useState, useEffect } from "preact/hooks"; -import { set } from "../../util/IDB"; -import { uninstallServiceWorkers } from "../../util/SWHelper"; -import { useTranslation } from "react-i18next"; -import { ToastContainer, toast } from "react-toastify"; - -interface BareInputProps { - placeholder: string; - storageKey: string; -} - -function ProxyInput(props: BareInputProps) { - const { t } = useTranslation(); - const bareServer = localStorage.getItem("bare") || "/bare/"; - const HTTPProxy = localStorage.getItem("HTTPProxy") || ""; - const [inputValue, setInputValue] = useState(HTTPProxy); - - function resetProxy() { - set("HTTPProxy", ""); - localStorage.setItem("HTTPProxy", ""); - uninstallServiceWorkers(); - window.location.reload(); - } - - function validateUrl(url: string) { - let finalUrl = url; - - if (url === null || url === undefined || url === "") { - finalUrl = ""; - return finalUrl; - } - - return finalUrl; - } - function handleChange() { - const proxyUrl = validateUrl( - (document.getElementById("pinput") as HTMLInputElement).value - ); - - if (!(proxyUrl === "")) { - const [proxyIP, proxyPort] = proxyUrl.split(":"); - - fetch(bareServer) - .then((response) => response.json()) - .then((jsonResponse) => { - if (jsonResponse.hasOwnProperty("HTTPProxy")) { - const headers = new Headers({ - "x-bare-url": "https://www.google.com", - "X-Bare-Headers": JSON.stringify({ - Accept: - "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9" - }), - "x-bare-proxy-ip": proxyIP, - "x-bare-proxy-port": proxyPort - }); - - return fetch(bareServer + "v3/", { - method: "GET", - headers: headers - }) - .then((response) => { - if ( - response.headers.get("x-bare-status") === "200" || - response.headers.get("x-bare-status") === "302" - ) { - // Success! - set("HTTPProxy", proxyUrl); - localStorage.setItem("HTTPProxy", proxyUrl); - uninstallServiceWorkers(); - window.location.reload(); - return true; - } else { - ( - document.getElementById("pinput") as HTMLInputElement - ).value = localStorage.getItem("HTTPProxy") || ""; - toast(t("settings.httpProxy.badProxy"), { - type: "error" - }); - } - }) - .catch((error) => { - (document.getElementById("pinput") as HTMLInputElement).value = - localStorage.getItem("HTTPProxy") || ""; - toast(t("settings.httpProxy.badProxy"), { - type: "error" - }); - }); - } else { - (document.getElementById("pinput") as HTMLInputElement).value = - localStorage.getItem("HTTPProxy") || ""; - toast(t("settings.httpProxy.badBare"), { - type: "error" - }); - } - }) - .catch((error) => console.error("Error:", error)); - } else { - // reset UV config to have no proxy - set("HTTPProxy", ""); - localStorage.setItem("HTTPProxy", ""); - uninstallServiceWorkers(); - window.location.reload(); - } - } - return ( -
- -
- { - if (event.key === "Enter") { - handleChange(); - } - }} - id="pinput" - className="font-roboto flex h-14 w-56 flex-row rounded-2xl border border-input-border-color bg-input p-4 text-center text-sm text-input-text" - /> -
-
- {t("settings.bare.select")} -
-
- {t("settings.httpProxy.reset")} -
-
-
-
- ); -} - -export default ProxyInput; diff --git a/src/pages/Settings/TabComponent.tsx b/src/pages/Settings/TabComponent.tsx deleted file mode 100644 index cc862124..00000000 --- a/src/pages/Settings/TabComponent.tsx +++ /dev/null @@ -1,109 +0,0 @@ -import { useState, useEffect } from "preact/hooks"; -import cn from "classnames"; -import { motion } from "framer-motion"; -import "./styles.css"; -import { useTranslation } from "react-i18next"; - -const tabVariant = { - active: { - width: "55%", - transition: { - type: "tween", - duration: 0.4 - } - }, - inactive: { - width: "15%", - transition: { - type: "tween", - duration: 0.4 - } - } -}; - -const tabTextVariant = { - active: { - opacity: 1, - x: 0, - display: "block", - transition: { - type: "tween", - duration: 0.3, - delay: 0.3 - } - }, - inactive: { - opacity: 0, - x: -30, - transition: { - type: "tween", - duration: 0.3, - delay: 0.1 - }, - transitionEnd: { display: "none" } - } -}; - -const TabComponent = ({ tabs, defaultIndex = 0 }) => { - const [activeTabIndex, setActiveTabIndex] = useState(defaultIndex); - - useEffect(() => { - document.documentElement.style.setProperty( - "--active-color", - tabs[activeTabIndex].color - ); - }, [activeTabIndex, tabs]); - - // Default to a tab based on the URL hash value - useEffect(() => { - const tabFromHash = tabs.findIndex( - (tab) => `#${tab.id}` === window.location.hash - ); - setActiveTabIndex(tabFromHash !== -1 ? tabFromHash : defaultIndex); - }, [tabs, defaultIndex]); - - const onTabClick = (index) => { - setActiveTabIndex(index); - }; - - const { t } = useTranslation(); - - return ( -
-
-
- - {tabs.map((tab, index) => ( - - ))} -
-
-
- ); -}; - -export default TabComponent; diff --git a/src/pages/Settings/TabSettings.tsx b/src/pages/Settings/TabSettings.tsx deleted file mode 100644 index 2021ed9c..00000000 --- a/src/pages/Settings/TabSettings.tsx +++ /dev/null @@ -1,86 +0,0 @@ -import { motion } from "framer-motion"; -import { tabContentVariant, settingsPageVariant } from "./Variants"; -import CloakPreset from "./CloakPreset"; -import { useTranslation } from "react-i18next"; -import { LoadSuspense } from "../../LoadSuspense"; - -const TabSettings = ({ id, active }) => { - const { t } = useTranslation(); - - return ( - - -
- {t("settings.cloaking.title")} -
-
- {t("settings.cloaking.subtitle")} -
-
- - - - - - -
-
- -
-
-
- ); -}; -export default TabSettings; diff --git a/src/pages/Settings/ThemeDropdown.tsx b/src/pages/Settings/ThemeDropdown.tsx deleted file mode 100644 index 3244f556..00000000 --- a/src/pages/Settings/ThemeDropdown.tsx +++ /dev/null @@ -1,53 +0,0 @@ -import { useState } from "preact/hooks"; -import { FaAngleDown } from "react-icons/fa"; -import { useTheme } from "../../components/ThemeProvider"; -import { useTranslation } from "react-i18next"; - -const ThemeDropdown = () => { - const [isOpen, setIsOpen] = useState(false); - const { t } = useTranslation(); - const { theme, setTheme, themes } = useTheme(); - const options = themes.map((theme) => { - return { id: theme, label: t(`themes.${theme}`) }; - }); - return ( -
-
setIsOpen(!isOpen)} - > -
-
-
- {options.find((o) => o.id === theme)?.label} -
-
- -
-
- {isOpen && ( -
- {options.map((option, index) => ( -
{ - setIsOpen(false); - setTheme(option.id); - }} - > - {option.label} -
- ))} -
- )} -
-
- ); -}; - -export default ThemeDropdown; diff --git a/src/pages/Settings/Variants.tsx b/src/pages/Settings/Variants.tsx deleted file mode 100644 index 37f0b84f..00000000 --- a/src/pages/Settings/Variants.tsx +++ /dev/null @@ -1,30 +0,0 @@ -const tabContentVariant = { - active: { - display: "block", - transition: { - staggerChildren: 0.2 - } - }, - inactive: { - display: "none" - } -}; - -const settingsPageVariant = { - active: { - opacity: 1, - y: 0, - transition: { - duration: 0.5 - } - }, - inactive: { - opacity: 0, - y: 10, - transition: { - duration: 0.5 - } - } -}; - -export { settingsPageVariant, tabContentVariant }; diff --git a/src/pages/Settings/WispInput.tsx b/src/pages/Settings/WispInput.tsx deleted file mode 100644 index eb6b8d97..00000000 --- a/src/pages/Settings/WispInput.tsx +++ /dev/null @@ -1,66 +0,0 @@ -import { useState, useEffect } from "preact/hooks"; -import { useTranslation } from "react-i18next"; -import { changeTransport } from "../../util/transports"; -import { ToastContainer, toast } from "react-toastify"; - -interface WispInputProps { - placeholder: string; -} - -function WispInput(props: WispInputProps) { - const { t } = useTranslation(); - const value = - localStorage.getItem("wispUrl") || - (location.protocol === "https:" ? "wss://" : "ws://") + - location.host + - "/wisp/"; - const [inputValue, setInputValue] = useState(value); - function validateUrl(url: string) { - let finalUrl = url; - if (finalUrl.startsWith("http://")) { - finalUrl = finalUrl.replace("http://", "ws://"); - } else if (finalUrl.startsWith("https://")) { - finalUrl = finalUrl.replace("https://", "wss://"); - } else if (finalUrl === "" || finalUrl === null || finalUrl === undefined) { - finalUrl = - (location.protocol === "https:" ? "wss://" : "ws://") + - location.host + - "/wisp/"; - } - return finalUrl; - } - function handleChange() { - const url = validateUrl( - (document.getElementById("wispinput") as HTMLInputElement).value - ); - localStorage.setItem("wispUrl", url); - changeTransport(localStorage.getItem("transport") || "epoxy", url); - } - return ( -
- -
- { - if (event.key === "Enter") { - handleChange(); - } - }} - id="wispinput" - className="font-roboto flex h-14 w-56 flex-row rounded-2xl border border-input-border-color bg-input p-4 text-center text-xl text-input-text" - /> -
- {t("settings.wisp.select")} -
-
-
- ); -} - -export default WispInput; diff --git a/src/pages/Settings/index.tsx b/src/pages/Settings/index.tsx deleted file mode 100644 index e22bb3ec..00000000 --- a/src/pages/Settings/index.tsx +++ /dev/null @@ -1,19 +0,0 @@ -import TabComponent from "./TabComponent"; -import { HeaderRoute } from "../../components/HeaderRoute"; -import tabs from "./tabs"; -import { useTranslation } from "react-i18next"; -import CloakedHead from "../../util/CloakedHead"; - -export function Settings() { - const { t } = useTranslation(); - - return ( - - - - - ); -} diff --git a/src/pages/Settings/styles.css b/src/pages/Settings/styles.css deleted file mode 100644 index 793b83fb..00000000 --- a/src/pages/Settings/styles.css +++ /dev/null @@ -1,129 +0,0 @@ -@import url("https://fonts.googleapis.com/css2?family=Roboto:wght@100&display=swap"); -* { - box-sizing: border-box; -} - -:root { - --white: #fff; - --black: #333; - --active-color: #f1f1f1; - --border-radius: 40px; -} - -body { - -webkit-font-smoothing: antialiased; - font-family: Roboto; - background: var(--active-color); - transition: background 1.5s ease; -} - -img { - max-width: 100%; - vertical-align: middle; -} - -.tabs-component { - width: 100%; - height: 100%; - margin: auto; - padding: 40px; - border-radius: var(--border-radius); -} - -.tab-links { - padding: 0; - margin: 0 auto 20px; - list-style: none; - max-width: 400px; - display: flex; - justify-content: space-between; -} - -.tab { - position: relative; -} - -.tab a { - text-decoration: none; - color: var(--black); -} - -.tab::before { - content: ""; - width: 100%; - height: 100%; - opacity: 0.2; - position: absolute; - border-radius: var(--border-radius); - background: none; - transition: background 0.5s ease; -} - -.tab svg { - height: 30px; - width: 30px; - min-width: 30px; - fill: var(--tab-color); - transition: fill 0.5s ease; -} - -.tab.active::before { - background: var(--active-color); -} - -.tab span { - font-weight: 700; - margin-left: 10px; - transition: color 0.5s ease; -} - -.tab.active span { - color: var(--active-color); -} - -.tab.active svg { - fill: var(--active-color); -} - -.tab a { - padding: 16px; - display: flex; - align-items: center; - font-size: 14px; - overflow: hidden; - position: relative; -} - -.cards { - display: flex; - flex-wrap: wrap; - justify-content: space-between; - margin-top: 40px; -} - -.content-card { - width: 48%; - margin-bottom: 26px; -} - -.content-card .info::after { - content: ""; - display: block; - width: 100%; - height: 3px; - bottom: -5px; - background: var(--active-color); - opacity: 0.5; -} - -.content-card img { - border-radius: 6px; -} - -.content-card h3 { - margin: 0 0 5px; -} - -.content-card .info { - padding: 10px 0; -} diff --git a/src/pages/Settings/tabs.tsx b/src/pages/Settings/tabs.tsx deleted file mode 100644 index 57d38286..00000000 --- a/src/pages/Settings/tabs.tsx +++ /dev/null @@ -1,51 +0,0 @@ -import Proxy from "./Proxy"; -import TabSettings from "./TabSettings"; -import Misc from "./Misc"; -import Customization from "./Customization"; - -import { GoBrowser } from "react-icons/go"; -import { AiOutlineLaptop } from "react-icons/ai"; -import { FaPalette } from "react-icons/fa"; -import { FaGear } from "react-icons/fa6"; -import { IoMdPerson } from "react-icons/io"; -import { Credits } from "./Credits"; - -const tabs = [ - { - title: "settings.tabs.proxy", - id: "proxy", - icon: , - color: "#5d5dff", - content: Proxy - }, - { - title: "settings.tabs.tab", - id: "tab", - icon: , - color: "#67bb67", - content: TabSettings - }, - { - title: "settings.tabs.custom", - id: "custom", - icon: , - color: "#63a7c7", - content: Customization - }, - { - title: "settings.tabs.misc", - id: "misc", - icon: , - color: "#f56868", - content: Misc - }, - { - title: "settings.tabs.credits", - id: "credits", - icon: , - color: "#fefefe", - content: Credits - } -]; - -export default tabs; diff --git a/src/pages/Settings/transportDropdown.tsx b/src/pages/Settings/transportDropdown.tsx deleted file mode 100644 index c50173a0..00000000 --- a/src/pages/Settings/transportDropdown.tsx +++ /dev/null @@ -1,80 +0,0 @@ -import { FaAngleDown } from "react-icons/fa"; -import { useState, useEffect } from "preact/hooks"; -import { changeTransport } from "../../util/transports.ts"; -const wispUrl = - localStorage.getItem("wispUrl") || - (location.protocol === "https:" ? "wss://" : "ws://") + - location.host + - "/wisp/"; - -interface Option { - id: string; - label: string; // Translations CAN be passed -} - -const TransportDropdown = ({ - storageKey, - options, - refresh -}: { - storageKey: string; - options: Option[]; - refresh: boolean; -}) => { - const [isOpen, setIsOpen] = useState(false); - - const [choice, setChoice] = useState(() => { - return localStorage.getItem(storageKey) || options[0]?.id || ""; - }); - - // update on localstorage change - useEffect(() => { - setChoice(localStorage.getItem(storageKey) || options[0]?.id || ""); - }, [storageKey, options]); - - return ( -
-
setIsOpen(!isOpen)} - > -
-
-
- {options.find((o) => o.id === choice)?.label} -
-
- -
-
- {isOpen && ( -
- {options.map((option, index) => ( -
{ - setIsOpen(false); - setChoice(option.id); - localStorage.setItem(storageKey, option.id); - changeTransport(option.id, wispUrl); - if (refresh === true) { - window.location.reload(); - } - }} - > - {option.label} -
- ))} -
- )} -
-
- ); -}; - -export default TransportDropdown; diff --git a/src/pages/[lang]/catalog/[...page].astro b/src/pages/[lang]/catalog/[...page].astro new file mode 100644 index 00000000..c3f99bc1 --- /dev/null +++ b/src/pages/[lang]/catalog/[...page].astro @@ -0,0 +1,54 @@ +--- +import CatalogCard from "@components/catalog/CatalogCard.svelte"; +import Layout from "@layouts/Layout.astro"; +import { getLangFromUrl, useTranslations } from "../../../i18n/utils"; +import Pagnation from "./pagnation.astro"; +const lang = getLangFromUrl(Astro.url); +const t = useTranslations(lang); + +const { page } = Astro.params; + +const response = await fetch(new URL("/api/catalog-assets/", Astro.url)); +//console.log(new URL("/api/catalog-assets/", Astro.url)); +const assetsJson = await response.json(); + +const nextPage = parseInt(page!) + 1; +const previousPage = parseInt(page!) - 1; +const lastPage = assetsJson.pages; +--- + + +
+
+

Nebula Catalog

+

The Nebula Catalog is a place for you to find user-created themes and plugins.

+
+ +
+ {/* The first page. If the user is on this page, or the one after it, don't show it. */} + {parseInt(page!) > 2 && ( + 1 + ) + } + {previousPage > 0 && ( + {previousPage} + ) + } + {/* The greyed out page the user is currently on */} + {page} + {nextPage < lastPage && ( + {nextPage} + ) + } + {/* Pagnation input */} + + {/* The last page. If the user is on this page, don't show it. */} + {page != lastPage && ( + + {assetsJson.pages} + + ) + } +
+
+
diff --git a/src/pages/[lang]/catalog/package/[...packageName].astro b/src/pages/[lang]/catalog/package/[...packageName].astro new file mode 100644 index 00000000..8e4f787b --- /dev/null +++ b/src/pages/[lang]/catalog/package/[...packageName].astro @@ -0,0 +1,88 @@ +--- +const { packageName } = Astro.params; +import Layout from "@layouts/Layout.astro"; +const response = await fetch(new URL("/api/packages/" + packageName, Astro.url)); +const assetsJson = await response.json(); +--- + + +
+ {assetsJson.error &&

Unexpected error. Is the name right?

} + {!assetsJson.error && +
+ {assetsJson.background_video && + + } + {assetsJson.backgroundImage && +
+ } + {!assetsJson.background_video && !assetsJson.backgroundImage && {assetsJson.title}} +
+

{assetsJson.type === "plugin-page" || assetsJson.type === "plugin-sw" ? "plugin": assetsJson.type}

+

{assetsJson.title}

+

By: {assetsJson.author}

+

{assetsJson.description}

+ + +
+
+ } +
+ + + diff --git a/src/pages/[lang]/catalog/pagnation.astro b/src/pages/[lang]/catalog/pagnation.astro new file mode 100644 index 00000000..a5ce261f --- /dev/null +++ b/src/pages/[lang]/catalog/pagnation.astro @@ -0,0 +1,15 @@ + + diff --git a/src/pages/[lang]/games.astro b/src/pages/[lang]/games.astro new file mode 100644 index 00000000..1d3d3ec6 --- /dev/null +++ b/src/pages/[lang]/games.astro @@ -0,0 +1,25 @@ +--- +import Layout from "@layouts/Layout.astro"; +export function getStaticPaths() { + const STATIC_PATHS = [{ params: { lang: "en_US" } }, { params: { lang: "jp" } }]; + return STATIC_PATHS; +} +export const prerender = true; +--- + + + + + diff --git a/src/pages/[lang]/index.astro b/src/pages/[lang]/index.astro new file mode 100644 index 00000000..cbbcf1ea --- /dev/null +++ b/src/pages/[lang]/index.astro @@ -0,0 +1,199 @@ +--- +import Logo from "@components/Logo.astro"; +import Layout from "@layouts/Layout.astro"; +import { getLangFromUrl, useTranslations } from "../../i18n/utils"; +export function getStaticPaths() { + const STATIC_PATHS = [{ params: { lang: "en_US" } }, { params: { lang: "jp" } }]; + return STATIC_PATHS; +} +export const prerender = true; +const lang = getLangFromUrl(Astro.url); +const t = useTranslations(lang); +import { VERSION } from "astro:env/client"; +--- + + +
+
+
+
+ +
+

+ nebula. +

+
+ + +
+ +
+

Version: { VERSION }

+

© Nebula Services 2024

+
+
+
+ diff --git a/src/pages/[lang]/settings/appearance.astro b/src/pages/[lang]/settings/appearance.astro new file mode 100644 index 00000000..185fec7d --- /dev/null +++ b/src/pages/[lang]/settings/appearance.astro @@ -0,0 +1,41 @@ +--- +import InstalledThemes from "@components/catalog/InstalledThemes.svelte"; +import Layout from "@layouts/Layout.astro"; +import SettingsLayout from "@layouts/SettingsLayout.astro"; +import SettingsSection from "@layouts/SettingsSection.astro"; +import { Icon } from "astro-icon/components"; +import { getLangFromUrl, useTranslations } from "../../../i18n/utils"; +const lang = getLangFromUrl(Astro.url); +const t = useTranslations(lang); +export function getStaticPaths() { + const STATIC_PATHS = [{ params: { lang: "en_US" } }, { params: { lang: "jp" } }]; + return STATIC_PATHS; +} +export const prerender = true; +import { MARKETPLACE_ENABLED } from "astro:env/client"; +--- + + + + +
+
+ + {MARKETPLACE_ENABLED && + +
+ +
+
+ Get more themes in the Nebula Catalog! +
+
+ } +
+
+
+
+
+
diff --git a/src/pages/[lang]/settings/credits.astro b/src/pages/[lang]/settings/credits.astro new file mode 100644 index 00000000..1b97e0b4 --- /dev/null +++ b/src/pages/[lang]/settings/credits.astro @@ -0,0 +1,39 @@ +--- +import InstalledThemes from "@components/catalog/InstalledThemes.svelte"; +import Layout from "@layouts/Layout.astro"; +import SettingsLayout from "@layouts/SettingsLayout.astro"; +import SettingsSection from "@layouts/SettingsSection.astro"; +import { Icon } from "astro-icon/components"; +import { getLangFromUrl, useTranslations } from "../../../i18n/utils"; +const lang = getLangFromUrl(Astro.url); +const t = useTranslations(lang); +export function getStaticPaths() { + const STATIC_PATHS = [{ params: { lang: "en_US" } }, { params: { lang: "jp" } }]; + return STATIC_PATHS; +} +export const prerender = true; +import CreditsCard from "@components/settings/CreditsCard.astro"; +--- + + + + +
+
+ + +
+
+
+ +
+ + + + +
+
+ + +
+
diff --git a/src/pages/[lang]/settings/misc.astro b/src/pages/[lang]/settings/misc.astro new file mode 100644 index 00000000..531ba95f --- /dev/null +++ b/src/pages/[lang]/settings/misc.astro @@ -0,0 +1,105 @@ +--- +import SettingsCard from "@components/settings/SettingsCard.astro"; +import Toast from "@components/toasts/Toast.svelte"; +import ToastWrapper from "@components/toasts/ToastWrapper.svelte"; +import Layout from "@layouts/Layout.astro"; +import SettingsLayout from "@layouts/SettingsLayout.astro"; +import SettingsSection from "@layouts/SettingsSection.astro"; +import { getLangFromUrl, useTranslations } from "../../../i18n/utils"; + +const origin = Astro.url.origin; +const lang = getLangFromUrl(Astro.url); +const t = useTranslations(lang); +export function getStaticPaths() { + const STATIC_PATHS = [{ params: { lang: "en_US" } }, { params: { lang: "jp" } }]; + return STATIC_PATHS; +} +export const prerender = true; +--- + + + + +
+ + + + + + + + + + + diff --git a/src/pages/[lang]/settings/pr.astro b/src/pages/[lang]/settings/pr.astro new file mode 100644 index 00000000..a669605b --- /dev/null +++ b/src/pages/[lang]/settings/pr.astro @@ -0,0 +1,195 @@ +--- +import InstalledPlugins from "@components/catalog/InstalledPlugins.svelte"; +import SettingsCard from "@components/settings/SettingsCard.astro"; +import Toast from "@components/toasts/Toast.svelte"; +import ToastWrapper from "@components/toasts/ToastWrapper.svelte"; +import Layout from "@layouts/Layout.astro"; +import SettingsLayout from "@layouts/SettingsLayout.astro"; +import SettingsSection from "@layouts/SettingsSection.astro"; +import { Icon } from "astro-icon/components"; +import { getLangFromUrl, useTranslations } from "../../../i18n/utils"; + +const lang = getLangFromUrl(Astro.url); +const t = useTranslations(lang); +export function getStaticPaths() { + const STATIC_PATHS = [{ params: { lang: "en_US" } }, { params: { lang: "jp" } }]; + return STATIC_PATHS; +} +export const prerender = true; +import { MARKETPLACE_ENABLED } from "astro:env/client"; +--- + + + + +
+ + + + + +
+
+ {MARKETPLACE_ENABLED && + + + + } +
+ + + + + + + +
+ diff --git a/src/pages/[lang]/settings/tab.astro b/src/pages/[lang]/settings/tab.astro new file mode 100644 index 00000000..dbf5d1a3 --- /dev/null +++ b/src/pages/[lang]/settings/tab.astro @@ -0,0 +1,81 @@ +--- +import SettingsCard from "@components/settings/SettingsCard.astro"; +import Toast from "@components/toasts/Toast.svelte"; +import ToastWrapper from "@components/toasts/ToastWrapper.svelte"; +import Layout from "@layouts/Layout.astro"; +import SettingsLayout from "@layouts/SettingsLayout.astro"; +import SettingsSection from "@layouts/SettingsSection.astro"; +import { getLangFromUrl, useTranslations } from "../../../i18n/utils"; +const lang = getLangFromUrl(Astro.url); +const t = useTranslations(lang); +export function getStaticPaths() { + const STATIC_PATHS = [{ params: { lang: "en_US" } }, { params: { lang: "jp" } }]; + return STATIC_PATHS; +} +export const prerender = true; +--- + + + + +
+ + +
+
+
+ { /* The toast notifications :D */ } + + + + +
+ + diff --git a/src/pages/_404.tsx b/src/pages/_404.tsx deleted file mode 100644 index 07c036da..00000000 --- a/src/pages/_404.tsx +++ /dev/null @@ -1,33 +0,0 @@ -import { useTranslation } from "react-i18next"; -import { Link } from "preact-router"; -import { HeaderRoute } from "../components/HeaderRoute"; -import CloakedHead from "../util/CloakedHead"; - -export function NotFound() { - const { t } = useTranslation(); - - return ( - - -
-
- -
-

- {t("404.text")} -

- 404 -
- - - -
-
-
- ); -} diff --git a/src/pages/config.json b/src/pages/config.json deleted file mode 100644 index 4d20b553..00000000 --- a/src/pages/config.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "prod": false -} diff --git a/src/pages/discord.tsx b/src/pages/discord.tsx deleted file mode 100644 index 99c356ff..00000000 --- a/src/pages/discord.tsx +++ /dev/null @@ -1,46 +0,0 @@ -import { useTranslation } from "react-i18next"; -import { HeaderRoute } from "../components/HeaderRoute"; -import CloakedHead from "../util/CloakedHead"; - -export function DiscordPage() { - const { t } = useTranslation(); - - return ( - - -
- -
-
- ); -} diff --git a/src/pages/index.astro b/src/pages/index.astro new file mode 100644 index 00000000..24c50b5a --- /dev/null +++ b/src/pages/index.astro @@ -0,0 +1,48 @@ +--- +import Loading from "@components/Loading.astro"; +import Layout from "@layouts/Layout.astro"; +--- + + + + + + diff --git a/src/pages/loading.astro b/src/pages/loading.astro new file mode 100644 index 00000000..042197b6 --- /dev/null +++ b/src/pages/loading.astro @@ -0,0 +1,27 @@ +--- +import LoadingComponent from "@components/Loading.astro"; +import Layout from "@layouts/Layout.astro"; +--- + + + + + diff --git a/src/routes.tsx b/src/routes.tsx deleted file mode 100644 index e0aaf8fa..00000000 --- a/src/routes.tsx +++ /dev/null @@ -1,42 +0,0 @@ -import { LocationProvider, Router, Route } from "preact-iso"; -import { Home } from "./pages/Home"; -import { NotFound } from "./pages/_404"; -import { DiscordPage } from "./pages/discord"; -import { ProxyFrame } from "./pages/ProxyFrame.js"; -import { Radon } from "./pages/Radon"; -import { Settings } from "./pages/Settings/"; -import { AboutBlank } from "./AboutBlank"; -import { Faq } from "./pages/Faq"; -// import { registerRemoteListener } from "@mercuryworkshop/bare-mux"; -import "./style.css"; -import "./i18n"; - -export default function Routes() { - const wispUrl = - (location.protocol === "https:" ? "wss://" : "ws://") + - location.host + - "/wisp/"; // @TODO Japan - US ping - if ("serviceWorker" in navigator) { - navigator.serviceWorker.ready.then(async () => { - //await registerRemoteListener(sw.active!) - console.log("SW ready") - }); - navigator.serviceWorker.register("/sw.js", { - scope: "/" - }); - } - return ( - - - - - - - - - - - - - ); -} diff --git a/src/store.js b/src/store.js new file mode 100644 index 00000000..c704662f --- /dev/null +++ b/src/store.js @@ -0,0 +1,3 @@ +import { atom } from "nanostores"; + +export const isMobileNavOpen = atom(false); diff --git a/src/style.css b/src/style.css deleted file mode 100644 index 71a7c5c1..00000000 --- a/src/style.css +++ /dev/null @@ -1,138 +0,0 @@ -@import url("https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;700;900&display=swap"); -@import url("https://fonts.googleapis.com/css2?family=Dongle&family=Roboto:wght@100&display=swap"); -@tailwind base; -@tailwind components; -@tailwind utilities; -@layer base { - :root, - .main { - --background-primary: #191724; - --background-lighter: #16121f; - --navbar-color: #26233a; - --navbar-height: 60px; - --navbar-text-color: #7967dd; - --navbar-link-color: #e0def4; - --navbar-link-hover-color: gray; - --navbar-font: "Roboto"; - --input-text-color: #e0def4; - --input-placeholder-color: white; - --input-background-color: #1f1d2e; - --input-border-color: #eb6f92; - --input-border-size: 1.3px; - --navbar-logo-filter: none; - --dropdown-option-hover-color: #312a49; - --tab-color: var(--black); - --border-color: #16121f; - } - .hacker { - --background-primary: #000 !important; - --background-lighter: #000 !important; - --navbar-color: #000 !important; - --navbar-height: 60px !important; - --navbar-text-color: greenyellow !important; - --navbar-link-color: greenyellow !important; - --navbar-link-hover-color: green !important; - --navbar-font: "Roboto" !important; - --input-text-color: greenyellow !important; - --input-placeholder-color: white !important; - --input-background-color: #000 !important; - --input-border-color: greenyellow !important; - --input-border-size: 1.3px !important; - --navbar-logo-filter: none !important; - --dropdown-option-hover-color: #312a49 !important; - --tab-color: var(--black) !important; - --border-color: greenyellow !important; - } - .catppuccin-mocha { - --background-primary: #1e1e2e !important; - --background-lighter: #181825 !important; - --navbar-color: #181825 !important; - --navbar-height: 60px !important; - --navbar-text-color: #cdd6f4 !important; - --navbar-link-color: #89b4fa !important; - --navbar-link-hover-color: #cba6f7 !important; - --navbar-font: "Roboto" !important; - --input-text-color: #cdd6f4 !important; - --input-placeholder-color: #a6adc8 !important; - --input-background-color: #11111b !important; - --input-border-color: color-mix(in srgb, #11111b, #cba6f7 50%) !important; - --input-border-size: 1.3px !important; - --navbar-logo-filter: none !important; - --dropdown-option-hover-color: #11111b !important; - --tab-color: #313244 !important; - --active-color: #cba6f7 !important; - } - .catppuccin-macchiato { - --background-primary: #24273a !important; - --background-lighter: #1e2030 !important; - --navbar-color: #1e2030 !important; - --navbar-height: 60px !important; - --navbar-text-color: #cad3f5 !important; - --navbar-link-color: #8aadf4 !important; - --navbar-link-hover-color: #c6a0f6 !important; - --navbar-font: "Roboto" !important; - --input-text-color: #cad3f5 !important; - --input-placeholder-color: #a5adcb !important; - --input-background-color: #181926 !important; - --input-border-color: color-mix(in srgb, #181926, #c6a0f6 50%) !important; - --input-border-size: 1.3px !important; - --navbar-logo-filter: none !important; - --dropdown-option-hover-color: #181926 !important; - --tab-color: #363a4f !important; - --active-color: #c6a0f6 !important; - } - .catppuccin-frappe { - --background-primary: #303446 !important; - --background-lighter: #292c3c !important; - --navbar-color: #292c3c !important; - --navbar-height: 60px !important; - --navbar-text-color: #c6d0f5 !important; - --navbar-link-color: #8caaee !important; - --navbar-link-hover-color: #ca9ee6 !important; - --navbar-font: "Roboto" !important; - --input-text-color: #c6d0f5 !important; - --input-placeholder-color: #a5adce !important; - --input-background-color: #232634 !important; - --input-border-color: color-mix(in srgb, #232634, #ca9ee6 50%) !important; - --input-border-size: 1.3px !important; - --navbar-logo-filter: none !important; - --dropdown-option-hover-color: #232634 !important; - --tab-color: #414559 !important; - --active-color: #ca9ee6 !important; - } - .catppuccin-latte { - --background-primary: #eff1f5 !important; - --background-lighter: #e6e9ef !important; - --navbar-color: #e6e9ef !important; - --navbar-height: 60px !important; - --navbar-text-color: #4c4f69 !important; - --navbar-link-color: #1e66f5 !important; - --navbar-link-hover-color: #8839ef !important; - --navbar-font: "Roboto" !important; - --input-text-color: #4c4f69 !important; - --input-placeholder-color: #6c6f85 !important; - --input-background-color: #dce0e8 !important; - --input-border-color: color-mix(in srgb, #dce0e8, #8839ef 50%) !important; - --input-border-size: 1.3px !important; - --navbar-logo-filter: none !important; - --dropdown-option-hover-color: #dce0e8 !important; - --tab-color: #ccd0da !important; - --active-color: #8839ef !important; - } -} -body { - @apply bg-primary; - background-image: var(--background-image); - background-position: center; - background-size: cover; - background-attachment: fixed; -} - -.font-inter { - font-family: "Inter", sans-serif; - font-weight: 300; -} - -.font-roboto { - font-family: "Roboto"; -} diff --git a/src/util/CloakedHead.tsx b/src/util/CloakedHead.tsx deleted file mode 100644 index 48b460fb..00000000 --- a/src/util/CloakedHead.tsx +++ /dev/null @@ -1,38 +0,0 @@ -import { Helmet } from "react-helmet"; - -interface Props { - originalTitle: string; - originalFavicon: string; -} - -const CloakedHead = (props: Props) => { - var isTitleCloaked = - localStorage.getItem("cloakTitle") !== null - ? localStorage.getItem("cloakTitle") !== "none" - : false; - - var isFaviconCloaked = - localStorage.getItem("cloakFavicon") !== null - ? localStorage.getItem("cloakFavicon") !== "none" - : false; - - return ( - - - {isTitleCloaked - ? localStorage.getItem("cloakTitle") - : props.originalTitle} - - - - ); -}; - -export default CloakedHead; diff --git a/src/util/IDB.js b/src/util/IDB.js deleted file mode 100644 index 8b28921e..00000000 --- a/src/util/IDB.js +++ /dev/null @@ -1,22 +0,0 @@ -function set(key, value) { - localforage.config({ - driver: localforage.INDEXEDDB, - name: "Nebula", - version: 1.0, - storeName: "nebula_config", - description: "Nebula Config for things reliant on IndexedDB" - }); - localforage.setItem(key, value); -} -async function get(key) { - localforage.config({ - driver: localforage.INDEXEDDB, - name: "Nebula", - version: 1.0, - storeName: "nebula_config", - description: "Nebula Config for things reliant on IndexedDB" - }); - return await localforage.getItem(key); -} - -export { set, get }; diff --git a/src/util/IosDetector.tsx b/src/util/IosDetector.tsx deleted file mode 100644 index d2c3a0ce..00000000 --- a/src/util/IosDetector.tsx +++ /dev/null @@ -1,7 +0,0 @@ -export function isIOS() { - if (/iPad|iPhone|iPod/.test(navigator.userAgent)) { - return true; - } else { - return false; - } -} diff --git a/src/util/RammerheadEncode.ts b/src/util/RammerheadEncode.ts deleted file mode 100644 index b3808d34..00000000 --- a/src/util/RammerheadEncode.ts +++ /dev/null @@ -1,177 +0,0 @@ -export function RammerheadEncode(baseUrl) { - // Hellhead - const mod = (n, m) => ((n % m) + m) % m; - const baseDictionary = - "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz~-"; - const shuffledIndicator = "_rhs"; - const generateDictionary = function () { - let str = ""; - const split = baseDictionary.split(""); - while (split.length > 0) { - str += split.splice(Math.floor(Math.random() * split.length), 1)[0]; - } - return str; - }; - interface StrShuffler { - dictionary: any; - } - class StrShuffler { - constructor(dictionary = generateDictionary()) { - this.dictionary = dictionary; - } - shuffle(str) { - if (str.startsWith(shuffledIndicator)) { - return str; - } - let shuffledStr = ""; - for (let i = 0; i < str.length; i++) { - const char = str.charAt(i); - const idx = baseDictionary.indexOf(char); - if (char === "%" && str.length - i >= 3) { - shuffledStr += char; - shuffledStr += str.charAt(++i); - shuffledStr += str.charAt(++i); - } else if (idx === -1) { - shuffledStr += char; - } else { - shuffledStr += this.dictionary.charAt( - mod(idx + i, baseDictionary.length) - ); - } - } - return shuffledIndicator + shuffledStr; - } - unshuffle(str) { - if (!str.startsWith(shuffledIndicator)) { - return str; - } - - str = str.slice(shuffledIndicator.length); - - let unshuffledStr = ""; - for (let i = 0; i < str.length; i++) { - const char = str.charAt(i); - const idx = this.dictionary.indexOf(char); - if (char === "%" && str.length - i >= 3) { - unshuffledStr += char; - unshuffledStr += str.charAt(++i); - unshuffledStr += str.charAt(++i); - } else if (idx === -1) { - unshuffledStr += char; - } else { - unshuffledStr += baseDictionary.charAt( - mod(idx - i, baseDictionary.length) - ); - } - } - return unshuffledStr; - } - } - function get(url, callback, shush = false) { - var request = new XMLHttpRequest(); - request.open("GET", url, true); - request.send(); - - request.onerror = function () { - if (!shush) console.log("Cannot communicate with the server"); - }; - request.onload = function () { - if (request.status === 200) { - callback(request.responseText); - } else { - if (!shush) - console.log( - 'unexpected server response to not match "200". Server says "' + - request.responseText + - '"' - ); - } - }; - } - var api = { - newsession(callback) { - get("/newsession", callback); - }, - sessionexists(id, callback) { - get("/sessionexists?id=" + encodeURIComponent(id), function (res) { - if (res === "exists") return callback(true); - if (res === "not found") return callback(false); - console.log("unexpected response from server. received" + res); - }); - }, - shuffleDict(id, callback) { - console.log("Shuffling", id); - get("/api/shuffleDict?id=" + encodeURIComponent(id), function (res) { - callback(JSON.parse(res)); - }); - } - }; - var localStorageKey = "rammerhead_sessionids"; - var localStorageKeyDefault = "rammerhead_default_sessionid"; - var sessionIdsStore = { - get() { - var rawData = localStorage.getItem(localStorageKey); - if (!rawData) return []; - try { - var data = JSON.parse(rawData); - if (!Array.isArray(data)) throw "getout"; - return data; - } catch (e) { - return []; - } - }, - set(data) { - if (!data || !Array.isArray(data)) throw new TypeError("must be array"); - localStorage.setItem(localStorageKey, JSON.stringify(data)); - }, - getDefault() { - var sessionId = localStorage.getItem(localStorageKeyDefault); - if (sessionId) { - var data = sessionIdsStore.get(); - data.filter(function (e) { - return e.id === sessionId; - }); - if (data.length) return data[0]; - } - return null; - }, - setDefault(id) { - localStorage.setItem(localStorageKeyDefault, id); - } - }; - function addSession(id) { - var data = sessionIdsStore.get(); - data.unshift({ id: id, createdOn: new Date().toLocaleString() }); - sessionIdsStore.set(data); - } - function getSessionId() { - return new Promise((resolve) => { - var id = localStorage.getItem("session-string"); - api.sessionexists(id, function (value) { - if (!value) { - console.log("Session validation failed"); - api.newsession(function (id) { - addSession(id); - localStorage.setItem("session-string", id); - console.log(id); - console.log("^ new id"); - resolve(id); - }); - } else { - resolve(id); - } - }); - }); - } - var ProxyHref; - - return getSessionId().then((id) => { - return new Promise((resolve, reject) => { - api.shuffleDict(id, function (shuffleDict) { - var shuffler = new StrShuffler(shuffleDict); - ProxyHref = "/" + id + "/" + shuffler.shuffle(baseUrl); - resolve(ProxyHref); - }); - }); - }); -} diff --git a/src/util/SWHelper.js b/src/util/SWHelper.js deleted file mode 100644 index 87220088..00000000 --- a/src/util/SWHelper.js +++ /dev/null @@ -1,34 +0,0 @@ -import { setTransport } from "./transports.ts"; - -function updateServiceWorkers() { - navigator.serviceWorker.getRegistrations().then(function (registrations) { - for (let registration of registrations) { - registration.update(); - console.log("Service Worker Updated"); - } - }); -} - -function uninstallServiceWorkers() { - navigator.serviceWorker.getRegistrations().then(function (registrations) { - for (let registration of registrations) { - registration.unregister(); - console.log("Service Worker Unregistered"); - } - }); -} - -function registerServiceWorker() { - if ("serviceWorker" in navigator) { - navigator.serviceWorker - .register("/sw.js", { - scope: "/~/" - }) - .then(() => { - console.log("Service worker registered successfully"); - setTransport(); - }); - } -} - -export { updateServiceWorkers, uninstallServiceWorkers, registerServiceWorker }; diff --git a/src/util/SiteSupport.json b/src/util/SiteSupport.json deleted file mode 100644 index d7814a47..00000000 --- a/src/util/SiteSupport.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "discord.gg": "ultraviolet", - "discord.com": "ultraviolet", - "example.org": "rammerhead", - "example.com": "ultraviolet", - "spotify.com": "dynamic", - "spotify.link": "dynamic", - "youtube.com": "ultraviolet", - "youtu.be": "ultraviolet" -} diff --git a/src/util/searchUtil.ts b/src/util/searchUtil.ts deleted file mode 100644 index 4d56a269..00000000 --- a/src/util/searchUtil.ts +++ /dev/null @@ -1,10 +0,0 @@ -export function searchUtil(input: string, template: string) { - try { - return new URL(input).toString(); - } catch (error) {} - try { - const url = new URL(`http://${input}`); - if (url.hostname.includes(".")) return url.toString(); - } catch (error) {} - return template.replace("%s", encodeURIComponent(input)); -} diff --git a/src/util/transports.ts b/src/util/transports.ts deleted file mode 100644 index 09ec0f86..00000000 --- a/src/util/transports.ts +++ /dev/null @@ -1,81 +0,0 @@ -import { - SetTransport, - registerRemoteListener -} from "@mercuryworkshop/bare-mux"; -//import { isIOS } from "./IosDetector"; - -declare global { - interface Window { - setTransport: () => void; - } -} - -function changeTransport(transport: string, wispUrl: string) { - switch (transport) { - case "epoxy": - localStorage.setItem("transport", "epoxy"); - console.log("Setting transport to Epoxy"); - SetTransport("EpxMod.EpoxyClient", { wisp: wispUrl }); - break; - case "libcurl": - localStorage.setItem("transport", "libcurl"); - console.log("Setting transport to Libcurl"); - SetTransport("CurlMod.LibcurlClient", { - wisp: wispUrl - }); - break; - case "bare": - localStorage.setItem("transport", "bare"); - console.log("Setting transport to Bare"); - const bare = - localStorage.getItem("bare") || window.location.origin + "/bare/"; - console.log("Bare URL: " + bare); - SetTransport("BareMod.BareClient", bare); - break; - default: - SetTransport("CurlMod.LibcurlClient", { - wisp: wispUrl - }); - break; - } -} - -function getTransport() { - return localStorage.getItem("transport") || "epoxy"; -} - -const wispUrl = - (location.protocol === "https:" ? "wss://" : "ws://") + - location.host + - "/wisp/"; -//registerRemoteListener(navigator.serviceWorker.controller!); - -//if (isIOS) { -// console.log("iOS device detected. Bare will be used."); -// changeTransport( -// localStorage.getItem("transport") || "libcurl", -// localStorage.getItem("wispUrl") || wispUrl -// ); -//} else { -// changeTransport( -// localStorage.getItem("transport") || "bare", -// localStorage.getItem("wispUrl") || wispUrl -// ); -//} - -//changeTransport( -// localStorage.getItem("transport") || "libcurl", -// localStorage.getItem("wispUrl") || wispUrl -//); - -// helper function for ../routes.tsx -function setTransport() { - changeTransport( - localStorage.getItem("transport") || "epoxy", - localStorage.getItem("wispUrl") || wispUrl - ); -} - -window.setTransport = setTransport; - -export { changeTransport, getTransport, setTransport }; diff --git a/src/utils/events.ts b/src/utils/events.ts new file mode 100644 index 00000000..16f8a015 --- /dev/null +++ b/src/utils/events.ts @@ -0,0 +1,13 @@ +function pageLoad(fn: () => void, logging?: boolean) { + document.addEventListener("astro:page-load", () => { + try { + fn(); + } catch (err) { + if (logging) { + console.error(err); + } + } + }); +} + +export { pageLoad }; diff --git a/src/utils/libcurl.ts b/src/utils/libcurl.ts new file mode 100644 index 00000000..58c3fe1e --- /dev/null +++ b/src/utils/libcurl.ts @@ -0,0 +1,28 @@ +import { WispServerURLS } from "@utils/settings/index"; +//helper for libcurl as we have to use it in multiple locations and we don't want to re-download the WASM every time +//@ts-expect-error No types, expected. See: https://github.com/ading2210/libcurl.js for docs on how to use. +import { libcurl } from "libcurl.js-new/bundled"; +let clientExists: boolean = false; +async function initLibcurl() { + if (!clientExists) { + await libcurl.load_wasm(); + libcurl.set_websocket(WispServerURLS.default); + console.debug("Libcurl ready?", libcurl.ready); + clientExists = true; + } +} + +type fetchType = "json" | "text"; + +async function fetchFromLibcurl(url: string, type: fetchType): Promise { + const res = await libcurl.fetch(url); + const data = type === "json" ? await res.json() : await res.text(); + return data; +} + +const client = { + initLibcurl, + fetchFromLibcurl +}; + +export { client }; diff --git a/src/utils/registerSW.ts b/src/utils/registerSW.ts new file mode 100644 index 00000000..e09e427b --- /dev/null +++ b/src/utils/registerSW.ts @@ -0,0 +1,60 @@ +import { BareMuxConnection } from "@mercuryworkshop/bare-mux"; +import { Settings, WispServerURLS } from "./settings/index"; +function loadProxyScripts() { + //wrap everything in a promise to avoid race conditions + return new Promise((resolve) => { + const conn = new BareMuxConnection("/baremux/worker.js"); + if (typeof __uv$config !== "undefined") { + return resolve(conn); + } + const uvBundle = document.createElement("script"); + uvBundle.src = "/uv/uv.bundle.js"; + uvBundle.defer = true; + document.body.appendChild(uvBundle); + const uvConfig = document.createElement("script"); + uvConfig.src = "/uv/uv.config.js"; + uvConfig.defer = true; + document.body.appendChild(uvConfig); + const checkScript = setInterval(() => { + if (typeof __uv$config !== "undefined") { + clearInterval(checkScript); + resolve(conn); + } + }, 100); + }); +} + +function setTransport(conn: BareMuxConnection, transport?: string) { + //wrap in a promise so we don't register sw until a transport is set. + const wispServer = localStorage.getItem(Settings.ProxySettings.wispServerURL); + return new Promise((resolve) => { + switch (transport) { + case "epoxy": + conn.setTransport("/epoxy/index.mjs", [ + { wisp: wispServer ? WispServerURLS[wispServer] : WispServerURLS.default } + ]); + break; + case "libcurl": + conn.setTransport("/libcurl/index.mjs", [ + { wisp: wispServer ? WispServerURLS[wispServer] : WispServerURLS.default } + ]); + break; + } + resolve(); + }); +} + +function initSw() { + //this is wrapped in a promise to mostly solve the bare-mux v1 problems + return new Promise((resolve) => { + if ("serviceWorker" in navigator) { + navigator.serviceWorker.ready.then(async (reg) => { + console.debug("Service worker ready!"); + resolve(reg); + }); + navigator.serviceWorker.register("/sw.js", { scope: "/" }); + } + }); +} + +export { initSw, setTransport, loadProxyScripts }; diff --git a/src/utils/search.ts b/src/utils/search.ts new file mode 100644 index 00000000..cb810959 --- /dev/null +++ b/src/utils/search.ts @@ -0,0 +1,27 @@ +function search(input: string, template: string) { + try { + // input is a valid URL: + // eg: https://example.com, https://example.com/test?q=param + return new URL(input).toString(); + } catch (err) { + // input was not a valid URL + } + + try { + // input is a valid URL when http:// is added to the start: + // eg: example.com, https://example.com/test?q=param + const url = new URL(`http://${input}`); + // only if the hostname has a TLD/subdomain + if (url.hostname.includes(".")) return url.toString(); + } catch (err) { + // input was not valid URL + } + + // input may have been a valid URL, however the hostname was invalid + + // Attempts to convert the input to a fully qualified URL have failed + // Treat the input as a search query + return template.replace("%s", encodeURIComponent(input)); +} + +export { search }; diff --git a/src/utils/settings/index.ts b/src/utils/settings/index.ts new file mode 100644 index 00000000..946dfd33 --- /dev/null +++ b/src/utils/settings/index.ts @@ -0,0 +1,54 @@ +//Combine all of the other settings into one object. And export that (along with types and other things) +import { + AppearanceSettings, + MarketPlaceExtras, + PluginSettings, + marketPlaceSettings +} from "./marketplace"; +import { ProxySettings, proxySettings } from "./proxy"; +import { TabSettings, cloak, tabSettings } from "./tab"; +import { + type AbCloaks, + type OpenIn, + type Package, + type PackageType, + type Proxy, + type SearchEngine, + SearchEngines, + type TabCloaks, + type Transport, + WispServerURLS, + wispUrl +} from "./types"; + +const Settings = { + AppearanceSettings, + TabSettings, + ProxySettings, + MarketPlaceExtras, + PluginSettings +}; + +const settings = { + marketPlaceSettings, + tabSettings, + proxySettings +}; + +//export all of the stuffs +export { + Settings, + settings, + SearchEngines, + WispServerURLS, + wispUrl, + cloak, + type TabCloaks, + type AbCloaks, + type OpenIn, + type Proxy, + type Transport, + type PackageType, + type Package, + type SearchEngine +}; diff --git a/src/utils/settings/marketplace.ts b/src/utils/settings/marketplace.ts new file mode 100644 index 00000000..2cd59fe9 --- /dev/null +++ b/src/utils/settings/marketplace.ts @@ -0,0 +1,225 @@ +//marketplace code & handlers +import { Settings } from "."; +import { + type Package, + type PackageType, + type Plugin, + type PluginType, + type SWPagePlugin, + type SWPlugin +} from "./types"; +const AppearanceSettings = { + themes: "nebula||themes", + themeName: "nebula||themeName", + stylePayload: "nebula||stylepayload", + video: "nebula||video", + image: "nebula||image" +}; + +const PluginSettings = { + plugins: "nebula||plugins" +}; + +const MarketPlaceExtras = { + proxy: "nebula||marketplaceProxy", + hostname: "nebula||marketplaceHostname" +}; + +const marketPlaceSettings = { + install: function (p: Package, packageName: string, payload?: any) { + return new Promise((resolve) => { + if (p.theme) { + let themes = localStorage.getItem(AppearanceSettings.themes) as any; + themes ? (themes = JSON.parse(themes)) : (themes = []); + if (!themes.find((theme: any) => theme === packageName)) { + themes.push(packageName); + localStorage.setItem(AppearanceSettings.themes, JSON.stringify(themes)); + this.changeTheme(false, payload, p.theme.video, p.theme.bgImage, packageName); + } + resolve(); + } + if (p.plugin) { + let plugins = localStorage.getItem(PluginSettings.plugins) as any; + plugins ? (plugins = JSON.parse(plugins)) : (plugins = []); + //@ts-ignore + const plugin = plugins.find(({ name }) => name === packageName) as Plugin; + if (!plugin) { + plugins.push({ + name: packageName, + src: p.plugin.src, + type: p.plugin.type + } as unknown as Plugin); + localStorage.setItem(PluginSettings.plugins, JSON.stringify(plugins)); + } else if (plugin && plugin.remove) { + plugin.remove = false; + localStorage.setItem(Settings.PluginSettings.plugins, JSON.stringify(plugins)); + } + resolve(); + } + }); + }, + uninstall: function (p: PackageType, packageName: string) { + console.log(p); + return new Promise((resolve) => { + if (p === "theme") { + let items = localStorage.getItem(AppearanceSettings.themes) as any; + items ? (items = JSON.parse(items)) : (items = []); + if (items.find((theme: any) => theme === packageName.toLowerCase())) { + const idx = items.indexOf(packageName.toLowerCase()); + items.splice(idx, 1); + localStorage.setItem(AppearanceSettings.themes, JSON.stringify(items)); + this.changeTheme(true); + } + resolve(); + } + if (p === "plugin-page" || p === "plugin-sw") { + let plugins = localStorage.getItem(PluginSettings.plugins) as any; + plugins ? (plugins = JSON.parse(plugins)) : (plugins = []); + //@ts-ignore + const plugin = plugins.find(({ name }) => name === packageName.toLowerCase()); + if (plugin) { + plugin.remove = true; + localStorage.setItem(PluginSettings.plugins, JSON.stringify(plugins)); + } + resolve(); + } + }); + }, + handlePlugins: function (worker: never | ServiceWorkerRegistration) { + return new Promise((resolve) => { + let plugins = + JSON.parse(localStorage.getItem(Settings.PluginSettings.plugins) as string) || []; + const swPagePlugins: SWPagePlugin[] = []; + const swPlugins: SWPlugin[] = []; + if (plugins.length === 0) { + console.log("Plugin length is not greater then 0. Resolving."); + return resolve(); + } + plugins.forEach(async (plugin: Plugin) => { + if (plugin.type === "page") { + const pluginScript = await fetch( + `/packages/${plugin.name.toLowerCase()}/${plugin.src}` + ).then((res) => res.text()); + const script = eval(pluginScript); + const inject = (await script()) as unknown as SWPagePlugin; + if (plugin.remove) { + plugins = plugins.filter( + //@ts-ignore freaking types BRO + ({ name }) => name !== plugin.name.toLowerCase() + ); + swPagePlugins.push({ + remove: true, + host: inject.host, + html: inject.html, + injectTo: inject.injectTo, + type: "page" + }); + } else { + swPagePlugins.push({ + host: inject.host, + html: inject.html, + injectTo: inject.injectTo, + type: "page" + }); + } + //only resolve AFTER we have postMessaged to the SW. + worker.active?.postMessage(swPagePlugins); + } else if (plugin.type === "serviceWorker") { + const pluginScript = await fetch( + `/packages/${plugin.name.toLowerCase()}/${plugin.src}` + ).then((res) => res.text()); + const script = eval(pluginScript); + const inject = (await script()) as unknown as SWPlugin; + if (plugin.remove) { + plugins = plugins.filter( + //@ts-ignore + ({ name }) => name !== plugin.name.toLowerCase() + ); + swPlugins.push({ + remove: true, + function: inject.function.toString(), + name: plugin.name, + events: inject.events, + type: "serviceWorker" + }); + } else { + swPlugins.push({ + function: inject.function.toString(), + name: plugin.name, + events: inject.events, + type: "serviceWorker" + }); + } + worker.active?.postMessage(swPlugins); + } + localStorage.setItem(Settings.PluginSettings.plugins, JSON.stringify(plugins)); + resolve(); + }); + }); + }, + changeTheme: async function ( + reset: Boolean, + payload?: any, + videoSource?: string, + bgSource?: string, + name?: string + ) { + async function resetCSS() { + const stylesheet = document.getElementById("stylesheet")! as HTMLLinkElement; + localStorage.removeItem(AppearanceSettings.stylePayload); + localStorage.removeItem(AppearanceSettings.themeName); + stylesheet.href = "/nebula.css"; + } + function resetVideo() { + localStorage.removeItem(AppearanceSettings.video); + const source = document.getElementById("nebulaVideo")! as HTMLVideoElement; + source.src = ""; + } + function resetBGImage() { + localStorage.removeItem(AppearanceSettings.image); + const image = document.getElementById("nebulaImage")! as HTMLImageElement; + image.style.display = "none"; + image.src = ""; + } + if (reset === true) { + await resetCSS(); + await resetCSS(); + resetBGImage(); + resetVideo(); + } + if (videoSource || localStorage.getItem(AppearanceSettings.video)) { + resetBGImage(); + resetVideo(); + const source = document.getElementById("nebulaVideo")! as HTMLVideoElement; + if (!localStorage.getItem(AppearanceSettings.video)) { + localStorage.setItem(AppearanceSettings.video, videoSource as string); + } + source.src = `/packages/${name}/${videoSource ? videoSource : localStorage.getItem(AppearanceSettings.video)}`; + } + if (bgSource || localStorage.getItem(AppearanceSettings.image)) { + resetVideo(); + resetBGImage(); + const image = document.getElementById("nebulaImage")! as HTMLImageElement; + if (!localStorage.getItem(AppearanceSettings.image)) { + localStorage.setItem(AppearanceSettings.image, bgSource as string); + } + image.style.display = "block"; + image.src = `/packages/${name}/${bgSource ? bgSource : localStorage.getItem(AppearanceSettings.image)}`; + } + if (payload) { + const stylesheet = document.getElementById("stylesheet")! as HTMLLinkElement; + if (localStorage.getItem(AppearanceSettings.stylePayload) !== payload) { + localStorage.setItem(AppearanceSettings.stylePayload, payload); + localStorage.setItem(AppearanceSettings.themeName, name as string); + } + stylesheet.href = `/packages/${name}/${localStorage.getItem(AppearanceSettings.stylePayload)}`; + } else { + if (localStorage.getItem(AppearanceSettings.stylePayload)) { + const stylesheet = document.getElementById("stylesheet")! as HTMLLinkElement; + stylesheet.href = `/packages/${localStorage.getItem(AppearanceSettings.themeName)}/${localStorage.getItem(AppearanceSettings.stylePayload)}`; + } + } + } +}; + +export { AppearanceSettings, PluginSettings, MarketPlaceExtras, marketPlaceSettings }; diff --git a/src/utils/settings/proxy.ts b/src/utils/settings/proxy.ts new file mode 100644 index 00000000..d5df9439 --- /dev/null +++ b/src/utils/settings/proxy.ts @@ -0,0 +1,29 @@ +//Proxy specific settings. +import { type OpenIn, type Proxy, type SearchEngine, type Transport } from "./types"; +const ProxySettings = { + proxy: "nebula||proxy", + openIn: "nebula||open", + searchEngine: "nebula||searchEngine", + wispServerURL: "nebula||wisp", + transport: "nebula||transport" +}; + +const proxySettings = { + changeProxy: function (proxy: Proxy | string) { + localStorage.setItem(ProxySettings.proxy, proxy); + }, + openIn: function (type: OpenIn | string) { + localStorage.setItem(ProxySettings.openIn, type); + }, + setSearchEngine: function (searchEngine: SearchEngine | string) { + localStorage.setItem(ProxySettings.searchEngine, searchEngine); + }, + setWispURL: function (server: string) { + localStorage.setItem(ProxySettings.wispServerURL, server); + }, + setTransport: function (transport: Transport | string) { + localStorage.setItem(ProxySettings.transport, transport); + } +}; + +export { ProxySettings, proxySettings }; diff --git a/src/utils/settings/tab.ts b/src/utils/settings/tab.ts new file mode 100644 index 00000000..fd3abcea --- /dev/null +++ b/src/utils/settings/tab.ts @@ -0,0 +1,83 @@ +//Tab specific settings. +import { type AbCloaks, type TabCloaks } from "./types"; +const TabSettings = { + tabCloak: "nebula||tabCloak", + abblob: "nebula||abBlob" +}; + +function cloak(cloak: AbCloaks | string, redirect: string, url: string) { + switch (cloak) { + case "a:b": + window.location.replace(redirect); + const win = window.open(); + win!.document.body.style.margin = "0"; + win!.document.body.style.height = "100vh"; + const iframe = win!.document.createElement("iframe"); + iframe.style.border = "none"; + iframe.style.width = "100%"; + iframe.style.height = "100%"; + iframe.style.margin = "0"; + iframe.src = url; + win!.document.body.appendChild(iframe); + break; + case "blob": + const htmlContent = ` + + + + + + + + + + `; + window.location.replace("https://google.com"); + const blob = new Blob([htmlContent], { type: "text/html" }); + const blobURL = URL.createObjectURL(blob); + window.open(blobURL, "_blank"); + break; + } +} + +const tabSettings = { + cloakTab: function (cloak: TabCloaks | string) { + const faviconElement = document.getElementById("favicon") as HTMLLinkElement; + localStorage.setItem(TabSettings.tabCloak, cloak); + switch (cloak) { + case "google": + document.title = "Google"; + faviconElement.href = "/cloaks/google.png"; + break; + case "wikipedia": + document.title = "Wikipedia"; + faviconElement.href = "/cloaks/wikipedia.ico"; + break; + case "canvas": + document.title = "Dashboard"; + faviconElement.href = "/cloaks/canvas.ico"; + break; + case "classroom": + document.title = "Home"; + faviconElement.href = "/cloaks/classroom.png"; + break; + case "powerschool": + document.title = "PowerSchool"; + faviconElement.href = "/cloaks/ps.ico"; + break; + case "reset": + //force a reset of favicon & title + localStorage.setItem("nebula||tabCloak", "default"); + window.location.reload(); + default: + return; + } + }, + abCloak: function (type: AbCloaks | string) { + localStorage.setItem(TabSettings.abblob, type); + cloak(type as AbCloaks, "https://google.com", window.location.href); + } +}; +export { tabSettings, TabSettings, cloak }; diff --git a/src/utils/settings/types.ts b/src/utils/settings/types.ts new file mode 100644 index 00000000..7c6648a1 --- /dev/null +++ b/src/utils/settings/types.ts @@ -0,0 +1,65 @@ +const wispUrl = (location.protocol === "https:" ? "wss://" : "ws://") + location.host + "/wisp/"; +type TabCloaks = "default" | "google" | "wikipedia" | "canvas" | "classroom" | "powerschool"; +type AbCloaks = "a:b" | "blob"; +type OpenIn = "a:b" | "blob" | "direct" | "embed"; +type Proxy = "automatic" | "uv" | "rh"; +type Transport = "epoxy" | "libcurl"; +const SearchEngines: Record = { + ddg: "https://duckduckgo.com/?q=%s", + google: "https://google.com/search?q=%s", + bing: "https://bing.com/search?q=%s" +}; +type SearchEngine = "ddg" | "google" | "bing"; +const WispServerURLS: Record = { + default: wispUrl, + ruby: "wss://ruby.rubynetwork.co/wisp/" +}; + + +type PluginType = "page" | "serviceWorker"; +type MarketplacePluginType = "plugin-page" | "plugin-sw"; +type PackageType = "theme" | MarketplacePluginType; + +interface Plugin { + name: string; + src: string; + type: PluginType; + remove?: boolean; +} +interface SWPagePlugin extends Omit { + host: string; + html: string; + injectTo: "head" | "body"; +} + +interface SWPlugin extends Omit { + function: any; + events: []; +} + +interface Package { + theme?: { + payload: string; + video?: string; + bgImage?: string; + }; + plugin?: Plugin; +} + +export { + type TabCloaks, + type AbCloaks, + type OpenIn, + type Proxy, + type Transport, + type PackageType, + type Package, + type PluginType, + type Plugin, + type SWPagePlugin, + type SWPlugin, + SearchEngines, + type SearchEngine, + WispServerURLS, + wispUrl +}; diff --git a/src/utils/siteSupport.ts b/src/utils/siteSupport.ts new file mode 100644 index 00000000..dec922df --- /dev/null +++ b/src/utils/siteSupport.ts @@ -0,0 +1,13 @@ +import type { Proxy } from "./settings"; +type ProxyChoices = Exclude; + +const SupportedSites: Record = { + "discord.gg": "uv", + "discord.com": "uv", + "spotify.com": "rh", + "spotify.link": "rh", + "youtube.com": "uv", + "youtu.be": "uv" +}; + +export { SupportedSites }; diff --git a/src/utils/toast.ts b/src/utils/toast.ts new file mode 100644 index 00000000..81933323 --- /dev/null +++ b/src/utils/toast.ts @@ -0,0 +1,28 @@ +type ToastType = "success" | "error" | "multiline"; +type Position = + | "top-left" + | "top-middle" + | "top-right" + | "bottom-left" + | "bottom-right" + | "bottom-center"; +interface Props { + toastType: ToastType; + text: string; + class: string; + id?: string; + duration?: number; + emoji?: any; + position?: Position; +} + +function toast(query: string) { + const wrapper = document.getElementById("toastwrapper") as HTMLDivElement; + wrapper.classList.remove("hidden"); + //this is a really hacky solution for toast notifications LOL + const element = document.querySelector(query) as HTMLElement; + //click the element + element.click(); +} + +export { type ToastType, type Position, type Props, toast }; diff --git a/svelte.config.js b/svelte.config.js new file mode 100644 index 00000000..3b3578e7 --- /dev/null +++ b/svelte.config.js @@ -0,0 +1,5 @@ +import { vitePreprocess } from "@astrojs/svelte"; + +export default { + preprocess: vitePreprocess() +}; diff --git a/tailwind.config.js b/tailwind.config.js deleted file mode 100644 index 3b7e64d3..00000000 --- a/tailwind.config.js +++ /dev/null @@ -1,21 +0,0 @@ -/** @type {import('tailwindcss').Config} */ -export default { - content: ["./index.html", "./src/**/*.{js,ts,jsx,tsx}"], - theme: { - colors: { - primary: "var(--background-primary)", - lighter: "var(--background-lighter)", - "navbar-text-color": "var(--navbar-text-color)", - "navbar-color": "var(--navbar-color)", - "text-color": "var(--navbar-link-color)", - "text-hover-color": "var(--navbar-link-hover-color)", - input: "var(--input-background-color)", - "input-text": "var(--input-text-color)", - "input-border-color": "var(--input-border-color)", - "dropdown-option-hover-color": "var(--dropdown-option-hover-color)", - "border-color": "var(--border-color)" - }, - extend: {} - }, - plugins: [] -}; diff --git a/tailwind.config.mjs b/tailwind.config.mjs new file mode 100644 index 00000000..44fd4b83 --- /dev/null +++ b/tailwind.config.mjs @@ -0,0 +1,24 @@ +/** @type {import('tailwindcss').Config} */ +export default { + content: ["./src/**/*.{astro,html,js,jsx,md,mdx,svelte,ts,tsx,vue}"], + theme: { + colors: { + primary: "var(--background-primary)", + lighter: "var(--background-lighter)", + "navbar-text-color": "var(--navbar-text-color)", + "navbar-color": "var(--navbar-color)", + "text-color": "var(--navbar-link-color)", + "text-hover-color": "var(--navbar-link-hover-color)", + input: "var(--input-background-color)", + "input-text": "var(--input-text-color)", + "input-border-color": "var(--input-border-color)", + "dropdown-option-hover-color": "var(--dropdown-option-hover-color)", + "border-color": "var(--border-color)" + }, + fontFamily: { + roboto: "var(--font-family), Roboto" + }, + extend: {} + }, + plugins: [] +}; diff --git a/tsconfig.json b/tsconfig.json index 30d42cf4..39294d75 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,13 +1,12 @@ -{ - "compilerOptions": { - "target": "ES2020", - "module": "ESNext", - "moduleResolution": "bundler", - "noEmit": true, - "jsx": "react-jsx", - "jsxImportSource": "preact", - "esModuleInterop": true, - "skipLibCheck": true, - "paths": {} - } -} +{ + "extends": "astro/tsconfigs/strict", + "include": ["src"], + "compilerOptions": { + "baseUrl": ".", + "paths": { + "@components/*": ["src/components/*"], + "@layouts/*": ["src/layouts/*"], + "@utils/*": ["src/utils/*"] + } + } +} diff --git a/vite.config.ts b/vite.config.ts deleted file mode 100644 index ad0ae528..00000000 --- a/vite.config.ts +++ /dev/null @@ -1,79 +0,0 @@ -import million from "million/compiler"; -import { defineConfig } from "vite"; -import preact from "@preact/preset-vite"; -import { viteStaticCopy } from "vite-plugin-static-copy"; -import { uvPath } from "@titaniumnetwork-dev/ultraviolet"; -import { dynamicPath } from "@nebula-services/dynamic"; -//@ts-ignore -import { epoxyPath } from "@mercuryworkshop/epoxy-transport"; -//@ts-ignore -import { libcurlPath } from "@mercuryworkshop/libcurl-transport"; -import path from "path"; -import { createBareServer } from "@tomphttp/bare-server-node"; -import wisp from "wisp-server-node"; -import http from "http"; -import vsharp from "vite-plugin-vsharp"; - -const __dirname = path.resolve(); - -export default defineConfig({ - plugins: [ - viteStaticCopy({ - targets: [ - { - src: `${uvPath}/**/*`.replace(/\\/g, "/"), - dest: "uv", - overwrite: false - }, - { - src: `${epoxyPath}/**/*`.replace(/\\/g, "/"), - dest: "epoxy", - overwrite: false - }, - { - src: `${libcurlPath}/**/*`.replace(/\\/g, "/"), - dest: "libcurl", - overwrite: false - }, - { - src: `${dynamicPath}/dynamic.*.js`.replace(/\\/g, "/"), - dest: "dynamic", - overwrite: false - }, - { - src: `${__dirname}/node_modules/localforage/dist/localforage.*.js`.replace( - /\\/g, - "/" - ), - dest: "localforage", - overwrite: false - } - ] - }), - million.vite({ auto: true }), - preact(), - vsharp({ - width: 400 - }) - ], - server: { - proxy: { - "/bare/": { - target: "http://localhost:8080/bare/", - changeOrigin: true, - rewrite: (path) => path.replace(/^\/bare\//, "") - }, - "/wisp/": { - target: "http://localhost:8080/wisp/", - changeOrigin: true, - ws: true, - rewrite: (path) => path.replace(/^\/wisp\//, "") - }, - "/search": { - target: "http://localhost:8080/search", - changeOrigin: true, - rewrite: (path) => path.replace(/^\/search/, "") - } - } - } -}); diff --git a/workerware b/workerware new file mode 160000 index 00000000..c28ebbaa --- /dev/null +++ b/workerware @@ -0,0 +1 @@ +Subproject commit c28ebbaacf659b570145f2ae8e1f6404d2abe8e2