From f5fde81a334286b2f1304a669f039f9497f9231d Mon Sep 17 00:00:00 2001 From: dalthecow Date: Fri, 9 May 2025 11:40:41 -0400 Subject: [PATCH 01/80] set up next.js app and static build --- .gitignore | 1 + ui/.gitignore | 41 + ui/README.md | 36 + ui/eslint.config.mjs | 16 + ui/next.config.ts | 7 + ui/package-lock.json | 5537 ++++++++++++++++++++++++++++++++++++ ui/package.json | 25 + ui/public/file.svg | 1 + ui/public/globe.svg | 1 + ui/public/next.svg | 1 + ui/public/vercel.svg | 1 + ui/public/window.svg | 1 + ui/src/app/favicon.ico | Bin 0 -> 25931 bytes ui/src/app/globals.css | 42 + ui/src/app/layout.tsx | 32 + ui/src/app/page.module.css | 168 ++ ui/src/app/page.tsx | 96 + ui/tsconfig.json | 27 + 18 files changed, 6033 insertions(+) create mode 100644 ui/.gitignore create mode 100644 ui/README.md create mode 100644 ui/eslint.config.mjs create mode 100644 ui/next.config.ts create mode 100644 ui/package-lock.json create mode 100644 ui/package.json create mode 100644 ui/public/file.svg create mode 100644 ui/public/globe.svg create mode 100644 ui/public/next.svg create mode 100644 ui/public/vercel.svg create mode 100644 ui/public/window.svg create mode 100644 ui/src/app/favicon.ico create mode 100644 ui/src/app/globals.css create mode 100644 ui/src/app/layout.tsx create mode 100644 ui/src/app/page.module.css create mode 100644 ui/src/app/page.tsx create mode 100644 ui/tsconfig.json diff --git a/.gitignore b/.gitignore index d4186ed6..f3d7367b 100644 --- a/.gitignore +++ b/.gitignore @@ -178,3 +178,4 @@ cython_debug/ # Project specific files *.json *.yaml +!ui/**/*.json \ No newline at end of file diff --git a/ui/.gitignore b/ui/.gitignore new file mode 100644 index 00000000..5ef6a520 --- /dev/null +++ b/ui/.gitignore @@ -0,0 +1,41 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.* +.yarn/* +!.yarn/patches +!.yarn/plugins +!.yarn/releases +!.yarn/versions + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* +.pnpm-debug.log* + +# env files (can opt-in for committing if needed) +.env* + +# vercel +.vercel + +# typescript +*.tsbuildinfo +next-env.d.ts diff --git a/ui/README.md b/ui/README.md new file mode 100644 index 00000000..e215bc4c --- /dev/null +++ b/ui/README.md @@ -0,0 +1,36 @@ +This is a [Next.js](https://nextjs.org) project bootstrapped with [`create-next-app`](https://nextjs.org/docs/app/api-reference/cli/create-next-app). + +## Getting Started + +First, run the development server: + +```bash +npm run dev +# or +yarn dev +# or +pnpm dev +# or +bun dev +``` + +Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. + +You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file. + +This project uses [`next/font`](https://nextjs.org/docs/app/building-your-application/optimizing/fonts) to automatically optimize and load [Geist](https://vercel.com/font), a new font family for Vercel. + +## Learn More + +To learn more about Next.js, take a look at the following resources: + +- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. +- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. + +You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js) - your feedback and contributions are welcome! + +## Deploy on Vercel + +The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js. + +Check out our [Next.js deployment documentation](https://nextjs.org/docs/app/building-your-application/deploying) for more details. diff --git a/ui/eslint.config.mjs b/ui/eslint.config.mjs new file mode 100644 index 00000000..c85fb67c --- /dev/null +++ b/ui/eslint.config.mjs @@ -0,0 +1,16 @@ +import { dirname } from "path"; +import { fileURLToPath } from "url"; +import { FlatCompat } from "@eslint/eslintrc"; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = dirname(__filename); + +const compat = new FlatCompat({ + baseDirectory: __dirname, +}); + +const eslintConfig = [ + ...compat.extends("next/core-web-vitals", "next/typescript"), +]; + +export default eslintConfig; diff --git a/ui/next.config.ts b/ui/next.config.ts new file mode 100644 index 00000000..65c102b9 --- /dev/null +++ b/ui/next.config.ts @@ -0,0 +1,7 @@ +import type { NextConfig } from "next"; + +const nextConfig: NextConfig = { + output: "export", +}; + +export default nextConfig; diff --git a/ui/package-lock.json b/ui/package-lock.json new file mode 100644 index 00000000..fac3bb16 --- /dev/null +++ b/ui/package-lock.json @@ -0,0 +1,5537 @@ +{ + "name": "ui", + "version": "0.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "ui", + "version": "0.1.0", + "dependencies": { + "next": "15.3.2", + "react": "^19.0.0", + "react-dom": "^19.0.0" + }, + "devDependencies": { + "@eslint/eslintrc": "^3", + "@types/node": "^20", + "@types/react": "^19", + "@types/react-dom": "^19", + "eslint": "^9", + "eslint-config-next": "15.3.2", + "typescript": "^5" + } + }, + "node_modules/@emnapi/core": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.4.3.tgz", + "integrity": "sha512-4m62DuCE07lw01soJwPiBGC0nAww0Q+RY70VZ+n49yDIO13yyinhbWCeNnaob0lakDtWQzSdtNWzJeOJt2ma+g==", + "dev": true, + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "1.0.2", + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.4.3.tgz", + "integrity": "sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/wasi-threads": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.0.2.tgz", + "integrity": "sha512-5n3nTJblwRi8LlXkJ9eBzu+kZR8Yxcc7ubakyQTFzPMtIhFpUBRbsnc2Dv88IZDIbCDlBiWrknhB4Lsz7mg6BA==", + "dev": true, + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz", + "integrity": "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.20.0.tgz", + "integrity": "sha512-fxlS1kkIjx8+vy2SjuCB94q3htSNrufYTXubwiBFeaQHbH6Ipi43gFJq2zCMt6PHhImH3Xmr0NksKDvchWlpQQ==", + "dev": true, + "dependencies": { + "@eslint/object-schema": "^2.1.6", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/config-helpers": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.2.2.tgz", + "integrity": "sha512-+GPzk8PlG0sPpzdU5ZvIRMPidzAnZDl/s9L+y13iodqvb8leL53bTannOrQ/Im7UkpsmFU5Ily5U60LWixnmLg==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.13.0.tgz", + "integrity": "sha512-yfkgDw1KR66rkT5A8ci4irzDysN7FRpq3ttJolR88OqQikAWqwA8j5VZyas+vjyBNFIJ7MfybJ9plMILI2UrCw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz", + "integrity": "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/js": { + "version": "9.26.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.26.0.tgz", + "integrity": "sha512-I9XlJawFdSMvWjDt6wksMCrgns5ggLNfFwFvnShsleWruvXM514Qxk8V246efTw+eo9JABvVz+u3q2RiAowKxQ==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz", + "integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.8.tgz", + "integrity": "sha512-ZAoA40rNMPwSm+AeHpCq8STiNAwzWLJuP8Xv4CHIc9wv/PSuExjMrmjfYNj682vW0OOiZ1HKxzvjQr9XZIisQA==", + "dev": true, + "dependencies": { + "@eslint/core": "^0.13.0", + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "dev": true, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", + "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", + "dev": true, + "dependencies": { + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.3.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", + "dev": true, + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", + "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", + "dev": true, + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@img/sharp-darwin-arm64": { + "version": "0.34.1", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.1.tgz", + "integrity": "sha512-pn44xgBtgpEbZsu+lWf2KNb6OAf70X68k+yk69Ic2Xz11zHR/w24/U49XT7AeRwJ0Px+mhALhU5LPci1Aymk7A==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-arm64": "1.1.0" + } + }, + "node_modules/@img/sharp-darwin-x64": { + "version": "0.34.1", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.1.tgz", + "integrity": "sha512-VfuYgG2r8BpYiOUN+BfYeFo69nP/MIwAtSJ7/Zpxc5QF3KS22z8Pvg3FkrSFJBPNQ7mmcUcYQFBmEQp7eu1F8Q==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-x64": "1.1.0" + } + }, + "node_modules/@img/sharp-libvips-darwin-arm64": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.1.0.tgz", + "integrity": "sha512-HZ/JUmPwrJSoM4DIQPv/BfNh9yrOA8tlBbqbLz4JZ5uew2+o22Ik+tHQJcih7QJuSa0zo5coHTfD5J8inqj9DA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-darwin-x64": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.1.0.tgz", + "integrity": "sha512-Xzc2ToEmHN+hfvsl9wja0RlnXEgpKNmftriQp6XzY/RaSfwD9th+MSh0WQKzUreLKKINb3afirxW7A0fz2YWuQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.1.0.tgz", + "integrity": "sha512-s8BAd0lwUIvYCJyRdFqvsj+BJIpDBSxs6ivrOPm/R7piTs5UIwY5OjXrP2bqXC9/moGsyRa37eYWYCOGVXxVrA==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm64": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.1.0.tgz", + "integrity": "sha512-IVfGJa7gjChDET1dK9SekxFFdflarnUB8PwW8aGwEoF3oAsSDuNUTYS+SKDOyOJxQyDC1aPFMuRYLoDInyV9Ew==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-ppc64": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.1.0.tgz", + "integrity": "sha512-tiXxFZFbhnkWE2LA8oQj7KYR+bWBkiV2nilRldT7bqoEZ4HiDOcePr9wVDAZPi/Id5fT1oY9iGnDq20cwUz8lQ==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-s390x": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.1.0.tgz", + "integrity": "sha512-xukSwvhguw7COyzvmjydRb3x/09+21HykyapcZchiCUkTThEQEOMtBj9UhkaBRLuBrgLFzQ2wbxdeCCJW/jgJA==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-x64": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.1.0.tgz", + "integrity": "sha512-yRj2+reB8iMg9W5sULM3S74jVS7zqSzHG3Ol/twnAAkAhnGQnpjj6e4ayUz7V+FpKypwgs82xbRdYtchTTUB+Q==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-arm64": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.1.0.tgz", + "integrity": "sha512-jYZdG+whg0MDK+q2COKbYidaqW/WTz0cc1E+tMAusiDygrM4ypmSCjOJPmFTvHHJ8j/6cAGyeDWZOsK06tP33w==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-x64": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.1.0.tgz", + "integrity": "sha512-wK7SBdwrAiycjXdkPnGCPLjYb9lD4l6Ze2gSdAGVZrEL05AOUJESWU2lhlC+Ffn5/G+VKuSm6zzbQSzFX/P65A==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-linux-arm": { + "version": "0.34.1", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.1.tgz", + "integrity": "sha512-anKiszvACti2sGy9CirTlNyk7BjjZPiML1jt2ZkTdcvpLU1YH6CXwRAZCA2UmRXnhiIftXQ7+Oh62Ji25W72jA==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm": "1.1.0" + } + }, + "node_modules/@img/sharp-linux-arm64": { + "version": "0.34.1", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.1.tgz", + "integrity": "sha512-kX2c+vbvaXC6vly1RDf/IWNXxrlxLNpBVWkdpRq5Ka7OOKj6nr66etKy2IENf6FtOgklkg9ZdGpEu9kwdlcwOQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm64": "1.1.0" + } + }, + "node_modules/@img/sharp-linux-s390x": { + "version": "0.34.1", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.1.tgz", + "integrity": "sha512-7s0KX2tI9mZI2buRipKIw2X1ufdTeaRgwmRabt5bi9chYfhur+/C1OXg3TKg/eag1W+6CCWLVmSauV1owmRPxA==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-s390x": "1.1.0" + } + }, + "node_modules/@img/sharp-linux-x64": { + "version": "0.34.1", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.1.tgz", + "integrity": "sha512-wExv7SH9nmoBW3Wr2gvQopX1k8q2g5V5Iag8Zk6AVENsjwd+3adjwxtp3Dcu2QhOXr8W9NusBU6XcQUohBZ5MA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-x64": "1.1.0" + } + }, + "node_modules/@img/sharp-linuxmusl-arm64": { + "version": "0.34.1", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.1.tgz", + "integrity": "sha512-DfvyxzHxw4WGdPiTF0SOHnm11Xv4aQexvqhRDAoD00MzHekAj9a/jADXeXYCDFH/DzYruwHbXU7uz+H+nWmSOQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-arm64": "1.1.0" + } + }, + "node_modules/@img/sharp-linuxmusl-x64": { + "version": "0.34.1", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.1.tgz", + "integrity": "sha512-pax/kTR407vNb9qaSIiWVnQplPcGU8LRIJpDT5o8PdAx5aAA7AS3X9PS8Isw1/WfqgQorPotjrZL3Pqh6C5EBg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-x64": "1.1.0" + } + }, + "node_modules/@img/sharp-wasm32": { + "version": "0.34.1", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.1.tgz", + "integrity": "sha512-YDybQnYrLQfEpzGOQe7OKcyLUCML4YOXl428gOOzBgN6Gw0rv8dpsJ7PqTHxBnXnwXr8S1mYFSLSa727tpz0xg==", + "cpu": [ + "wasm32" + ], + "optional": true, + "dependencies": { + "@emnapi/runtime": "^1.4.0" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-ia32": { + "version": "0.34.1", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.1.tgz", + "integrity": "sha512-WKf/NAZITnonBf3U1LfdjoMgNO5JYRSlhovhRhMxXVdvWYveM4kM3L8m35onYIdh75cOMCo1BexgVQcCDzyoWw==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-x64": { + "version": "0.34.1", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.1.tgz", + "integrity": "sha512-hw1iIAHpNE8q3uMIRCgGOeDoz9KtFNarFLQclLxr/LK1VBkj8nby18RjFvr6aP7USRYAjTZW6yisnBWMX571Tw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@modelcontextprotocol/sdk": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.11.1.tgz", + "integrity": "sha512-9LfmxKTb1v+vUS1/emSk1f5ePmTLkb9Le9AxOB5T0XM59EUumwcS45z05h7aiZx3GI0Bl7mjb3FMEglYj+acuQ==", + "dev": true, + "dependencies": { + "content-type": "^1.0.5", + "cors": "^2.8.5", + "cross-spawn": "^7.0.3", + "eventsource": "^3.0.2", + "express": "^5.0.1", + "express-rate-limit": "^7.5.0", + "pkce-challenge": "^5.0.0", + "raw-body": "^3.0.0", + "zod": "^3.23.8", + "zod-to-json-schema": "^3.24.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@napi-rs/wasm-runtime": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.9.tgz", + "integrity": "sha512-OKRBiajrrxB9ATokgEQoG87Z25c67pCpYcCwmXYX8PBftC9pBfN18gnm/fh1wurSLEKIAt+QRFLFCQISrb66Jg==", + "dev": true, + "optional": true, + "dependencies": { + "@emnapi/core": "^1.4.0", + "@emnapi/runtime": "^1.4.0", + "@tybys/wasm-util": "^0.9.0" + } + }, + "node_modules/@next/env": { + "version": "15.3.2", + "resolved": "https://registry.npmjs.org/@next/env/-/env-15.3.2.tgz", + "integrity": "sha512-xURk++7P7qR9JG1jJtLzPzf0qEvqCN0A/T3DXf8IPMKo9/6FfjxtEffRJIIew/bIL4T3C2jLLqBor8B/zVlx6g==" + }, + "node_modules/@next/eslint-plugin-next": { + "version": "15.3.2", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-15.3.2.tgz", + "integrity": "sha512-ijVRTXBgnHT33aWnDtmlG+LJD+5vhc9AKTJPquGG5NKXjpKNjc62woIhFtrAcWdBobt8kqjCoaJ0q6sDQoX7aQ==", + "dev": true, + "dependencies": { + "fast-glob": "3.3.1" + } + }, + "node_modules/@next/swc-darwin-arm64": { + "version": "15.3.2", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.3.2.tgz", + "integrity": "sha512-2DR6kY/OGcokbnCsjHpNeQblqCZ85/1j6njYSkzRdpLn5At7OkSdmk7WyAmB9G0k25+VgqVZ/u356OSoQZ3z0g==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-darwin-x64": { + "version": "15.3.2", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.3.2.tgz", + "integrity": "sha512-ro/fdqaZWL6k1S/5CLv1I0DaZfDVJkWNaUU3un8Lg6m0YENWlDulmIWzV96Iou2wEYyEsZq51mwV8+XQXqMp3w==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-gnu": { + "version": "15.3.2", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.3.2.tgz", + "integrity": "sha512-covwwtZYhlbRWK2HlYX9835qXum4xYZ3E2Mra1mdQ+0ICGoMiw1+nVAn4d9Bo7R3JqSmK1grMq/va+0cdh7bJA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-musl": { + "version": "15.3.2", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.3.2.tgz", + "integrity": "sha512-KQkMEillvlW5Qk5mtGA/3Yz0/tzpNlSw6/3/ttsV1lNtMuOHcGii3zVeXZyi4EJmmLDKYcTcByV2wVsOhDt/zg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-gnu": { + "version": "15.3.2", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.3.2.tgz", + "integrity": "sha512-uRBo6THWei0chz+Y5j37qzx+BtoDRFIkDzZjlpCItBRXyMPIg079eIkOCl3aqr2tkxL4HFyJ4GHDes7W8HuAUg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-musl": { + "version": "15.3.2", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.3.2.tgz", + "integrity": "sha512-+uxFlPuCNx/T9PdMClOqeE8USKzj8tVz37KflT3Kdbx/LOlZBRI2yxuIcmx1mPNK8DwSOMNCr4ureSet7eyC0w==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-arm64-msvc": { + "version": "15.3.2", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.3.2.tgz", + "integrity": "sha512-LLTKmaI5cfD8dVzh5Vt7+OMo+AIOClEdIU/TSKbXXT2iScUTSxOGoBhfuv+FU8R9MLmrkIL1e2fBMkEEjYAtPQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-x64-msvc": { + "version": "15.3.2", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.3.2.tgz", + "integrity": "sha512-aW5B8wOPioJ4mBdMDXkt5f3j8pUr9W8AnlX0Df35uRWNT1Y6RIybxjnSUe+PhM+M1bwgyY8PHLmXZC6zT1o5tA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nolyfill/is-core-module": { + "version": "1.0.39", + "resolved": "https://registry.npmjs.org/@nolyfill/is-core-module/-/is-core-module-1.0.39.tgz", + "integrity": "sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==", + "dev": true, + "engines": { + "node": ">=12.4.0" + } + }, + "node_modules/@rtsao/scc": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", + "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", + "dev": true + }, + "node_modules/@rushstack/eslint-patch": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.11.0.tgz", + "integrity": "sha512-zxnHvoMQVqewTJr/W4pKjF0bMGiKJv1WX7bSrkl46Hg0QjESbzBROWK0Wg4RphzSOS5Jiy7eFimmM3UgMrMZbQ==", + "dev": true + }, + "node_modules/@swc/counter": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", + "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==" + }, + "node_modules/@swc/helpers": { + "version": "0.5.15", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz", + "integrity": "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==", + "dependencies": { + "tslib": "^2.8.0" + } + }, + "node_modules/@tybys/wasm-util": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.9.0.tgz", + "integrity": "sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==", + "dev": true, + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@types/estree": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", + "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", + "dev": true + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, + "node_modules/@types/node": { + "version": "20.17.46", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.46.tgz", + "integrity": "sha512-0PQHLhZPWOxGW4auogW0eOQAuNIlCYvibIpG67ja0TOJ6/sehu+1en7sfceUn+QQtx4Rk3GxbLNwPh0Cav7TWw==", + "dev": true, + "dependencies": { + "undici-types": "~6.19.2" + } + }, + "node_modules/@types/react": { + "version": "19.1.3", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.3.tgz", + "integrity": "sha512-dLWQ+Z0CkIvK1J8+wrDPwGxEYFA4RAyHoZPxHVGspYmFVnwGSNT24cGIhFJrtfRnWVuW8X7NO52gCXmhkVUWGQ==", + "dev": true, + "dependencies": { + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "19.1.3", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.1.3.tgz", + "integrity": "sha512-rJXC08OG0h3W6wDMFxQrZF00Kq6qQvw0djHRdzl3U5DnIERz0MRce3WVc7IS6JYBwtaP/DwYtRRjVlvivNveKg==", + "dev": true, + "peerDependencies": { + "@types/react": "^19.0.0" + } + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.32.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.32.0.tgz", + "integrity": "sha512-/jU9ettcntkBFmWUzzGgsClEi2ZFiikMX5eEQsmxIAWMOn4H3D4rvHssstmAHGVvrYnaMqdWWWg0b5M6IN/MTQ==", + "dev": true, + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.32.0", + "@typescript-eslint/type-utils": "8.32.0", + "@typescript-eslint/utils": "8.32.0", + "@typescript-eslint/visitor-keys": "8.32.0", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^2.1.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "8.32.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.32.0.tgz", + "integrity": "sha512-B2MdzyWxCE2+SqiZHAjPphft+/2x2FlO9YBx7eKE1BCb+rqBlQdhtAEhzIEdozHd55DXPmxBdpMygFJjfjjA9A==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "8.32.0", + "@typescript-eslint/types": "8.32.0", + "@typescript-eslint/typescript-estree": "8.32.0", + "@typescript-eslint/visitor-keys": "8.32.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.32.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.32.0.tgz", + "integrity": "sha512-jc/4IxGNedXkmG4mx4nJTILb6TMjL66D41vyeaPWvDUmeYQzF3lKtN15WsAeTr65ce4mPxwopPSo1yUUAWw0hQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "8.32.0", + "@typescript-eslint/visitor-keys": "8.32.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "8.32.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.32.0.tgz", + "integrity": "sha512-t2vouuYQKEKSLtJaa5bB4jHeha2HJczQ6E5IXPDPgIty9EqcJxpr1QHQ86YyIPwDwxvUmLfP2YADQ5ZY4qddZg==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "8.32.0", + "@typescript-eslint/utils": "8.32.0", + "debug": "^4.3.4", + "ts-api-utils": "^2.1.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "8.32.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.32.0.tgz", + "integrity": "sha512-O5Id6tGadAZEMThM6L9HmVf5hQUXNSxLVKeGJYWNhhVseps/0LddMkp7//VDkzwJ69lPL0UmZdcZwggj9akJaA==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.32.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.32.0.tgz", + "integrity": "sha512-pU9VD7anSCOIoBFnhTGfOzlVFQIA1XXiQpH/CezqOBaDppRwTglJzCC6fUQGpfwey4T183NKhF1/mfatYmjRqQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "8.32.0", + "@typescript-eslint/visitor-keys": "8.32.0", + "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^2.1.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "8.32.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.32.0.tgz", + "integrity": "sha512-8S9hXau6nQ/sYVtC3D6ISIDoJzS1NsCK+gluVhLN2YkBPX+/1wkwyUiDKnxRh15579WoOIyVWnoyIf3yGI9REw==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.7.0", + "@typescript-eslint/scope-manager": "8.32.0", + "@typescript-eslint/types": "8.32.0", + "@typescript-eslint/typescript-estree": "8.32.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.32.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.32.0.tgz", + "integrity": "sha512-1rYQTCLFFzOI5Nl0c8LUpJT8HxpwVRn9E4CkMsYfuN6ctmQqExjSTzzSk0Tz2apmXy7WU6/6fyaZVVA/thPN+w==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "8.32.0", + "eslint-visitor-keys": "^4.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@unrs/resolver-binding-darwin-arm64": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.7.2.tgz", + "integrity": "sha512-vxtBno4xvowwNmO/ASL0Y45TpHqmNkAaDtz4Jqb+clmcVSSl8XCG/PNFFkGsXXXS6AMjP+ja/TtNCFFa1QwLRg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@unrs/resolver-binding-darwin-x64": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.7.2.tgz", + "integrity": "sha512-qhVa8ozu92C23Hsmv0BF4+5Dyyd5STT1FolV4whNgbY6mj3kA0qsrGPe35zNR3wAN7eFict3s4Rc2dDTPBTuFQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@unrs/resolver-binding-freebsd-x64": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.7.2.tgz", + "integrity": "sha512-zKKdm2uMXqLFX6Ac7K5ElnnG5VIXbDlFWzg4WJ8CGUedJryM5A3cTgHuGMw1+P5ziV8CRhnSEgOnurTI4vpHpg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm-gnueabihf": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.7.2.tgz", + "integrity": "sha512-8N1z1TbPnHH+iDS/42GJ0bMPLiGK+cUqOhNbMKtWJ4oFGzqSJk/zoXFzcQkgtI63qMcUI7wW1tq2usZQSb2jxw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm-musleabihf": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.7.2.tgz", + "integrity": "sha512-tjYzI9LcAXR9MYd9rO45m1s0B/6bJNuZ6jeOxo1pq1K6OBuRMMmfyvJYval3s9FPPGmrldYA3mi4gWDlWuTFGA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm64-gnu": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.7.2.tgz", + "integrity": "sha512-jon9M7DKRLGZ9VYSkFMflvNqu9hDtOCEnO2QAryFWgT6o6AXU8du56V7YqnaLKr6rAbZBWYsYpikF226v423QA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm64-musl": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.7.2.tgz", + "integrity": "sha512-c8Cg4/h+kQ63pL43wBNaVMmOjXI/X62wQmru51qjfTvI7kmCy5uHTJvK/9LrF0G8Jdx8r34d019P1DVJmhXQpA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-ppc64-gnu": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.7.2.tgz", + "integrity": "sha512-A+lcwRFyrjeJmv3JJvhz5NbcCkLQL6Mk16kHTNm6/aGNc4FwPHPE4DR9DwuCvCnVHvF5IAd9U4VIs/VvVir5lg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-riscv64-gnu": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.7.2.tgz", + "integrity": "sha512-hQQ4TJQrSQW8JlPm7tRpXN8OCNP9ez7PajJNjRD1ZTHQAy685OYqPrKjfaMw/8LiHCt8AZ74rfUVHP9vn0N69Q==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-riscv64-musl": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.7.2.tgz", + "integrity": "sha512-NoAGbiqrxtY8kVooZ24i70CjLDlUFI7nDj3I9y54U94p+3kPxwd2L692YsdLa+cqQ0VoqMWoehDFp21PKRUoIQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-s390x-gnu": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.7.2.tgz", + "integrity": "sha512-KaZByo8xuQZbUhhreBTW+yUnOIHUsv04P8lKjQ5otiGoSJ17ISGYArc+4vKdLEpGaLbemGzr4ZeUbYQQsLWFjA==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-x64-gnu": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.7.2.tgz", + "integrity": "sha512-dEidzJDubxxhUCBJ/SHSMJD/9q7JkyfBMT77Px1npl4xpg9t0POLvnWywSk66BgZS/b2Hy9Y1yFaoMTFJUe9yg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-x64-musl": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.7.2.tgz", + "integrity": "sha512-RvP+Ux3wDjmnZDT4XWFfNBRVG0fMsc+yVzNFUqOflnDfZ9OYujv6nkh+GOr+watwrW4wdp6ASfG/e7bkDradsw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-wasm32-wasi": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.7.2.tgz", + "integrity": "sha512-y797JBmO9IsvXVRCKDXOxjyAE4+CcZpla2GSoBQ33TVb3ILXuFnMrbR/QQZoauBYeOFuu4w3ifWLw52sdHGz6g==", + "cpu": [ + "wasm32" + ], + "dev": true, + "optional": true, + "dependencies": { + "@napi-rs/wasm-runtime": "^0.2.9" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@unrs/resolver-binding-win32-arm64-msvc": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.7.2.tgz", + "integrity": "sha512-gtYTh4/VREVSLA+gHrfbWxaMO/00y+34htY7XpioBTy56YN2eBjkPrY1ML1Zys89X3RJDKVaogzwxlM1qU7egg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@unrs/resolver-binding-win32-ia32-msvc": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.7.2.tgz", + "integrity": "sha512-Ywv20XHvHTDRQs12jd3MY8X5C8KLjDbg/jyaal/QLKx3fAShhJyD4blEANInsjxW3P7isHx1Blt56iUDDJO3jg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@unrs/resolver-binding-win32-x64-msvc": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.7.2.tgz", + "integrity": "sha512-friS8NEQfHaDbkThxopGk+LuE5v3iY0StruifjQEt7SLbA46OnfgMO15sOTkbpJkol6RB+1l1TYPXh0sCddpvA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/accepts": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz", + "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==", + "dev": true, + "dependencies": { + "mime-types": "^3.0.0", + "negotiator": "^1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.14.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", + "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/aria-query": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", + "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", + "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlast": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", + "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz", + "integrity": "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "es-shim-unscopables": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", + "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", + "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", + "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", + "dev": true, + "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" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", + "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ast-types-flow": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", + "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==", + "dev": true + }, + "node_modules/async-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", + "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axe-core": { + "version": "4.10.3", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.10.3.tgz", + "integrity": "sha512-Xm7bpRXnDSX2YE2YFfBk2FnF0ep6tmG7xPh8iHee8MIcrgq762Nkce856dYtJYLkuIoYZvGfTs/PbZhideTcEg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/axobject-query": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/body-parser": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.2.0.tgz", + "integrity": "sha512-02qvAaxv8tp7fBa/mw1ga98OGm+eCbqzJOKoRt70sLmfEEi+jyBYVTDGfCL/k06/4EMk/z01gCe7HoCH/f2LTg==", + "dev": true, + "dependencies": { + "bytes": "^3.1.2", + "content-type": "^1.0.5", + "debug": "^4.4.0", + "http-errors": "^2.0.0", + "iconv-lite": "^0.6.3", + "on-finished": "^2.4.1", + "qs": "^6.14.0", + "raw-body": "^3.0.0", + "type-is": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dependencies": { + "streamsearch": "^1.1.0" + }, + "engines": { + "node": ">=10.16.0" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "dev": true, + "dependencies": { + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "dev": true, + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001717", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001717.tgz", + "integrity": "sha512-auPpttCq6BDEG8ZAuHJIplGw6GODhjw+/11e7IjpnYCxZcW/ONgPs0KVBJ0d1bY3e2+7PRe5RCLyP+PfwVgkYw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/client-only": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", + "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==" + }, + "node_modules/color": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", + "optional": true, + "dependencies": { + "color-convert": "^2.0.1", + "color-string": "^1.9.0" + }, + "engines": { + "node": ">=12.5.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "devOptional": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "devOptional": true + }, + "node_modules/color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "optional": true, + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/content-disposition": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.0.0.tgz", + "integrity": "sha512-Au9nRL8VNUut/XSzbQA38+M78dzP4D+eqg3gfJHMIHHYa3bg067xj1KxMUWj+VULbiZMowKngFFbKczUrNJ1mg==", + "dev": true, + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz", + "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==", + "dev": true, + "engines": { + "node": ">=6.6.0" + } + }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dev": true, + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "dev": true + }, + "node_modules/damerau-levenshtein": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", + "dev": true + }, + "node_modules/data-view-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/inspect-js" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/detect-libc": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz", + "integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==", + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/es-abstract": { + "version": "1.23.9", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz", + "integrity": "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.2", + "arraybuffer.prototype.slice": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "data-view-buffer": "^1.0.2", + "data-view-byte-length": "^1.0.2", + "data-view-byte-offset": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.1.0", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.0", + "get-symbol-description": "^1.1.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "internal-slot": "^1.1.0", + "is-array-buffer": "^3.0.5", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.2", + "is-regex": "^1.2.1", + "is-shared-array-buffer": "^1.0.4", + "is-string": "^1.1.1", + "is-typed-array": "^1.1.15", + "is-weakref": "^1.1.0", + "math-intrinsics": "^1.1.0", + "object-inspect": "^1.13.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.7", + "own-keys": "^1.0.1", + "regexp.prototype.flags": "^1.5.3", + "safe-array-concat": "^1.1.3", + "safe-push-apply": "^1.0.0", + "safe-regex-test": "^1.1.0", + "set-proto": "^1.0.0", + "string.prototype.trim": "^1.2.10", + "string.prototype.trimend": "^1.0.9", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.3", + "typed-array-byte-length": "^1.0.3", + "typed-array-byte-offset": "^1.0.4", + "typed-array-length": "^1.0.7", + "unbox-primitive": "^1.1.0", + "which-typed-array": "^1.1.18" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-iterator-helpers": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.1.tgz", + "integrity": "sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.6", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.3", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.6", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "iterator.prototype": "^1.1.4", + "safe-array-concat": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", + "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", + "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", + "dev": true, + "dependencies": { + "is-callable": "^1.2.7", + "is-date-object": "^1.0.5", + "is-symbol": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "9.26.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.26.0.tgz", + "integrity": "sha512-Hx0MOjPh6uK9oq9nVsATZKE/Wlbai7KFjfCuw9UHaguDW3x+HF0O5nIi3ud39TWgrTjTO5nHxmL3R1eANinWHQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.20.0", + "@eslint/config-helpers": "^0.2.1", + "@eslint/core": "^0.13.0", + "@eslint/eslintrc": "^3.3.1", + "@eslint/js": "9.26.0", + "@eslint/plugin-kit": "^0.2.8", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.2", + "@modelcontextprotocol/sdk": "^1.8.0", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.3.0", + "eslint-visitor-keys": "^4.2.0", + "espree": "^10.3.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "zod": "^3.24.2" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-config-next": { + "version": "15.3.2", + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-15.3.2.tgz", + "integrity": "sha512-FerU4DYccO4FgeYFFglz0SnaKRe1ejXQrDb8kWUkTAg036YWi+jUsgg4sIGNCDhAsDITsZaL4MzBWKB6f4G1Dg==", + "dev": true, + "dependencies": { + "@next/eslint-plugin-next": "15.3.2", + "@rushstack/eslint-patch": "^1.10.3", + "@typescript-eslint/eslint-plugin": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", + "@typescript-eslint/parser": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-import-resolver-typescript": "^3.5.2", + "eslint-plugin-import": "^2.31.0", + "eslint-plugin-jsx-a11y": "^6.10.0", + "eslint-plugin-react": "^7.37.0", + "eslint-plugin-react-hooks": "^5.0.0" + }, + "peerDependencies": { + "eslint": "^7.23.0 || ^8.0.0 || ^9.0.0", + "typescript": ">=3.3.1" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "dev": true, + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-import-resolver-typescript": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.10.1.tgz", + "integrity": "sha512-A1rHYb06zjMGAxdLSkN2fXPBwuSaQ0iO5M/hdyS0Ajj1VBaRp0sPD3dn1FhME3c/JluGFbwSxyCfqdSbtQLAHQ==", + "dev": true, + "dependencies": { + "@nolyfill/is-core-module": "1.0.39", + "debug": "^4.4.0", + "get-tsconfig": "^4.10.0", + "is-bun-module": "^2.0.0", + "stable-hash": "^0.0.5", + "tinyglobby": "^0.2.13", + "unrs-resolver": "^1.6.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint-import-resolver-typescript" + }, + "peerDependencies": { + "eslint": "*", + "eslint-plugin-import": "*", + "eslint-plugin-import-x": "*" + }, + "peerDependenciesMeta": { + "eslint-plugin-import": { + "optional": true + }, + "eslint-plugin-import-x": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz", + "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==", + "dev": true, + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.31.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz", + "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==", + "dev": true, + "dependencies": { + "@rtsao/scc": "^1.1.0", + "array-includes": "^3.1.8", + "array.prototype.findlastindex": "^1.2.5", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.12.0", + "hasown": "^2.0.2", + "is-core-module": "^2.15.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "object.groupby": "^1.0.3", + "object.values": "^1.2.0", + "semver": "^6.3.1", + "string.prototype.trimend": "^1.0.8", + "tsconfig-paths": "^3.15.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-jsx-a11y": { + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz", + "integrity": "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==", + "dev": true, + "dependencies": { + "aria-query": "^5.3.2", + "array-includes": "^3.1.8", + "array.prototype.flatmap": "^1.3.2", + "ast-types-flow": "^0.0.8", + "axe-core": "^4.10.0", + "axobject-query": "^4.1.0", + "damerau-levenshtein": "^1.0.8", + "emoji-regex": "^9.2.2", + "hasown": "^2.0.2", + "jsx-ast-utils": "^3.3.5", + "language-tags": "^1.0.9", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "safe-regex-test": "^1.0.3", + "string.prototype.includes": "^2.0.1" + }, + "engines": { + "node": ">=4.0" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9" + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.37.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz", + "integrity": "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", + "array.prototype.flatmap": "^1.3.3", + "array.prototype.tosorted": "^1.1.4", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.2.1", + "estraverse": "^5.3.0", + "hasown": "^2.0.2", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.9", + "object.fromentries": "^2.0.8", + "object.values": "^1.2.1", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.5", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.12", + "string.prototype.repeat": "^1.0.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.2.0.tgz", + "integrity": "sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" + } + }, + "node_modules/eslint-plugin-react/node_modules/resolve": { + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/eslint-plugin-react/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-scope": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.3.0.tgz", + "integrity": "sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", + "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", + "dev": true, + "dependencies": { + "acorn": "^8.14.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eventsource": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-3.0.6.tgz", + "integrity": "sha512-l19WpE2m9hSuyP06+FbuUUf1G+R0SFLrtQfbRb9PRr+oimOfxQhgGCbVaXg5IvZyyTThJsxh6L/srkMiCeBPDA==", + "dev": true, + "dependencies": { + "eventsource-parser": "^3.0.1" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/eventsource-parser": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-3.0.1.tgz", + "integrity": "sha512-VARTJ9CYeuQYb0pZEPbzi740OWFgpHe7AYJ2WFZVnUDUQp5Dk2yJUgF36YsZ81cOyxT0QxmXD2EQpapAouzWVA==", + "dev": true, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/express": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/express/-/express-5.1.0.tgz", + "integrity": "sha512-DT9ck5YIRU+8GYzzU5kT3eHGA5iL+1Zd0EutOmTE9Dtk+Tvuzd23VBU+ec7HPNSTxXYO55gPV/hq4pSBJDjFpA==", + "dev": true, + "dependencies": { + "accepts": "^2.0.0", + "body-parser": "^2.2.0", + "content-disposition": "^1.0.0", + "content-type": "^1.0.5", + "cookie": "^0.7.1", + "cookie-signature": "^1.2.1", + "debug": "^4.4.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "finalhandler": "^2.1.0", + "fresh": "^2.0.0", + "http-errors": "^2.0.0", + "merge-descriptors": "^2.0.0", + "mime-types": "^3.0.0", + "on-finished": "^2.4.1", + "once": "^1.4.0", + "parseurl": "^1.3.3", + "proxy-addr": "^2.0.7", + "qs": "^6.14.0", + "range-parser": "^1.2.1", + "router": "^2.2.0", + "send": "^1.1.0", + "serve-static": "^2.2.0", + "statuses": "^2.0.1", + "type-is": "^2.0.1", + "vary": "^1.1.2" + }, + "engines": { + "node": ">= 18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/express-rate-limit": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-7.5.0.tgz", + "integrity": "sha512-eB5zbQh5h+VenMPM3fh+nw1YExi5nMr6HUCR62ELSP11huvxm/Uir1H1QEyTkk5QX6A58pX6NmaTMceKZ0Eodg==", + "dev": true, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/express-rate-limit" + }, + "peerDependencies": { + "express": "^4.11 || 5 || ^5.0.0-beta.1" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", + "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "dev": true, + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.0.tgz", + "integrity": "sha512-/t88Ty3d5JWQbWYgaOGCCYfXRwV1+be02WqYYlL6h0lEiUAMPM8o8qKGO01YIkOHzka2up08wvgYD0mDiI+q3Q==", + "dev": true, + "dependencies": { + "debug": "^4.4.0", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "on-finished": "^2.4.1", + "parseurl": "^1.3.3", + "statuses": "^2.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "dev": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/flatted": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "dev": true + }, + "node_modules/for-each": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "dev": true, + "dependencies": { + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", + "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", + "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "functions-have-names": "^1.2.3", + "hasown": "^2.0.2", + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "dev": true, + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-symbol-description": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-tsconfig": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.0.tgz", + "integrity": "sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==", + "dev": true, + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "node_modules/has-bigints": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", + "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", + "dev": true, + "dependencies": { + "dunder-proto": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/internal-slot": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "optional": true + }, + "node_modules/is-async-function": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", + "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", + "dev": true, + "dependencies": { + "async-function": "^1.0.0", + "call-bound": "^1.0.3", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", + "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bun-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-bun-module/-/is-bun-module-2.0.0.tgz", + "integrity": "sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ==", + "dev": true, + "dependencies": { + "semver": "^7.7.1" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "dev": true, + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", + "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finalizationregistry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", + "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-generator-function": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", + "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.3", + "get-proto": "^1.0.0", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-promise": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", + "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", + "dev": true + }, + "node_modules/is-regex": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "dev": true, + "dependencies": { + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", + "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/iterator.prototype": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz", + "integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.4", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "get-proto": "^1.0.0", + "has-symbols": "^1.1.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/jsx-ast-utils": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/language-subtag-registry": { + "version": "0.3.23", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz", + "integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==", + "dev": true + }, + "node_modules/language-tags": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz", + "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", + "dev": true, + "dependencies": { + "language-subtag-registry": "^0.3.20" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/media-typer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz", + "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/merge-descriptors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz", + "integrity": "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz", + "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==", + "dev": true, + "dependencies": { + "mime-db": "^1.54.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/napi-postinstall": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-0.2.3.tgz", + "integrity": "sha512-Mi7JISo/4Ij2tDZ2xBE2WH+/KvVlkhA6juEjpEeRAVPNCpN3nxJo/5FhDNKgBcdmcmhaH6JjgST4xY/23ZYK0w==", + "dev": true, + "bin": { + "napi-postinstall": "lib/cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/napi-postinstall" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/negotiator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", + "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/next": { + "version": "15.3.2", + "resolved": "https://registry.npmjs.org/next/-/next-15.3.2.tgz", + "integrity": "sha512-CA3BatMyHkxZ48sgOCLdVHjFU36N7TF1HhqAHLFOkV6buwZnvMI84Cug8xD56B9mCuKrqXnLn94417GrZ/jjCQ==", + "dependencies": { + "@next/env": "15.3.2", + "@swc/counter": "0.1.3", + "@swc/helpers": "0.5.15", + "busboy": "1.6.0", + "caniuse-lite": "^1.0.30001579", + "postcss": "8.4.31", + "styled-jsx": "5.1.6" + }, + "bin": { + "next": "dist/bin/next" + }, + "engines": { + "node": "^18.18.0 || ^19.8.0 || >= 20.0.0" + }, + "optionalDependencies": { + "@next/swc-darwin-arm64": "15.3.2", + "@next/swc-darwin-x64": "15.3.2", + "@next/swc-linux-arm64-gnu": "15.3.2", + "@next/swc-linux-arm64-musl": "15.3.2", + "@next/swc-linux-x64-gnu": "15.3.2", + "@next/swc-linux-x64-musl": "15.3.2", + "@next/swc-win32-arm64-msvc": "15.3.2", + "@next/swc-win32-x64-msvc": "15.3.2", + "sharp": "^0.34.1" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.1.0", + "@playwright/test": "^1.41.2", + "babel-plugin-react-compiler": "*", + "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", + "react-dom": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", + "sass": "^1.3.0" + }, + "peerDependenciesMeta": { + "@opentelemetry/api": { + "optional": true + }, + "@playwright/test": { + "optional": true + }, + "babel-plugin-react-compiler": { + "optional": true + }, + "sass": { + "optional": true + } + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.9.tgz", + "integrity": "sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.values": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", + "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/own-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", + "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.6", + "object-keys": "^1.1.1", + "safe-push-apply": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-to-regexp": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.2.0.tgz", + "integrity": "sha512-TdrF7fW9Rphjq4RjrW0Kp2AW0Ahwu9sRGTkS6bvDi0SCwZlEZYmcfDbEsTz8RVk0EHIS/Vd1bv3JhG+1xZuAyQ==", + "dev": true, + "engines": { + "node": ">=16" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pkce-challenge": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pkce-challenge/-/pkce-challenge-5.0.0.tgz", + "integrity": "sha512-ueGLflrrnvwB3xuo/uGob5pd5FN7l0MsLf0Z87o/UQmRtwjvfylfc9MurIxRAWywCYTgrvpXBcqjV4OfCYGCIQ==", + "dev": true, + "engines": { + "node": ">=16.20.0" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postcss": { + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dev": true, + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dev": true, + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz", + "integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==", + "dev": true, + "dependencies": { + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.0.tgz", + "integrity": "sha512-RmkhL8CAyCRPXCE28MMH0z2PNWQBNk2Q09ZdxM9IOOXwxwZbN+qbWaatPkdkWIKL2ZVDImrN/pK5HTRz2PcS4g==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.6.3", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/react": { + "version": "19.1.0", + "resolved": "https://registry.npmjs.org/react/-/react-19.1.0.tgz", + "integrity": "sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "19.1.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.0.tgz", + "integrity": "sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==", + "dependencies": { + "scheduler": "^0.26.0" + }, + "peerDependencies": { + "react": "^19.1.0" + } + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true + }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", + "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.1", + "which-builtin-type": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve": { + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", + "dev": true, + "dependencies": { + "is-core-module": "^2.16.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/router": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/router/-/router-2.2.0.tgz", + "integrity": "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==", + "dev": true, + "dependencies": { + "debug": "^4.4.0", + "depd": "^2.0.0", + "is-promise": "^4.0.0", + "parseurl": "^1.3.3", + "path-to-regexp": "^8.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-array-concat": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", + "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "has-symbols": "^1.1.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safe-push-apply": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", + "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-regex-test": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/scheduler": { + "version": "0.26.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz", + "integrity": "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==" + }, + "node_modules/semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "devOptional": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/send": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/send/-/send-1.2.0.tgz", + "integrity": "sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==", + "dev": true, + "dependencies": { + "debug": "^4.3.5", + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "etag": "^1.8.1", + "fresh": "^2.0.0", + "http-errors": "^2.0.0", + "mime-types": "^3.0.1", + "ms": "^2.1.3", + "on-finished": "^2.4.1", + "range-parser": "^1.2.1", + "statuses": "^2.0.1" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/serve-static": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.0.tgz", + "integrity": "sha512-61g9pCh0Vnh7IutZjtLGGpTA355+OPn2TyDv/6ivP2h/AdAVX9azsoxmg2/M6nZeQZNYBEwIcsne1mJd9oQItQ==", + "dev": true, + "dependencies": { + "encodeurl": "^2.0.0", + "escape-html": "^1.0.3", + "parseurl": "^1.3.3", + "send": "^1.2.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "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" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-proto": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", + "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", + "dev": true, + "dependencies": { + "dunder-proto": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, + "node_modules/sharp": { + "version": "0.34.1", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.1.tgz", + "integrity": "sha512-1j0w61+eVxu7DawFJtnfYcvSv6qPFvfTaqzTQ2BLknVhHTwGS8sc63ZBF4rzkWMBVKybo4S5OBtDdZahh2A1xg==", + "hasInstallScript": true, + "optional": true, + "dependencies": { + "color": "^4.2.3", + "detect-libc": "^2.0.3", + "semver": "^7.7.1" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-darwin-arm64": "0.34.1", + "@img/sharp-darwin-x64": "0.34.1", + "@img/sharp-libvips-darwin-arm64": "1.1.0", + "@img/sharp-libvips-darwin-x64": "1.1.0", + "@img/sharp-libvips-linux-arm": "1.1.0", + "@img/sharp-libvips-linux-arm64": "1.1.0", + "@img/sharp-libvips-linux-ppc64": "1.1.0", + "@img/sharp-libvips-linux-s390x": "1.1.0", + "@img/sharp-libvips-linux-x64": "1.1.0", + "@img/sharp-libvips-linuxmusl-arm64": "1.1.0", + "@img/sharp-libvips-linuxmusl-x64": "1.1.0", + "@img/sharp-linux-arm": "0.34.1", + "@img/sharp-linux-arm64": "0.34.1", + "@img/sharp-linux-s390x": "0.34.1", + "@img/sharp-linux-x64": "0.34.1", + "@img/sharp-linuxmusl-arm64": "0.34.1", + "@img/sharp-linuxmusl-x64": "0.34.1", + "@img/sharp-wasm32": "0.34.1", + "@img/sharp-win32-ia32": "0.34.1", + "@img/sharp-win32-x64": "0.34.1" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "optional": true, + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stable-hash": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/stable-hash/-/stable-hash-0.0.5.tgz", + "integrity": "sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==", + "dev": true + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/string.prototype.includes": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz", + "integrity": "sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz", + "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.6", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "regexp.prototype.flags": "^1.5.3", + "set-function-name": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.repeat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", + "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", + "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-data-property": "^1.1.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-object-atoms": "^1.0.0", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", + "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/styled-jsx": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.6.tgz", + "integrity": "sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==", + "dependencies": { + "client-only": "0.0.1" + }, + "engines": { + "node": ">= 12.0.0" + }, + "peerDependencies": { + "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.13.tgz", + "integrity": "sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==", + "dev": true, + "dependencies": { + "fdir": "^6.4.4", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyglobby/node_modules/fdir": { + "version": "6.4.4", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.4.tgz", + "integrity": "sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==", + "dev": true, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/ts-api-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz", + "integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==", + "dev": true, + "engines": { + "node": ">=18.12" + }, + "peerDependencies": { + "typescript": ">=4.8.4" + } + }, + "node_modules/tsconfig-paths": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "dev": true, + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-is": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.0.1.tgz", + "integrity": "sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==", + "dev": true, + "dependencies": { + "content-type": "^1.0.5", + "media-typer": "^1.1.0", + "mime-types": "^3.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", + "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", + "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.15", + "reflect.getprototypeof": "^1.0.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", + "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0", + "reflect.getprototypeof": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typescript": { + "version": "5.8.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", + "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/unbox-primitive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", + "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.3", + "has-bigints": "^1.0.2", + "has-symbols": "^1.1.0", + "which-boxed-primitive": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "dev": true + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/unrs-resolver": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.7.2.tgz", + "integrity": "sha512-BBKpaylOW8KbHsu378Zky/dGh4ckT/4NW/0SHRABdqRLcQJ2dAOjDo9g97p04sWflm0kqPqpUatxReNV/dqI5A==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "napi-postinstall": "^0.2.2" + }, + "funding": { + "url": "https://github.com/sponsors/JounQin" + }, + "optionalDependencies": { + "@unrs/resolver-binding-darwin-arm64": "1.7.2", + "@unrs/resolver-binding-darwin-x64": "1.7.2", + "@unrs/resolver-binding-freebsd-x64": "1.7.2", + "@unrs/resolver-binding-linux-arm-gnueabihf": "1.7.2", + "@unrs/resolver-binding-linux-arm-musleabihf": "1.7.2", + "@unrs/resolver-binding-linux-arm64-gnu": "1.7.2", + "@unrs/resolver-binding-linux-arm64-musl": "1.7.2", + "@unrs/resolver-binding-linux-ppc64-gnu": "1.7.2", + "@unrs/resolver-binding-linux-riscv64-gnu": "1.7.2", + "@unrs/resolver-binding-linux-riscv64-musl": "1.7.2", + "@unrs/resolver-binding-linux-s390x-gnu": "1.7.2", + "@unrs/resolver-binding-linux-x64-gnu": "1.7.2", + "@unrs/resolver-binding-linux-x64-musl": "1.7.2", + "@unrs/resolver-binding-wasm32-wasi": "1.7.2", + "@unrs/resolver-binding-win32-arm64-msvc": "1.7.2", + "@unrs/resolver-binding-win32-ia32-msvc": "1.7.2", + "@unrs/resolver-binding-win32-x64-msvc": "1.7.2" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", + "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", + "dev": true, + "dependencies": { + "is-bigint": "^1.1.0", + "is-boolean-object": "^1.2.1", + "is-number-object": "^1.1.1", + "is-string": "^1.1.1", + "is-symbol": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", + "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.2", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.1.0", + "is-finalizationregistry": "^1.1.0", + "is-generator-function": "^1.0.10", + "is-regex": "^1.2.1", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.1.0", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "dev": true, + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.19", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz", + "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "for-each": "^0.3.5", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zod": { + "version": "3.24.4", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.4.tgz", + "integrity": "sha512-OdqJE9UDRPwWsrHjLN2F8bPxvwJBK22EHLWtanu0LSYr5YqzsaaW3RMgmjwr8Rypg5k+meEJdSPXJZXE/yqOMg==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, + "node_modules/zod-to-json-schema": { + "version": "3.24.5", + "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.24.5.tgz", + "integrity": "sha512-/AuWwMP+YqiPbsJx5D6TfgRTc4kTLjsh5SOcd4bLsfUg2RcEXrFMJl1DGgdHy2aCfsIA/cr/1JM0xcB2GZji8g==", + "dev": true, + "peerDependencies": { + "zod": "^3.24.1" + } + } + } +} diff --git a/ui/package.json b/ui/package.json new file mode 100644 index 00000000..d41101c3 --- /dev/null +++ b/ui/package.json @@ -0,0 +1,25 @@ +{ + "name": "guidellm", + "version": "0.1.0", + "private": true, + "scripts": { + "dev": "next dev", + "build": "next build", + "start": "next start", + "lint": "next lint" + }, + "dependencies": { + "react": "^19.0.0", + "react-dom": "^19.0.0", + "next": "15.3.2" + }, + "devDependencies": { + "typescript": "^5", + "@types/node": "^20", + "@types/react": "^19", + "@types/react-dom": "^19", + "eslint": "^9", + "eslint-config-next": "15.3.2", + "@eslint/eslintrc": "^3" + } +} diff --git a/ui/public/file.svg b/ui/public/file.svg new file mode 100644 index 00000000..004145cd --- /dev/null +++ b/ui/public/file.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/ui/public/globe.svg b/ui/public/globe.svg new file mode 100644 index 00000000..567f17b0 --- /dev/null +++ b/ui/public/globe.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/ui/public/next.svg b/ui/public/next.svg new file mode 100644 index 00000000..5174b28c --- /dev/null +++ b/ui/public/next.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/ui/public/vercel.svg b/ui/public/vercel.svg new file mode 100644 index 00000000..77053960 --- /dev/null +++ b/ui/public/vercel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/ui/public/window.svg b/ui/public/window.svg new file mode 100644 index 00000000..b2b2a44f --- /dev/null +++ b/ui/public/window.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/ui/src/app/favicon.ico b/ui/src/app/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..718d6fea4835ec2d246af9800eddb7ffb276240c GIT binary patch literal 25931 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 LrJugUA?W`A8`#=m literal 0 HcmV?d00001 diff --git a/ui/src/app/globals.css b/ui/src/app/globals.css new file mode 100644 index 00000000..e3734be1 --- /dev/null +++ b/ui/src/app/globals.css @@ -0,0 +1,42 @@ +:root { + --background: #ffffff; + --foreground: #171717; +} + +@media (prefers-color-scheme: dark) { + :root { + --background: #0a0a0a; + --foreground: #ededed; + } +} + +html, +body { + max-width: 100vw; + overflow-x: hidden; +} + +body { + color: var(--foreground); + background: var(--background); + font-family: Arial, Helvetica, sans-serif; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +* { + box-sizing: border-box; + padding: 0; + margin: 0; +} + +a { + color: inherit; + text-decoration: none; +} + +@media (prefers-color-scheme: dark) { + html { + color-scheme: dark; + } +} diff --git a/ui/src/app/layout.tsx b/ui/src/app/layout.tsx new file mode 100644 index 00000000..42fc323e --- /dev/null +++ b/ui/src/app/layout.tsx @@ -0,0 +1,32 @@ +import type { Metadata } from "next"; +import { Geist, Geist_Mono } from "next/font/google"; +import "./globals.css"; + +const geistSans = Geist({ + variable: "--font-geist-sans", + subsets: ["latin"], +}); + +const geistMono = Geist_Mono({ + variable: "--font-geist-mono", + subsets: ["latin"], +}); + +export const metadata: Metadata = { + title: "Create Next App", + description: "Generated by create next app", +}; + +export default function RootLayout({ + children, +}: Readonly<{ + children: React.ReactNode; +}>) { + return ( + + + {children} + + + ); +} diff --git a/ui/src/app/page.module.css b/ui/src/app/page.module.css new file mode 100644 index 00000000..a11c8f31 --- /dev/null +++ b/ui/src/app/page.module.css @@ -0,0 +1,168 @@ +.page { + --gray-rgb: 0, 0, 0; + --gray-alpha-200: rgba(var(--gray-rgb), 0.08); + --gray-alpha-100: rgba(var(--gray-rgb), 0.05); + + --button-primary-hover: #383838; + --button-secondary-hover: #f2f2f2; + + display: grid; + grid-template-rows: 20px 1fr 20px; + align-items: center; + justify-items: center; + min-height: 100svh; + padding: 80px; + gap: 64px; + font-family: var(--font-geist-sans); +} + +@media (prefers-color-scheme: dark) { + .page { + --gray-rgb: 255, 255, 255; + --gray-alpha-200: rgba(var(--gray-rgb), 0.145); + --gray-alpha-100: rgba(var(--gray-rgb), 0.06); + + --button-primary-hover: #ccc; + --button-secondary-hover: #1a1a1a; + } +} + +.main { + display: flex; + flex-direction: column; + gap: 32px; + grid-row-start: 2; +} + +.main ol { + font-family: var(--font-geist-mono); + padding-left: 0; + margin: 0; + font-size: 14px; + line-height: 24px; + letter-spacing: -0.01em; + list-style-position: inside; +} + +.main li:not(:last-of-type) { + margin-bottom: 8px; +} + +.main code { + font-family: inherit; + background: var(--gray-alpha-100); + padding: 2px 4px; + border-radius: 4px; + font-weight: 600; +} + +.ctas { + display: flex; + gap: 16px; +} + +.ctas a { + appearance: none; + border-radius: 128px; + height: 48px; + padding: 0 20px; + border: none; + border: 1px solid transparent; + transition: + background 0.2s, + color 0.2s, + border-color 0.2s; + cursor: pointer; + display: flex; + align-items: center; + justify-content: center; + font-size: 16px; + line-height: 20px; + font-weight: 500; +} + +a.primary { + background: var(--foreground); + color: var(--background); + gap: 8px; +} + +a.secondary { + border-color: var(--gray-alpha-200); + min-width: 158px; +} + +.footer { + grid-row-start: 3; + display: flex; + gap: 24px; +} + +.footer a { + display: flex; + align-items: center; + gap: 8px; +} + +.footer img { + flex-shrink: 0; +} + +/* Enable hover only on non-touch devices */ +@media (hover: hover) and (pointer: fine) { + a.primary:hover { + background: var(--button-primary-hover); + border-color: transparent; + } + + a.secondary:hover { + background: var(--button-secondary-hover); + border-color: transparent; + } + + .footer a:hover { + text-decoration: underline; + text-underline-offset: 4px; + } +} + +@media (max-width: 600px) { + .page { + padding: 32px; + padding-bottom: 80px; + } + + .main { + align-items: center; + } + + .main ol { + text-align: center; + } + + .ctas { + flex-direction: column; + } + + .ctas a { + font-size: 14px; + height: 40px; + padding: 0 16px; + } + + a.secondary { + min-width: auto; + } + + .footer { + flex-wrap: wrap; + align-items: center; + justify-content: center; + } +} + +@media (prefers-color-scheme: dark) { + .logo { + filter: invert(); + } +} diff --git a/ui/src/app/page.tsx b/ui/src/app/page.tsx new file mode 100644 index 00000000..497c6759 --- /dev/null +++ b/ui/src/app/page.tsx @@ -0,0 +1,96 @@ +"use client"; +import Image from "next/image"; +import styles from "./page.module.css"; + +export default function Home() { + return ( +
+
+ Next.js logo +
    +
  1. + Get started by editing src/app/page.tsx. +
  2. +
  3. Save and see your changes instantly.
  4. +
+ + +
+ +
+ ); +} diff --git a/ui/tsconfig.json b/ui/tsconfig.json new file mode 100644 index 00000000..8697a333 --- /dev/null +++ b/ui/tsconfig.json @@ -0,0 +1,27 @@ +{ + "compilerOptions": { + "allowJs": true, + "esModuleInterop": true, + "incremental": true, + "isolatedModules": true, + "jsx": "preserve", + "lib": ["dom", "dom.iterable", "esnext"], + "module": "esnext", + "moduleResolution": "bundler", + "noEmit": true, + "plugins": [ + { + "name": "next" + } + ], + "paths": { + "@/*": ["./src/*"] + }, + "resolveJsonModule": true, + "skipLibCheck": true, + "strict": true, + "target": "ES2017" + }, + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], + "exclude": ["node_modules"] +} From fa5db74277c69def3569d72dc06db945b1cff794 Mon Sep 17 00:00:00 2001 From: dalthecow Date: Fri, 9 May 2025 16:29:09 -0400 Subject: [PATCH 02/80] convert to .eslintrc to match current state of project --- ui/.eslintrc | 21 +++++++++++++++++++++ ui/eslint.config.mjs | 16 ---------------- 2 files changed, 21 insertions(+), 16 deletions(-) create mode 100644 ui/.eslintrc delete mode 100644 ui/eslint.config.mjs diff --git a/ui/.eslintrc b/ui/.eslintrc new file mode 100644 index 00000000..1a99351e --- /dev/null +++ b/ui/.eslintrc @@ -0,0 +1,21 @@ +{ + "root": true, + "env": { + "browser": true, + "es2021": true, + "node": true + }, + "extends": [ + "next/core-web-vitals", + "next", + "plugin:@typescript-eslint/recommended", + "eslint:recommended" + ], + "parser": "@typescript-eslint/parser", + "parserOptions": { + "ecmaVersion": 2021, + "sourceType": "module" + }, + "plugins": ["@typescript-eslint"], + "rules": {} +} diff --git a/ui/eslint.config.mjs b/ui/eslint.config.mjs deleted file mode 100644 index c85fb67c..00000000 --- a/ui/eslint.config.mjs +++ /dev/null @@ -1,16 +0,0 @@ -import { dirname } from "path"; -import { fileURLToPath } from "url"; -import { FlatCompat } from "@eslint/eslintrc"; - -const __filename = fileURLToPath(import.meta.url); -const __dirname = dirname(__filename); - -const compat = new FlatCompat({ - baseDirectory: __dirname, -}); - -const eslintConfig = [ - ...compat.extends("next/core-web-vitals", "next/typescript"), -]; - -export default eslintConfig; From 8b16db5fac32bb9c0a7e746788a8e1e952a2ab91 Mon Sep 17 00:00:00 2001 From: dalthecow Date: Fri, 9 May 2025 16:32:50 -0400 Subject: [PATCH 03/80] update .eslintrc, tsconfig.json --- ui/.eslintrc | 67 ++++++++++++++++++++++++++++++++++++++++-------- ui/tsconfig.json | 24 +++++++++++++---- 2 files changed, 76 insertions(+), 15 deletions(-) diff --git a/ui/.eslintrc b/ui/.eslintrc index 1a99351e..35ffd037 100644 --- a/ui/.eslintrc +++ b/ui/.eslintrc @@ -1,21 +1,68 @@ { - "root": true, "env": { "browser": true, - "es2021": true, - "node": true + "es6": true, + "jest": true }, "extends": [ - "next/core-web-vitals", - "next", + "airbnb-typescript", + "airbnb/hooks", + "eslint:recommended", + "plugin:@typescript-eslint/eslint-recommended", "plugin:@typescript-eslint/recommended", - "eslint:recommended" + "plugin:prettier/recommended", + "next/core-web-vitals" + ], + "ignorePatterns": [".vscode", "jest.config.js", "__mocks__"], + "overrides": [ + { + "files": ["*.mjs"], + "parser": "espree", // Use the default JavaScript parser for `.mjs` files + "parserOptions": { + "sourceType": "module" + } + } ], "parser": "@typescript-eslint/parser", "parserOptions": { - "ecmaVersion": 2021, - "sourceType": "module" + "ecmaFeatures": { + "jsx": true + }, + "ecmaVersion": 2018, + "sourceType": "module", + "project": "./tsconfig.json" }, - "plugins": ["@typescript-eslint"], - "rules": {} + "plugins": ["@typescript-eslint", "jest", "react", "import", "no-secrets"], + "root": true, + "rules": { + "curly": ["error", "all"], + "complexity": ["warn", { "max": 8 }], + "import/order": [ + "error", + { + "groups": [["builtin", "external", "internal"]], + "newlines-between": "always" + } + ], + "import/no-extraneous-dependencies": [ + "error", + { + "devDependencies": [ + "**/*.test.ts", + "**/*.test.tsx", + "**/*.d.ts", + "**/*.interfaces.ts", + "**/*.setup.ts", + "**/*.config.js", + "**/*.config.mjs" + ], + "optionalDependencies": false, + "peerDependencies": false + } + ], + "no-secrets/no-secrets": [ + "error", + { "additionalRegexes": {}, "ignoreContent": [] } + ] + } } diff --git a/ui/tsconfig.json b/ui/tsconfig.json index 8697a333..2c784730 100644 --- a/ui/tsconfig.json +++ b/ui/tsconfig.json @@ -1,27 +1,41 @@ { "compilerOptions": { "allowJs": true, + "allowSyntheticDefaultImports": true, + "baseUrl": "src/", "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, "incremental": true, "isolatedModules": true, "jsx": "preserve", "lib": ["dom", "dom.iterable", "esnext"], "module": "esnext", - "moduleResolution": "bundler", + "moduleResolution": "node", "noEmit": true, + "noFallthroughCasesInSwitch": true, "plugins": [ { "name": "next" } ], "paths": { - "@/*": ["./src/*"] + "@assets/*": ["app/assets/*"] }, "resolveJsonModule": true, "skipLibCheck": true, "strict": true, - "target": "ES2017" + "target": "es5", + "types": ["jest", "@testing-library/jest-dom"] }, - "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], - "exclude": ["node_modules"] + "include": [ + "jest.setup.ts", + "src", + "next-env.d.ts", + "**/*.ts", + "**/*.tsx", + ".next/types/**/*.ts", + "cypress.config.ts", + "declaration.d.ts" + ], + "exclude": ["node_modules", ".vscode", ".meta/**/*", ".next/**/*"] } From 15e867d326f72c0ea0b381e6d671034f5c8f8a44 Mon Sep 17 00:00:00 2001 From: dalthecow Date: Mon, 12 May 2025 18:46:16 -0400 Subject: [PATCH 04/80] update eslint, tsconfig, husky, and dependencies --- ui/.eslintignore | 3 + ui/{.eslintrc => .eslintrc.json} | 28 +- ui/.prettierignore | 7 + ui/.prettierrc | 13 + ui/package-lock.json | 2039 ++++++++++++++++-------------- ui/package.json | 34 +- ui/src/app/layout.tsx | 24 +- ui/tsconfig.json | 14 +- 8 files changed, 1166 insertions(+), 996 deletions(-) create mode 100644 ui/.eslintignore rename ui/{.eslintrc => .eslintrc.json} (58%) create mode 100644 ui/.prettierignore create mode 100644 ui/.prettierrc diff --git a/ui/.eslintignore b/ui/.eslintignore new file mode 100644 index 00000000..01582c9e --- /dev/null +++ b/ui/.eslintignore @@ -0,0 +1,3 @@ +node_modules +.vscode +cypress.config.ts \ No newline at end of file diff --git a/ui/.eslintrc b/ui/.eslintrc.json similarity index 58% rename from ui/.eslintrc rename to ui/.eslintrc.json index 35ffd037..5f3a28d4 100644 --- a/ui/.eslintrc +++ b/ui/.eslintrc.json @@ -5,15 +5,13 @@ "jest": true }, "extends": [ - "airbnb-typescript", - "airbnb/hooks", "eslint:recommended", "plugin:@typescript-eslint/eslint-recommended", "plugin:@typescript-eslint/recommended", "plugin:prettier/recommended", "next/core-web-vitals" ], - "ignorePatterns": [".vscode", "jest.config.js", "__mocks__"], + "ignorePatterns": [".vscode"], "overrides": [ { "files": ["*.mjs"], @@ -32,7 +30,7 @@ "sourceType": "module", "project": "./tsconfig.json" }, - "plugins": ["@typescript-eslint", "jest", "react", "import", "no-secrets"], + "plugins": ["@typescript-eslint", "react", "import", "no-secrets"], "root": true, "rules": { "curly": ["error", "all"], @@ -44,25 +42,7 @@ "newlines-between": "always" } ], - "import/no-extraneous-dependencies": [ - "error", - { - "devDependencies": [ - "**/*.test.ts", - "**/*.test.tsx", - "**/*.d.ts", - "**/*.interfaces.ts", - "**/*.setup.ts", - "**/*.config.js", - "**/*.config.mjs" - ], - "optionalDependencies": false, - "peerDependencies": false - } - ], - "no-secrets/no-secrets": [ - "error", - { "additionalRegexes": {}, "ignoreContent": [] } - ] + "import/no-extraneous-dependencies": ["error"], + "no-secrets/no-secrets": ["error", { "additionalRegexes": {}, "ignoreContent": [] }] } } diff --git a/ui/.prettierignore b/ui/.prettierignore new file mode 100644 index 00000000..de8fefb8 --- /dev/null +++ b/ui/.prettierignore @@ -0,0 +1,7 @@ +/node_modules +.vscode +/bin +/build +/public +/.meta +.eslintrc \ No newline at end of file diff --git a/ui/.prettierrc b/ui/.prettierrc new file mode 100644 index 00000000..6e39e2b4 --- /dev/null +++ b/ui/.prettierrc @@ -0,0 +1,13 @@ +{ + "arrowParens": "always", + "bracketSameLine": false, + "bracketSpacing": true, + "jsxBracketSameLine": false, + "jsxSingleQuote": false, + "printWidth": 100, + "semi": true, + "singleQuote": true, + "tabWidth": 2, + "trailingComma": "es5", + "useTabs": false +} diff --git a/ui/package-lock.json b/ui/package-lock.json index fac3bb16..17203607 100644 --- a/ui/package-lock.json +++ b/ui/package-lock.json @@ -1,11 +1,11 @@ { - "name": "ui", + "name": "guidellm", "version": "0.1.0", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "ui", + "name": "guidellm", "version": "0.1.0", "dependencies": { "next": "15.3.2", @@ -13,12 +13,24 @@ "react-dom": "^19.0.0" }, "devDependencies": { - "@eslint/eslintrc": "^3", "@types/node": "^20", "@types/react": "^19", "@types/react-dom": "^19", - "eslint": "^9", - "eslint-config-next": "15.3.2", + "@typescript-eslint/eslint-plugin": "^5.43.0", + "@typescript-eslint/parser": "^5.43.0", + "eslint": "^8.27.0", + "eslint-config-next": "14.2.5", + "eslint-config-prettier": "^8.5.0", + "eslint-plugin-import": "^2.29.1", + "eslint-plugin-jest": "^27.1.5", + "eslint-plugin-jsx-a11y": "^6.6.1", + "eslint-plugin-no-secrets": "^1.0.2", + "eslint-plugin-prettier": "^4.2.1", + "eslint-plugin-react": "^7.31.10", + "eslint-plugin-react-hooks": "^5.2.0", + "husky": "^9.1.7", + "prettier": "^3.5.3", + "tslint-config-prettier": "^1.18.0", "typescript": "^5" } }, @@ -70,18 +82,6 @@ "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, - "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, "node_modules/@eslint-community/regexpp": { "version": "4.12.1", "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", @@ -91,51 +91,17 @@ "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, - "node_modules/@eslint/config-array": { - "version": "0.20.0", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.20.0.tgz", - "integrity": "sha512-fxlS1kkIjx8+vy2SjuCB94q3htSNrufYTXubwiBFeaQHbH6Ipi43gFJq2zCMt6PHhImH3Xmr0NksKDvchWlpQQ==", - "dev": true, - "dependencies": { - "@eslint/object-schema": "^2.1.6", - "debug": "^4.3.1", - "minimatch": "^3.1.2" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/config-helpers": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.2.2.tgz", - "integrity": "sha512-+GPzk8PlG0sPpzdU5ZvIRMPidzAnZDl/s9L+y13iodqvb8leL53bTannOrQ/Im7UkpsmFU5Ily5U60LWixnmLg==", - "dev": true, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/core": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.13.0.tgz", - "integrity": "sha512-yfkgDw1KR66rkT5A8ci4irzDysN7FRpq3ttJolR88OqQikAWqwA8j5VZyas+vjyBNFIJ7MfybJ9plMILI2UrCw==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.15" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, "node_modules/@eslint/eslintrc": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz", - "integrity": "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "dev": true, + "license": "MIT", "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^10.0.1", - "globals": "^14.0.0", + "espree": "^9.6.0", + "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", @@ -143,76 +109,36 @@ "strip-json-comments": "^3.1.1" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "url": "https://opencollective.com/eslint" } }, "node_modules/@eslint/js": { - "version": "9.26.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.26.0.tgz", - "integrity": "sha512-I9XlJawFdSMvWjDt6wksMCrgns5ggLNfFwFvnShsleWruvXM514Qxk8V246efTw+eo9JABvVz+u3q2RiAowKxQ==", + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", + "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", "dev": true, + "license": "MIT", "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/object-schema": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz", - "integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==", - "dev": true, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/plugin-kit": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.8.tgz", - "integrity": "sha512-ZAoA40rNMPwSm+AeHpCq8STiNAwzWLJuP8Xv4CHIc9wv/PSuExjMrmjfYNj682vW0OOiZ1HKxzvjQr9XZIisQA==", - "dev": true, - "dependencies": { - "@eslint/core": "^0.13.0", - "levn": "^0.4.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@humanfs/core": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", - "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", - "dev": true, - "engines": { - "node": ">=18.18.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/@humanfs/node": { - "version": "0.16.6", - "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", - "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", + "node_modules/@humanwhocodes/config-array": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", + "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", + "deprecated": "Use @eslint/config-array instead", "dev": true, + "license": "Apache-2.0", "dependencies": { - "@humanfs/core": "^0.19.1", - "@humanwhocodes/retry": "^0.3.0" + "@humanwhocodes/object-schema": "^2.0.3", + "debug": "^4.3.1", + "minimatch": "^3.0.5" }, "engines": { - "node": ">=18.18.0" - } - }, - "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", - "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", - "dev": true, - "engines": { - "node": ">=18.18" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" + "node": ">=10.10.0" } }, "node_modules/@humanwhocodes/module-importer": { @@ -228,18 +154,13 @@ "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@humanwhocodes/retry": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", - "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", "dev": true, - "engines": { - "node": ">=18.18" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } + "license": "BSD-3-Clause" }, "node_modules/@img/sharp-darwin-arm64": { "version": "0.34.1", @@ -248,6 +169,7 @@ "cpu": [ "arm64" ], + "license": "Apache-2.0", "optional": true, "os": [ "darwin" @@ -269,6 +191,7 @@ "cpu": [ "x64" ], + "license": "Apache-2.0", "optional": true, "os": [ "darwin" @@ -290,6 +213,7 @@ "cpu": [ "arm64" ], + "license": "LGPL-3.0-or-later", "optional": true, "os": [ "darwin" @@ -305,6 +229,7 @@ "cpu": [ "x64" ], + "license": "LGPL-3.0-or-later", "optional": true, "os": [ "darwin" @@ -320,6 +245,7 @@ "cpu": [ "arm" ], + "license": "LGPL-3.0-or-later", "optional": true, "os": [ "linux" @@ -335,6 +261,7 @@ "cpu": [ "arm64" ], + "license": "LGPL-3.0-or-later", "optional": true, "os": [ "linux" @@ -350,6 +277,7 @@ "cpu": [ "ppc64" ], + "license": "LGPL-3.0-or-later", "optional": true, "os": [ "linux" @@ -365,6 +293,7 @@ "cpu": [ "s390x" ], + "license": "LGPL-3.0-or-later", "optional": true, "os": [ "linux" @@ -380,6 +309,7 @@ "cpu": [ "x64" ], + "license": "LGPL-3.0-or-later", "optional": true, "os": [ "linux" @@ -395,6 +325,7 @@ "cpu": [ "arm64" ], + "license": "LGPL-3.0-or-later", "optional": true, "os": [ "linux" @@ -410,6 +341,7 @@ "cpu": [ "x64" ], + "license": "LGPL-3.0-or-later", "optional": true, "os": [ "linux" @@ -425,6 +357,7 @@ "cpu": [ "arm" ], + "license": "Apache-2.0", "optional": true, "os": [ "linux" @@ -446,6 +379,7 @@ "cpu": [ "arm64" ], + "license": "Apache-2.0", "optional": true, "os": [ "linux" @@ -467,6 +401,7 @@ "cpu": [ "s390x" ], + "license": "Apache-2.0", "optional": true, "os": [ "linux" @@ -488,6 +423,7 @@ "cpu": [ "x64" ], + "license": "Apache-2.0", "optional": true, "os": [ "linux" @@ -509,6 +445,7 @@ "cpu": [ "arm64" ], + "license": "Apache-2.0", "optional": true, "os": [ "linux" @@ -530,6 +467,7 @@ "cpu": [ "x64" ], + "license": "Apache-2.0", "optional": true, "os": [ "linux" @@ -551,6 +489,7 @@ "cpu": [ "wasm32" ], + "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", "optional": true, "dependencies": { "@emnapi/runtime": "^1.4.0" @@ -569,6 +508,7 @@ "cpu": [ "ia32" ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", "optional": true, "os": [ "win32" @@ -587,6 +527,7 @@ "cpu": [ "x64" ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", "optional": true, "os": [ "win32" @@ -598,25 +539,51 @@ "url": "https://opencollective.com/libvips" } }, - "node_modules/@modelcontextprotocol/sdk": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.11.1.tgz", - "integrity": "sha512-9LfmxKTb1v+vUS1/emSk1f5ePmTLkb9Le9AxOB5T0XM59EUumwcS45z05h7aiZx3GI0Bl7mjb3FMEglYj+acuQ==", + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", "dev": true, + "license": "ISC", "dependencies": { - "content-type": "^1.0.5", - "cors": "^2.8.5", - "cross-spawn": "^7.0.3", - "eventsource": "^3.0.2", - "express": "^5.0.1", - "express-rate-limit": "^7.5.0", - "pkce-challenge": "^5.0.0", - "raw-body": "^3.0.0", - "zod": "^3.23.8", - "zod-to-json-schema": "^3.24.1" + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" }, "engines": { - "node": ">=18" + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, "node_modules/@napi-rs/wasm-runtime": { @@ -634,15 +601,17 @@ "node_modules/@next/env": { "version": "15.3.2", "resolved": "https://registry.npmjs.org/@next/env/-/env-15.3.2.tgz", - "integrity": "sha512-xURk++7P7qR9JG1jJtLzPzf0qEvqCN0A/T3DXf8IPMKo9/6FfjxtEffRJIIew/bIL4T3C2jLLqBor8B/zVlx6g==" + "integrity": "sha512-xURk++7P7qR9JG1jJtLzPzf0qEvqCN0A/T3DXf8IPMKo9/6FfjxtEffRJIIew/bIL4T3C2jLLqBor8B/zVlx6g==", + "license": "MIT" }, "node_modules/@next/eslint-plugin-next": { - "version": "15.3.2", - "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-15.3.2.tgz", - "integrity": "sha512-ijVRTXBgnHT33aWnDtmlG+LJD+5vhc9AKTJPquGG5NKXjpKNjc62woIhFtrAcWdBobt8kqjCoaJ0q6sDQoX7aQ==", + "version": "14.2.5", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-14.2.5.tgz", + "integrity": "sha512-LY3btOpPh+OTIpviNojDpUdIbHW9j0JBYBjsIp8IxtDFfYFyORvw3yNq6N231FVqQA7n7lwaf7xHbVJlA1ED7g==", "dev": true, + "license": "MIT", "dependencies": { - "fast-glob": "3.3.1" + "glob": "10.3.10" } }, "node_modules/@next/swc-darwin-arm64": { @@ -652,6 +621,7 @@ "cpu": [ "arm64" ], + "license": "MIT", "optional": true, "os": [ "darwin" @@ -667,6 +637,7 @@ "cpu": [ "x64" ], + "license": "MIT", "optional": true, "os": [ "darwin" @@ -682,6 +653,7 @@ "cpu": [ "arm64" ], + "license": "MIT", "optional": true, "os": [ "linux" @@ -697,6 +669,7 @@ "cpu": [ "arm64" ], + "license": "MIT", "optional": true, "os": [ "linux" @@ -712,6 +685,7 @@ "cpu": [ "x64" ], + "license": "MIT", "optional": true, "os": [ "linux" @@ -727,6 +701,7 @@ "cpu": [ "x64" ], + "license": "MIT", "optional": true, "os": [ "linux" @@ -742,6 +717,7 @@ "cpu": [ "arm64" ], + "license": "MIT", "optional": true, "os": [ "win32" @@ -757,6 +733,7 @@ "cpu": [ "x64" ], + "license": "MIT", "optional": true, "os": [ "win32" @@ -809,6 +786,17 @@ "node": ">=12.4.0" } }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, "node_modules/@rtsao/scc": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", @@ -824,12 +812,14 @@ "node_modules/@swc/counter": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", - "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==" + "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", + "license": "Apache-2.0" }, "node_modules/@swc/helpers": { "version": "0.5.15", "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz", "integrity": "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==", + "license": "Apache-2.0", "dependencies": { "tslib": "^2.8.0" } @@ -844,17 +834,12 @@ "tslib": "^2.4.0" } }, - "node_modules/@types/estree": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", - "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", - "dev": true - }, "node_modules/@types/json-schema": { "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/json5": { "version": "0.0.29", @@ -889,70 +874,88 @@ "@types/react": "^19.0.0" } }, + "node_modules/@types/semver": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.7.0.tgz", + "integrity": "sha512-k107IF4+Xr7UHjwDc7Cfd6PRQfbdkiRabXGRjo07b4WyPahFBZCZ1sE+BNxYIJPPg73UkfOsVOLwqVc/6ETrIA==", + "dev": true, + "license": "MIT" + }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.32.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.32.0.tgz", - "integrity": "sha512-/jU9ettcntkBFmWUzzGgsClEi2ZFiikMX5eEQsmxIAWMOn4H3D4rvHssstmAHGVvrYnaMqdWWWg0b5M6IN/MTQ==", + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", + "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", "dev": true, + "license": "MIT", "dependencies": { - "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.32.0", - "@typescript-eslint/type-utils": "8.32.0", - "@typescript-eslint/utils": "8.32.0", - "@typescript-eslint/visitor-keys": "8.32.0", + "@eslint-community/regexpp": "^4.4.0", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/type-utils": "5.62.0", + "@typescript-eslint/utils": "5.62.0", + "debug": "^4.3.4", "graphemer": "^1.4.0", - "ignore": "^5.3.1", - "natural-compare": "^1.4.0", - "ts-api-utils": "^2.1.0" + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.9.0" + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, "node_modules/@typescript-eslint/parser": { - "version": "8.32.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.32.0.tgz", - "integrity": "sha512-B2MdzyWxCE2+SqiZHAjPphft+/2x2FlO9YBx7eKE1BCb+rqBlQdhtAEhzIEdozHd55DXPmxBdpMygFJjfjjA9A==", + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", + "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/scope-manager": "8.32.0", - "@typescript-eslint/types": "8.32.0", - "@typescript-eslint/typescript-estree": "8.32.0", - "@typescript-eslint/visitor-keys": "8.32.0", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", "debug": "^4.3.4" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.9.0" + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.32.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.32.0.tgz", - "integrity": "sha512-jc/4IxGNedXkmG4mx4nJTILb6TMjL66D41vyeaPWvDUmeYQzF3lKtN15WsAeTr65ce4mPxwopPSo1yUUAWw0hQ==", + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", + "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.32.0", - "@typescript-eslint/visitor-keys": "8.32.0" + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "type": "opencollective", @@ -960,35 +963,41 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.32.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.32.0.tgz", - "integrity": "sha512-t2vouuYQKEKSLtJaa5bB4jHeha2HJczQ6E5IXPDPgIty9EqcJxpr1QHQ86YyIPwDwxvUmLfP2YADQ5ZY4qddZg==", + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", + "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "8.32.0", - "@typescript-eslint/utils": "8.32.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "@typescript-eslint/utils": "5.62.0", "debug": "^4.3.4", - "ts-api-utils": "^2.1.0" + "tsutils": "^3.21.0" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.9.0" + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, "node_modules/@typescript-eslint/types": { - "version": "8.32.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.32.0.tgz", - "integrity": "sha512-O5Id6tGadAZEMThM6L9HmVf5hQUXNSxLVKeGJYWNhhVseps/0LddMkp7//VDkzwJ69lPL0UmZdcZwggj9akJaA==", + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", + "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", "dev": true, + "license": "MIT", "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "type": "opencollective", @@ -996,123 +1005,85 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.32.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.32.0.tgz", - "integrity": "sha512-pU9VD7anSCOIoBFnhTGfOzlVFQIA1XXiQpH/CezqOBaDppRwTglJzCC6fUQGpfwey4T183NKhF1/mfatYmjRqQ==", + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", + "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/types": "8.32.0", - "@typescript-eslint/visitor-keys": "8.32.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0", "debug": "^4.3.4", - "fast-glob": "^3.3.2", + "globby": "^11.1.0", "is-glob": "^4.0.3", - "minimatch": "^9.0.4", - "semver": "^7.6.0", - "ts-api-utils": "^2.1.0" + "semver": "^7.3.7", + "tsutils": "^3.21.0" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, - "peerDependencies": { - "typescript": ">=4.8.4 <5.9.0" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/fast-glob": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", - "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.8" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, "node_modules/@typescript-eslint/utils": { - "version": "8.32.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.32.0.tgz", - "integrity": "sha512-8S9hXau6nQ/sYVtC3D6ISIDoJzS1NsCK+gluVhLN2YkBPX+/1wkwyUiDKnxRh15579WoOIyVWnoyIf3yGI9REw==", + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", + "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", "dev": true, + "license": "MIT", "dependencies": { - "@eslint-community/eslint-utils": "^4.7.0", - "@typescript-eslint/scope-manager": "8.32.0", - "@typescript-eslint/types": "8.32.0", - "@typescript-eslint/typescript-estree": "8.32.0" + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.9.0" + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.32.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.32.0.tgz", - "integrity": "sha512-1rYQTCLFFzOI5Nl0c8LUpJT8HxpwVRn9E4CkMsYfuN6ctmQqExjSTzzSk0Tz2apmXy7WU6/6fyaZVVA/thPN+w==", + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", + "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.32.0", - "eslint-visitor-keys": "^4.2.0" + "@typescript-eslint/types": "5.62.0", + "eslint-visitor-keys": "^3.3.0" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" } }, + "node_modules/@ungap/structured-clone": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", + "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", + "dev": true, + "license": "ISC" + }, "node_modules/@unrs/resolver-binding-darwin-arm64": { "version": "1.7.2", "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.7.2.tgz", @@ -1337,24 +1308,12 @@ "win32" ] }, - "node_modules/accepts": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz", - "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==", - "dev": true, - "dependencies": { - "mime-types": "^3.0.0", - "negotiator": "^1.0.0" - }, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/acorn": { "version": "8.14.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", "dev": true, + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -1367,6 +1326,7 @@ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, + "license": "MIT", "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } @@ -1376,6 +1336,7 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -1387,6 +1348,16 @@ "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -1406,7 +1377,8 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true + "dev": true, + "license": "Python-2.0" }, "node_modules/aria-query": { "version": "5.3.2", @@ -1453,6 +1425,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/array.prototype.findlast": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", @@ -1621,26 +1603,6 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, - "node_modules/body-parser": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.2.0.tgz", - "integrity": "sha512-02qvAaxv8tp7fBa/mw1ga98OGm+eCbqzJOKoRt70sLmfEEi+jyBYVTDGfCL/k06/4EMk/z01gCe7HoCH/f2LTg==", - "dev": true, - "dependencies": { - "bytes": "^3.1.2", - "content-type": "^1.0.5", - "debug": "^4.4.0", - "http-errors": "^2.0.0", - "iconv-lite": "^0.6.3", - "on-finished": "^2.4.1", - "qs": "^6.14.0", - "raw-body": "^3.0.0", - "type-is": "^2.0.0" - }, - "engines": { - "node": ">=18" - } - }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -1656,6 +1618,7 @@ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, + "license": "MIT", "dependencies": { "fill-range": "^7.1.1" }, @@ -1674,15 +1637,6 @@ "node": ">=10.16.0" } }, - "node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/call-bind": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", @@ -1735,6 +1689,7 @@ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -1777,12 +1732,14 @@ "node_modules/client-only": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", - "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==" + "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==", + "license": "MIT" }, "node_modules/color": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", + "license": "MIT", "optional": true, "dependencies": { "color-convert": "^2.0.1", @@ -1814,6 +1771,7 @@ "version": "1.9.1", "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "license": "MIT", "optional": true, "dependencies": { "color-name": "^1.0.0", @@ -1826,63 +1784,12 @@ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true }, - "node_modules/content-disposition": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.0.0.tgz", - "integrity": "sha512-Au9nRL8VNUut/XSzbQA38+M78dzP4D+eqg3gfJHMIHHYa3bg067xj1KxMUWj+VULbiZMowKngFFbKczUrNJ1mg==", - "dev": true, - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", - "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz", - "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==", - "dev": true, - "engines": { - "node": ">=6.6.0" - } - }, - "node_modules/cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "dev": true, - "dependencies": { - "object-assign": "^4", - "vary": "^1" - }, - "engines": { - "node": ">= 0.10" - } - }, "node_modules/cross-spawn": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -2012,24 +1919,29 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/detect-libc": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz", "integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==", + "license": "Apache-2.0", "optional": true, "engines": { "node": ">=8" } }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/doctrine": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", @@ -2056,11 +1968,12 @@ "node": ">= 0.4" } }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", - "dev": true + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true, + "license": "MIT" }, "node_modules/emoji-regex": { "version": "9.2.2", @@ -2068,15 +1981,6 @@ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", "dev": true }, - "node_modules/encodeurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", - "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/es-abstract": { "version": "1.23.9", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz", @@ -2243,12 +2147,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", - "dev": true - }, "node_modules/escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", @@ -2262,86 +2160,81 @@ } }, "node_modules/eslint": { - "version": "9.26.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.26.0.tgz", - "integrity": "sha512-Hx0MOjPh6uK9oq9nVsATZKE/Wlbai7KFjfCuw9UHaguDW3x+HF0O5nIi3ud39TWgrTjTO5nHxmL3R1eANinWHQ==", + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", + "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", + "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", "dev": true, + "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.12.1", - "@eslint/config-array": "^0.20.0", - "@eslint/config-helpers": "^0.2.1", - "@eslint/core": "^0.13.0", - "@eslint/eslintrc": "^3.3.1", - "@eslint/js": "9.26.0", - "@eslint/plugin-kit": "^0.2.8", - "@humanfs/node": "^0.16.6", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.1", + "@humanwhocodes/config-array": "^0.13.0", "@humanwhocodes/module-importer": "^1.0.1", - "@humanwhocodes/retry": "^0.4.2", - "@modelcontextprotocol/sdk": "^1.8.0", - "@types/estree": "^1.0.6", - "@types/json-schema": "^7.0.15", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", "ajv": "^6.12.4", "chalk": "^4.0.0", - "cross-spawn": "^7.0.6", + "cross-spawn": "^7.0.2", "debug": "^4.3.2", + "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^8.3.0", - "eslint-visitor-keys": "^4.2.0", - "espree": "^10.3.0", - "esquery": "^1.5.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^8.0.0", + "file-entry-cache": "^6.0.1", "find-up": "^5.0.0", "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", + "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.3", - "zod": "^3.24.2" + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" }, "bin": { "eslint": "bin/eslint.js" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "url": "https://eslint.org/donate" - }, - "peerDependencies": { - "jiti": "*" - }, - "peerDependenciesMeta": { - "jiti": { - "optional": true - } + "url": "https://opencollective.com/eslint" } }, "node_modules/eslint-config-next": { - "version": "15.3.2", - "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-15.3.2.tgz", - "integrity": "sha512-FerU4DYccO4FgeYFFglz0SnaKRe1ejXQrDb8kWUkTAg036YWi+jUsgg4sIGNCDhAsDITsZaL4MzBWKB6f4G1Dg==", + "version": "14.2.5", + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-14.2.5.tgz", + "integrity": "sha512-zogs9zlOiZ7ka+wgUnmcM0KBEDjo4Jis7kxN1jvC0N4wynQ2MIx/KBkg4mVF63J5EK4W0QMCn7xO3vNisjaAoA==", "dev": true, + "license": "MIT", "dependencies": { - "@next/eslint-plugin-next": "15.3.2", - "@rushstack/eslint-patch": "^1.10.3", - "@typescript-eslint/eslint-plugin": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", - "@typescript-eslint/parser": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", + "@next/eslint-plugin-next": "14.2.5", + "@rushstack/eslint-patch": "^1.3.3", + "@typescript-eslint/parser": "^5.4.2 || ^6.0.0 || 7.0.0 - 7.2.0", "eslint-import-resolver-node": "^0.3.6", "eslint-import-resolver-typescript": "^3.5.2", - "eslint-plugin-import": "^2.31.0", - "eslint-plugin-jsx-a11y": "^6.10.0", - "eslint-plugin-react": "^7.37.0", - "eslint-plugin-react-hooks": "^5.0.0" + "eslint-plugin-import": "^2.28.1", + "eslint-plugin-jsx-a11y": "^6.7.1", + "eslint-plugin-react": "^7.33.2", + "eslint-plugin-react-hooks": "^4.5.0 || 5.0.0-canary-7118f5dd7-20230705" }, "peerDependencies": { - "eslint": "^7.23.0 || ^8.0.0 || ^9.0.0", + "eslint": "^7.23.0 || ^8.0.0", "typescript": ">=3.3.1" }, "peerDependenciesMeta": { @@ -2350,6 +2243,32 @@ } } }, + "node_modules/eslint-config-next/node_modules/eslint-plugin-react-hooks": { + "version": "5.0.0-canary-7118f5dd7-20230705", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.0.0-canary-7118f5dd7-20230705.tgz", + "integrity": "sha512-AZYbMo/NW9chdL7vk6HQzQhT+PvTAEVqWk9ziruUoW2kAOcN5qNyelv70e0F1VNQAbvutOC9oc+xfWycI9FxDw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/eslint-config-prettier": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz", + "integrity": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==", + "dev": true, + "license": "MIT", + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, "node_modules/eslint-import-resolver-node": { "version": "0.3.9", "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", @@ -2481,6 +2400,32 @@ "semver": "bin/semver.js" } }, + "node_modules/eslint-plugin-jest": { + "version": "27.9.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-27.9.0.tgz", + "integrity": "sha512-QIT7FH7fNmd9n4se7FFKHbsLKGQiw885Ds6Y/sxKgCZ6natwCsXdgPOADnYVxN2QrRweF0FZWbJ6S7Rsn7llug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/utils": "^5.10.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "^5.0.0 || ^6.0.0 || ^7.0.0", + "eslint": "^7.0.0 || ^8.0.0", + "jest": "*" + }, + "peerDependenciesMeta": { + "@typescript-eslint/eslint-plugin": { + "optional": true + }, + "jest": { + "optional": true + } + } + }, "node_modules/eslint-plugin-jsx-a11y": { "version": "6.10.2", "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz", @@ -2510,6 +2455,42 @@ "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9" } }, + "node_modules/eslint-plugin-no-secrets": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-no-secrets/-/eslint-plugin-no-secrets-1.1.2.tgz", + "integrity": "sha512-FjgyBaEkQK6hrdKf0V1TnKbY3dxXmw8S7tjfHs/BMIgFGNYhzFccxbZSJtDCPHTQTSiBtdLwRlOmSF81toII4w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0", + "npm": ">=6.9.0" + }, + "peerDependencies": { + "eslint": ">=3.0.0" + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", + "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prettier-linter-helpers": "^1.0.0" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "eslint": ">=7.28.0", + "prettier": ">=2.0.0" + }, + "peerDependenciesMeta": { + "eslint-config-prettier": { + "optional": true + } + } + }, "node_modules/eslint-plugin-react": { "version": "7.37.5", "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz", @@ -2547,6 +2528,7 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.2.0.tgz", "integrity": "sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -2581,45 +2563,85 @@ } }, "node_modules/eslint-scope": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.3.0.tgz", - "integrity": "sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" + "estraverse": "^4.1.1" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": ">=8.0.0" + } + }, + "node_modules/eslint-scope/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint-visitor-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", - "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "node_modules/eslint/node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/eslint/node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "url": "https://opencollective.com/eslint" } }, "node_modules/espree": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", - "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "acorn": "^8.14.0", + "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^4.2.0" + "eslint-visitor-keys": "^3.4.1" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -2642,6 +2664,7 @@ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "estraverse": "^5.2.0" }, @@ -2667,110 +2690,32 @@ "node": ">=0.10.0" } }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/eventsource": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-3.0.6.tgz", - "integrity": "sha512-l19WpE2m9hSuyP06+FbuUUf1G+R0SFLrtQfbRb9PRr+oimOfxQhgGCbVaXg5IvZyyTThJsxh6L/srkMiCeBPDA==", - "dev": true, - "dependencies": { - "eventsource-parser": "^3.0.1" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/eventsource-parser": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-3.0.1.tgz", - "integrity": "sha512-VARTJ9CYeuQYb0pZEPbzi740OWFgpHe7AYJ2WFZVnUDUQp5Dk2yJUgF36YsZ81cOyxT0QxmXD2EQpapAouzWVA==", - "dev": true, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/express": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/express/-/express-5.1.0.tgz", - "integrity": "sha512-DT9ck5YIRU+8GYzzU5kT3eHGA5iL+1Zd0EutOmTE9Dtk+Tvuzd23VBU+ec7HPNSTxXYO55gPV/hq4pSBJDjFpA==", - "dev": true, - "dependencies": { - "accepts": "^2.0.0", - "body-parser": "^2.2.0", - "content-disposition": "^1.0.0", - "content-type": "^1.0.5", - "cookie": "^0.7.1", - "cookie-signature": "^1.2.1", - "debug": "^4.4.0", - "encodeurl": "^2.0.0", - "escape-html": "^1.0.3", - "etag": "^1.8.1", - "finalhandler": "^2.1.0", - "fresh": "^2.0.0", - "http-errors": "^2.0.0", - "merge-descriptors": "^2.0.0", - "mime-types": "^3.0.0", - "on-finished": "^2.4.1", - "once": "^1.4.0", - "parseurl": "^1.3.3", - "proxy-addr": "^2.0.7", - "qs": "^6.14.0", - "range-parser": "^1.2.1", - "router": "^2.2.0", - "send": "^1.1.0", - "serve-static": "^2.2.0", - "statuses": "^2.0.1", - "type-is": "^2.0.1", - "vary": "^1.1.2" - }, - "engines": { - "node": ">= 18" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/express-rate-limit": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-7.5.0.tgz", - "integrity": "sha512-eB5zbQh5h+VenMPM3fh+nw1YExi5nMr6HUCR62ELSP11huvxm/Uir1H1QEyTkk5QX6A58pX6NmaTMceKZ0Eodg==", - "dev": true, - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://github.com/sponsors/express-rate-limit" - }, - "peerDependencies": { - "express": "^4.11 || 5 || ^5.0.0-beta.1" - } - }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/fast-diff": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", + "dev": true, + "license": "Apache-2.0" }, "node_modules/fast-glob": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", - "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", - "micromatch": "^4.0.4" + "micromatch": "^4.0.8" }, "engines": { "node": ">=8.6.0" @@ -2781,6 +2726,7 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -2792,7 +2738,8 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fast-levenshtein": { "version": "2.0.6", @@ -2810,15 +2757,16 @@ } }, "node_modules/file-entry-cache": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", - "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, + "license": "MIT", "dependencies": { - "flat-cache": "^4.0.0" + "flat-cache": "^3.0.4" }, "engines": { - "node": ">=16.0.0" + "node": "^10.12.0 || >=12.0.0" } }, "node_modules/fill-range": { @@ -2826,6 +2774,7 @@ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, + "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -2833,23 +2782,6 @@ "node": ">=8" } }, - "node_modules/finalhandler": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.0.tgz", - "integrity": "sha512-/t88Ty3d5JWQbWYgaOGCCYfXRwV1+be02WqYYlL6h0lEiUAMPM8o8qKGO01YIkOHzka2up08wvgYD0mDiI+q3Q==", - "dev": true, - "dependencies": { - "debug": "^4.4.0", - "encodeurl": "^2.0.0", - "escape-html": "^1.0.3", - "on-finished": "^2.4.1", - "parseurl": "^1.3.3", - "statuses": "^2.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -2867,23 +2799,26 @@ } }, "node_modules/flat-cache": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", - "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", "dev": true, + "license": "MIT", "dependencies": { "flatted": "^3.2.9", - "keyv": "^4.5.4" + "keyv": "^4.5.3", + "rimraf": "^3.0.2" }, "engines": { - "node": ">=16" + "node": "^10.12.0 || >=12.0.0" } }, "node_modules/flatted": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/for-each": { "version": "0.3.5", @@ -2900,23 +2835,29 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "node_modules/foreground-child": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.6", + "signal-exit": "^4.0.1" + }, "engines": { - "node": ">= 0.6" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/fresh": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz", - "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==", + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "dev": true, - "engines": { - "node": ">= 0.8" - } + "license": "ISC" }, "node_modules/function-bind": { "version": "1.1.2", @@ -3022,6 +2963,29 @@ "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" } }, + "node_modules/glob": { + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/glob-parent": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", @@ -3034,13 +2998,43 @@ "node": ">=10.13.0" } }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/globals": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", - "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, "engines": { - "node": ">=18" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -3062,6 +3056,27 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/gopd": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", @@ -3167,32 +3182,20 @@ "node": ">= 0.4" } }, - "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "node_modules/husky": { + "version": "9.1.7", + "resolved": "https://registry.npmjs.org/husky/-/husky-9.1.7.tgz", + "integrity": "sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==", "dev": true, - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" + "license": "MIT", + "bin": { + "husky": "bin.js" }, "engines": { - "node": ">= 0.8" - } - }, - "node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" + "node": ">=18" }, - "engines": { - "node": ">=0.10.0" + "funding": { + "url": "https://github.com/sponsors/typicode" } }, "node_modules/ignore": { @@ -3209,6 +3212,7 @@ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", "dev": true, + "license": "MIT", "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -3229,11 +3233,24 @@ "node": ">=0.8.19" } }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "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.", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/internal-slot": { "version": "1.1.0", @@ -3249,15 +3266,6 @@ "node": ">= 0.4" } }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, "node_modules/is-array-buffer": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", @@ -3279,6 +3287,7 @@ "version": "0.3.2", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "license": "MIT", "optional": true }, "node_modules/is-async-function": { @@ -3424,6 +3433,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/is-generator-function": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", @@ -3471,6 +3490,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.12.0" } @@ -3491,11 +3511,15 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-promise": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", - "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", - "dev": true + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } }, "node_modules/is-regex": { "version": "1.2.1", @@ -3643,7 +3667,8 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/iterator.prototype": { "version": "1.1.5", @@ -3662,10 +3687,29 @@ "node": ">= 0.4" } }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "node_modules/jackspeak": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true }, "node_modules/js-yaml": { @@ -3673,6 +3717,7 @@ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, + "license": "MIT", "dependencies": { "argparse": "^2.0.1" }, @@ -3684,13 +3729,15 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", @@ -3730,6 +3777,7 @@ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", "dev": true, + "license": "MIT", "dependencies": { "json-buffer": "3.0.1" } @@ -3798,6 +3846,13 @@ "loose-envify": "cli.js" } }, + "node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, "node_modules/math-intrinsics": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", @@ -3807,32 +3862,12 @@ "node": ">= 0.4" } }, - "node_modules/media-typer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz", - "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/merge-descriptors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz", - "integrity": "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==", - "dev": true, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } @@ -3842,6 +3877,7 @@ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, + "license": "MIT", "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" @@ -3850,27 +3886,6 @@ "node": ">=8.6" } }, - "node_modules/mime-db": { - "version": "1.54.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", - "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz", - "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==", - "dev": true, - "dependencies": { - "mime-db": "^1.54.0" - }, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -3892,6 +3907,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -3936,19 +3961,18 @@ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, - "node_modules/negotiator": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", - "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", + "node_modules/natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", "dev": true, - "engines": { - "node": ">= 0.6" - } + "license": "MIT" }, "node_modules/next": { "version": "15.3.2", "resolved": "https://registry.npmjs.org/next/-/next-15.3.2.tgz", "integrity": "sha512-CA3BatMyHkxZ48sgOCLdVHjFU36N7TF1HhqAHLFOkV6buwZnvMI84Cug8xD56B9mCuKrqXnLn94417GrZ/jjCQ==", + "license": "MIT", "dependencies": { "@next/env": "15.3.2", "@swc/counter": "0.1.3", @@ -4113,23 +4137,12 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "dev": true, - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, + "license": "ISC", "dependencies": { "wrappy": "1" } @@ -4203,6 +4216,7 @@ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, + "license": "MIT", "dependencies": { "callsites": "^3.0.0" }, @@ -4210,15 +4224,6 @@ "node": ">=6" } }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -4228,11 +4233,22 @@ "node": ">=8" } }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -4243,13 +4259,31 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, - "node_modules/path-to-regexp": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.2.0.tgz", - "integrity": "sha512-TdrF7fW9Rphjq4RjrW0Kp2AW0Ahwu9sRGTkS6bvDi0SCwZlEZYmcfDbEsTz8RVk0EHIS/Vd1bv3JhG+1xZuAyQ==", + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, "engines": { - "node": ">=16" + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" } }, "node_modules/picocolors": { @@ -4262,6 +4296,7 @@ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8.6" }, @@ -4269,15 +4304,6 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/pkce-challenge": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pkce-challenge/-/pkce-challenge-5.0.0.tgz", - "integrity": "sha512-ueGLflrrnvwB3xuo/uGob5pd5FN7l0MsLf0Z87o/UQmRtwjvfylfc9MurIxRAWywCYTgrvpXBcqjV4OfCYGCIQ==", - "dev": true, - "engines": { - "node": ">=16.20.0" - } - }, "node_modules/possible-typed-array-names": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", @@ -4323,6 +4349,35 @@ "node": ">= 0.8.0" } }, + "node_modules/prettier": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz", + "integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/prop-types": { "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", @@ -4334,43 +4389,16 @@ "react-is": "^16.13.1" } }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dev": true, - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, - "node_modules/qs": { - "version": "6.14.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz", - "integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==", - "dev": true, - "dependencies": { - "side-channel": "^1.1.0" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -4391,34 +4419,11 @@ } ] }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.0.tgz", - "integrity": "sha512-RmkhL8CAyCRPXCE28MMH0z2PNWQBNk2Q09ZdxM9IOOXwxwZbN+qbWaatPkdkWIKL2ZVDImrN/pK5HTRz2PcS4g==", - "dev": true, - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.6.3", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/react": { "version": "19.1.0", "resolved": "https://registry.npmjs.org/react/-/react-19.1.0.tgz", "integrity": "sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -4427,6 +4432,7 @@ "version": "19.1.0", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.0.tgz", "integrity": "sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==", + "license": "MIT", "dependencies": { "scheduler": "^0.26.0" }, @@ -4507,6 +4513,7 @@ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -4530,20 +4537,43 @@ "node": ">=0.10.0" } }, - "node_modules/router": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/router/-/router-2.2.0.tgz", - "integrity": "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==", + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", "dev": true, + "license": "ISC", "dependencies": { - "debug": "^4.4.0", - "depd": "^2.0.0", - "is-promise": "^4.0.0", - "parseurl": "^1.3.3", - "path-to-regexp": "^8.0.0" + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "engines": { - "node": ">= 18" + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/run-parallel": { @@ -4588,26 +4618,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, "node_modules/safe-push-apply": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", @@ -4641,16 +4651,11 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, "node_modules/scheduler": { "version": "0.26.0", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz", - "integrity": "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==" + "integrity": "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==", + "license": "MIT" }, "node_modules/semver": { "version": "7.7.1", @@ -4664,43 +4669,6 @@ "node": ">=10" } }, - "node_modules/send": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/send/-/send-1.2.0.tgz", - "integrity": "sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==", - "dev": true, - "dependencies": { - "debug": "^4.3.5", - "encodeurl": "^2.0.0", - "escape-html": "^1.0.3", - "etag": "^1.8.1", - "fresh": "^2.0.0", - "http-errors": "^2.0.0", - "mime-types": "^3.0.1", - "ms": "^2.1.3", - "on-finished": "^2.4.1", - "range-parser": "^1.2.1", - "statuses": "^2.0.1" - }, - "engines": { - "node": ">= 18" - } - }, - "node_modules/serve-static": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.0.tgz", - "integrity": "sha512-61g9pCh0Vnh7IutZjtLGGpTA355+OPn2TyDv/6ivP2h/AdAVX9azsoxmg2/M6nZeQZNYBEwIcsne1mJd9oQItQ==", - "dev": true, - "dependencies": { - "encodeurl": "^2.0.0", - "escape-html": "^1.0.3", - "parseurl": "^1.3.3", - "send": "^1.2.0" - }, - "engines": { - "node": ">= 18" - } - }, "node_modules/set-function-length": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", @@ -4747,17 +4715,12 @@ "node": ">= 0.4" } }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true - }, "node_modules/sharp": { "version": "0.34.1", "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.1.tgz", "integrity": "sha512-1j0w61+eVxu7DawFJtnfYcvSv6qPFvfTaqzTQ2BLknVhHTwGS8sc63ZBF4rzkWMBVKybo4S5OBtDdZahh2A1xg==", "hasInstallScript": true, + "license": "Apache-2.0", "optional": true, "dependencies": { "color": "^4.2.3", @@ -4798,6 +4761,7 @@ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, + "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" }, @@ -4810,6 +4774,7 @@ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -4886,15 +4851,39 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/simple-swizzle": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "license": "MIT", "optional": true, "dependencies": { "is-arrayish": "^0.3.1" } }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/source-map-js": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", @@ -4909,15 +4898,6 @@ "integrity": "sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==", "dev": true }, - "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/streamsearch": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", @@ -4926,6 +4906,76 @@ "node": ">=10.0.0" } }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, "node_modules/string.prototype.includes": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz", @@ -5033,6 +5083,33 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", @@ -5047,6 +5124,7 @@ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -5058,6 +5136,7 @@ "version": "5.1.6", "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.6.tgz", "integrity": "sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==", + "license": "MIT", "dependencies": { "client-only": "0.0.1" }, @@ -5100,6 +5179,13 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true, + "license": "MIT" + }, "node_modules/tinyglobby": { "version": "0.2.13", "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.13.tgz", @@ -5147,6 +5233,7 @@ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, + "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -5154,27 +5241,6 @@ "node": ">=8.0" } }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/ts-api-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz", - "integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==", - "dev": true, - "engines": { - "node": ">=18.12" - }, - "peerDependencies": { - "typescript": ">=4.8.4" - } - }, "node_modules/tsconfig-paths": { "version": "3.15.0", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", @@ -5192,6 +5258,42 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" }, + "node_modules/tslint-config-prettier": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/tslint-config-prettier/-/tslint-config-prettier-1.18.0.tgz", + "integrity": "sha512-xPw9PgNPLG3iKRxmK7DWr+Ea/SzrvfHtjFt5LBl61gk2UBG/DB9kCXRjv+xyIU1rUtnayLeMUVJBcMX8Z17nDg==", + "dev": true, + "license": "MIT", + "bin": { + "tslint-config-prettier-check": "bin/check.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "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" + } + }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true, + "license": "0BSD" + }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -5204,18 +5306,17 @@ "node": ">= 0.8.0" } }, - "node_modules/type-is": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.0.1.tgz", - "integrity": "sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==", + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, - "dependencies": { - "content-type": "^1.0.5", - "media-typer": "^1.1.0", - "mime-types": "^3.0.0" - }, + "license": "(MIT OR CC0-1.0)", "engines": { - "node": ">= 0.6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/typed-array-buffer": { @@ -5329,15 +5430,6 @@ "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", "dev": true }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/unrs-resolver": { "version": "1.7.2", "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.7.2.tgz", @@ -5375,24 +5467,17 @@ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" } }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -5497,11 +5582,113 @@ "node": ">=0.10.0" } }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/yocto-queue": { "version": "0.1.0", @@ -5514,24 +5701,6 @@ "funding": { "url": "https://github.com/sponsors/sindresorhus" } - }, - "node_modules/zod": { - "version": "3.24.4", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.4.tgz", - "integrity": "sha512-OdqJE9UDRPwWsrHjLN2F8bPxvwJBK22EHLWtanu0LSYr5YqzsaaW3RMgmjwr8Rypg5k+meEJdSPXJZXE/yqOMg==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/colinhacks" - } - }, - "node_modules/zod-to-json-schema": { - "version": "3.24.5", - "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.24.5.tgz", - "integrity": "sha512-/AuWwMP+YqiPbsJx5D6TfgRTc4kTLjsh5SOcd4bLsfUg2RcEXrFMJl1DGgdHy2aCfsIA/cr/1JM0xcB2GZji8g==", - "dev": true, - "peerDependencies": { - "zod": "^3.24.1" - } } } } diff --git a/ui/package.json b/ui/package.json index d41101c3..80f60cb2 100644 --- a/ui/package.json +++ b/ui/package.json @@ -6,20 +6,40 @@ "dev": "next dev", "build": "next build", "start": "next start", - "lint": "next lint" + "lint": "next lint", + "format": "prettier --ignore-path .prettierignore --write \"**/*.+(js|ts|jsx|tsx|json)\"", + "prepare": "husky" }, "dependencies": { + "next": "15.3.2", "react": "^19.0.0", - "react-dom": "^19.0.0", - "next": "15.3.2" + "react-dom": "^19.0.0" }, "devDependencies": { - "typescript": "^5", "@types/node": "^20", "@types/react": "^19", "@types/react-dom": "^19", - "eslint": "^9", - "eslint-config-next": "15.3.2", - "@eslint/eslintrc": "^3" + "eslint": "^8.27.0", + "@typescript-eslint/eslint-plugin": "^5.43.0", + "@typescript-eslint/parser": "^5.43.0", + "eslint-config-next": "14.2.5", + "eslint-config-prettier": "^8.5.0", + "eslint-plugin-import": "^2.29.1", + "eslint-plugin-jest": "^27.1.5", + "eslint-plugin-jsx-a11y": "^6.6.1", + "eslint-plugin-no-secrets": "^1.0.2", + "eslint-plugin-prettier": "^4.2.1", + "eslint-plugin-react": "^7.31.10", + "eslint-plugin-react-hooks": "^5.2.0", + "husky": "^9.1.7", + "prettier": "^3.5.3", + "tslint-config-prettier": "^1.18.0", + "typescript": "^5" + }, + "lint-staged": { + "*.js": "eslint --cache --fix", + "*.ts": "eslint --cache --fix", + "*.jsx": "eslint --cache --fix", + "*.tsx": "eslint --cache --fix" } } diff --git a/ui/src/app/layout.tsx b/ui/src/app/layout.tsx index 42fc323e..53f8a3e3 100644 --- a/ui/src/app/layout.tsx +++ b/ui/src/app/layout.tsx @@ -1,20 +1,10 @@ -import type { Metadata } from "next"; -import { Geist, Geist_Mono } from "next/font/google"; -import "./globals.css"; - -const geistSans = Geist({ - variable: "--font-geist-sans", - subsets: ["latin"], -}); - -const geistMono = Geist_Mono({ - variable: "--font-geist-mono", - subsets: ["latin"], -}); +import type { Metadata } from 'next'; +import { Geist, Geist_Mono } from 'next/font/google'; +import './globals.css'; export const metadata: Metadata = { - title: "Create Next App", - description: "Generated by create next app", + title: 'Create Next App', + description: 'Generated by create next app', }; export default function RootLayout({ @@ -24,9 +14,7 @@ export default function RootLayout({ }>) { return ( - - {children} - + {children} ); } diff --git a/ui/tsconfig.json b/ui/tsconfig.json index 2c784730..de8c27df 100644 --- a/ui/tsconfig.json +++ b/ui/tsconfig.json @@ -24,18 +24,8 @@ "resolveJsonModule": true, "skipLibCheck": true, "strict": true, - "target": "es5", - "types": ["jest", "@testing-library/jest-dom"] + "target": "es5" }, - "include": [ - "jest.setup.ts", - "src", - "next-env.d.ts", - "**/*.ts", - "**/*.tsx", - ".next/types/**/*.ts", - "cypress.config.ts", - "declaration.d.ts" - ], + "include": ["src", "next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], "exclude": ["node_modules", ".vscode", ".meta/**/*", ".next/**/*"] } From f7837ca6c2d1c583018feffce7cbffd0bb92bd4d Mon Sep 17 00:00:00 2001 From: dalthecow Date: Mon, 12 May 2025 18:47:25 -0400 Subject: [PATCH 05/80] update file type --- ui/{.eslintrc => .eslintrc.json} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename ui/{.eslintrc => .eslintrc.json} (100%) diff --git a/ui/.eslintrc b/ui/.eslintrc.json similarity index 100% rename from ui/.eslintrc rename to ui/.eslintrc.json From 834cc1aaf9ec16c372f0ff81c70e7db9453805f3 Mon Sep 17 00:00:00 2001 From: dalthecow Date: Mon, 12 May 2025 18:52:12 -0400 Subject: [PATCH 06/80] remove .eslintrc --- ui/.prettierignore | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/ui/.prettierignore b/ui/.prettierignore index de8fefb8..ee9e77cf 100644 --- a/ui/.prettierignore +++ b/ui/.prettierignore @@ -3,5 +3,4 @@ /bin /build /public -/.meta -.eslintrc \ No newline at end of file +/.meta \ No newline at end of file From 3ae85e2b801b7675495a4bfec4e05688ab91935c Mon Sep 17 00:00:00 2001 From: dalthecow Date: Mon, 12 May 2025 19:02:17 -0400 Subject: [PATCH 07/80] final updates --- ui/package.json | 2 +- ui/tsconfig.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ui/package.json b/ui/package.json index 80f60cb2..e4159797 100644 --- a/ui/package.json +++ b/ui/package.json @@ -8,7 +8,7 @@ "start": "next start", "lint": "next lint", "format": "prettier --ignore-path .prettierignore --write \"**/*.+(js|ts|jsx|tsx|json)\"", - "prepare": "husky" + "prepare": "husky install" }, "dependencies": { "next": "15.3.2", diff --git a/ui/tsconfig.json b/ui/tsconfig.json index de8c27df..45832226 100644 --- a/ui/tsconfig.json +++ b/ui/tsconfig.json @@ -19,7 +19,7 @@ } ], "paths": { - "@assets/*": ["app/assets/*"] + "@/*": ["./src/*"] }, "resolveJsonModule": true, "skipLibCheck": true, From 50a39ec890ce6318cce4e38f5d3e0ffe7d72224b Mon Sep 17 00:00:00 2001 From: dalthecow Date: Tue, 13 May 2025 11:38:38 -0400 Subject: [PATCH 08/80] sort eslintrc --- ui/.eslintrc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/.eslintrc.json b/ui/.eslintrc.json index 1a99351e..8d47dfa7 100644 --- a/ui/.eslintrc.json +++ b/ui/.eslintrc.json @@ -1,5 +1,4 @@ { - "root": true, "env": { "browser": true, "es2021": true, @@ -17,5 +16,6 @@ "sourceType": "module" }, "plugins": ["@typescript-eslint"], + "root": true, "rules": {} } From 119f05a7ccf0eb93d8b16a22af3876df32ebb801 Mon Sep 17 00:00:00 2001 From: dalthecow Date: Tue, 13 May 2025 11:41:21 -0400 Subject: [PATCH 09/80] sort extensions --- ui/.eslintrc.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ui/.eslintrc.json b/ui/.eslintrc.json index 8d47dfa7..7c15faab 100644 --- a/ui/.eslintrc.json +++ b/ui/.eslintrc.json @@ -5,10 +5,10 @@ "node": true }, "extends": [ + "eslint:recommended", "next/core-web-vitals", "next", - "plugin:@typescript-eslint/recommended", - "eslint:recommended" + "plugin:@typescript-eslint/recommended" ], "parser": "@typescript-eslint/parser", "parserOptions": { From d923f4aa76c70e4bf1f6b68536b6490b246e6489 Mon Sep 17 00:00:00 2001 From: dalthecow Date: Tue, 13 May 2025 11:49:43 -0400 Subject: [PATCH 10/80] sort --- ui/.eslintrc.json | 12 ++++++------ ui/tsconfig.json | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/ui/.eslintrc.json b/ui/.eslintrc.json index 5f3a28d4..983e6a80 100644 --- a/ui/.eslintrc.json +++ b/ui/.eslintrc.json @@ -6,10 +6,10 @@ }, "extends": [ "eslint:recommended", + "next/core-web-vitals", "plugin:@typescript-eslint/eslint-recommended", "plugin:@typescript-eslint/recommended", - "plugin:prettier/recommended", - "next/core-web-vitals" + "plugin:prettier/recommended" ], "ignorePatterns": [".vscode"], "overrides": [ @@ -27,14 +27,14 @@ "jsx": true }, "ecmaVersion": 2018, - "sourceType": "module", - "project": "./tsconfig.json" + "project": "./tsconfig.json", + "sourceType": "module" }, - "plugins": ["@typescript-eslint", "react", "import", "no-secrets"], + "plugins": ["@typescript-eslint", "import", "no-secrets", "react"], "root": true, "rules": { - "curly": ["error", "all"], "complexity": ["warn", { "max": 8 }], + "curly": ["error", "all"], "import/order": [ "error", { diff --git a/ui/tsconfig.json b/ui/tsconfig.json index 45832226..57a5f991 100644 --- a/ui/tsconfig.json +++ b/ui/tsconfig.json @@ -26,6 +26,6 @@ "strict": true, "target": "es5" }, - "include": ["src", "next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], - "exclude": ["node_modules", ".vscode", ".meta/**/*", ".next/**/*"] + "include": ["**/*.ts", "**/*.tsx", ".next/types/**/*.ts", "next-env.d.ts", "src"], + "exclude": [".meta/**/*", ".next/**/*", ".vscode", "node_modules"] } From a515e1243290feaa341646f6b7ac9d1a6bff180f Mon Sep 17 00:00:00 2001 From: dalthecow Date: Tue, 13 May 2025 11:50:42 -0400 Subject: [PATCH 11/80] resort --- ui/.eslintrc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/.eslintrc.json b/ui/.eslintrc.json index 7c15faab..62086f45 100644 --- a/ui/.eslintrc.json +++ b/ui/.eslintrc.json @@ -6,8 +6,8 @@ }, "extends": [ "eslint:recommended", - "next/core-web-vitals", "next", + "next/core-web-vitals", "plugin:@typescript-eslint/recommended" ], "parser": "@typescript-eslint/parser", From ded66cd85ec633cafe091ad07b9e3cb604d52f08 Mon Sep 17 00:00:00 2001 From: dalthecow Date: Tue, 13 May 2025 11:51:07 -0400 Subject: [PATCH 12/80] add extension --- ui/.eslintrc.json | 1 + 1 file changed, 1 insertion(+) diff --git a/ui/.eslintrc.json b/ui/.eslintrc.json index 983e6a80..8213926b 100644 --- a/ui/.eslintrc.json +++ b/ui/.eslintrc.json @@ -6,6 +6,7 @@ }, "extends": [ "eslint:recommended", + "next", "next/core-web-vitals", "plugin:@typescript-eslint/eslint-recommended", "plugin:@typescript-eslint/recommended", From 544899a4fb37981b5f1f106e11242f773cfd8ec7 Mon Sep 17 00:00:00 2001 From: dalthecow Date: Tue, 13 May 2025 11:56:43 -0400 Subject: [PATCH 13/80] add dev workflow --- .github/workflows/ui-development.yml | 35 ++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 .github/workflows/ui-development.yml diff --git a/.github/workflows/ui-development.yml b/.github/workflows/ui-development.yml new file mode 100644 index 00000000..23b839be --- /dev/null +++ b/.github/workflows/ui-development.yml @@ -0,0 +1,35 @@ +name: UI-Development + +on: + pull_request: + types: [opened, synchronize, reopened] + workflow_dispatch: + +jobs: + quality-check: + permissions: + contents: "read" + runs-on: ubuntu-latest + steps: + - name: Check out code + uses: actions/checkout@v3 + + - name: Install dependencies + run: npm ci + + - name: Run quality and typing checks + run: make quality + + precommit-check: + permissions: + contents: "read" + runs-on: ubuntu-latest + steps: + - name: Check out code + uses: actions/checkout@v3 + + - name: Install dependencies + run: npm ci + + - name: Run pre-commit checks + run: npx husky run pre-commit From 026a13faabc095f02a1ab6851db82df1d4ba522c Mon Sep 17 00:00:00 2001 From: dalthecow Date: Tue, 13 May 2025 12:16:06 -0400 Subject: [PATCH 14/80] remove testing pieces --- ui/.eslintignore | 3 +-- ui/.eslintrc.json | 3 +-- ui/package-lock.json | 27 --------------------------- ui/package.json | 1 - 4 files changed, 2 insertions(+), 32 deletions(-) diff --git a/ui/.eslintignore b/ui/.eslintignore index 01582c9e..55371e5c 100644 --- a/ui/.eslintignore +++ b/ui/.eslintignore @@ -1,3 +1,2 @@ node_modules -.vscode -cypress.config.ts \ No newline at end of file +.vscode \ No newline at end of file diff --git a/ui/.eslintrc.json b/ui/.eslintrc.json index 8213926b..da97d0ad 100644 --- a/ui/.eslintrc.json +++ b/ui/.eslintrc.json @@ -1,8 +1,7 @@ { "env": { "browser": true, - "es6": true, - "jest": true + "es6": true }, "extends": [ "eslint:recommended", diff --git a/ui/package-lock.json b/ui/package-lock.json index 17203607..d044cd76 100644 --- a/ui/package-lock.json +++ b/ui/package-lock.json @@ -22,7 +22,6 @@ "eslint-config-next": "14.2.5", "eslint-config-prettier": "^8.5.0", "eslint-plugin-import": "^2.29.1", - "eslint-plugin-jest": "^27.1.5", "eslint-plugin-jsx-a11y": "^6.6.1", "eslint-plugin-no-secrets": "^1.0.2", "eslint-plugin-prettier": "^4.2.1", @@ -2400,32 +2399,6 @@ "semver": "bin/semver.js" } }, - "node_modules/eslint-plugin-jest": { - "version": "27.9.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-27.9.0.tgz", - "integrity": "sha512-QIT7FH7fNmd9n4se7FFKHbsLKGQiw885Ds6Y/sxKgCZ6natwCsXdgPOADnYVxN2QrRweF0FZWbJ6S7Rsn7llug==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/utils": "^5.10.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@typescript-eslint/eslint-plugin": "^5.0.0 || ^6.0.0 || ^7.0.0", - "eslint": "^7.0.0 || ^8.0.0", - "jest": "*" - }, - "peerDependenciesMeta": { - "@typescript-eslint/eslint-plugin": { - "optional": true - }, - "jest": { - "optional": true - } - } - }, "node_modules/eslint-plugin-jsx-a11y": { "version": "6.10.2", "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz", diff --git a/ui/package.json b/ui/package.json index e4159797..a18fdb01 100644 --- a/ui/package.json +++ b/ui/package.json @@ -25,7 +25,6 @@ "eslint-config-next": "14.2.5", "eslint-config-prettier": "^8.5.0", "eslint-plugin-import": "^2.29.1", - "eslint-plugin-jest": "^27.1.5", "eslint-plugin-jsx-a11y": "^6.6.1", "eslint-plugin-no-secrets": "^1.0.2", "eslint-plugin-prettier": "^4.2.1", From fca89c5a93f5ac6a6edd89c04670b4ea539b4b21 Mon Sep 17 00:00:00 2001 From: dalthecow Date: Tue, 13 May 2025 13:12:16 -0400 Subject: [PATCH 15/80] navigate to ui directory for operations --- .github/workflows/ui-development.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/ui-development.yml b/.github/workflows/ui-development.yml index 23b839be..ada0aab7 100644 --- a/.github/workflows/ui-development.yml +++ b/.github/workflows/ui-development.yml @@ -14,6 +14,9 @@ jobs: - name: Check out code uses: actions/checkout@v3 + - name: Navigate to ui directory + run: cd ui + - name: Install dependencies run: npm ci @@ -28,6 +31,9 @@ jobs: - name: Check out code uses: actions/checkout@v3 + - name: Navigate to ui directory + run: cd ui + - name: Install dependencies run: npm ci From b276f175bac8d98447c5875e7ca11685f73df2b4 Mon Sep 17 00:00:00 2001 From: dalthecow Date: Tue, 13 May 2025 13:20:35 -0400 Subject: [PATCH 16/80] navigate to directory --- .github/workflows/ui-development.yml | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/.github/workflows/ui-development.yml b/.github/workflows/ui-development.yml index ada0aab7..df754500 100644 --- a/.github/workflows/ui-development.yml +++ b/.github/workflows/ui-development.yml @@ -14,14 +14,15 @@ jobs: - name: Check out code uses: actions/checkout@v3 - - name: Navigate to ui directory - run: cd ui - - name: Install dependencies - run: npm ci + run: | + cd ui + npm ci - name: Run quality and typing checks - run: make quality + run: | + cd ui + make quality precommit-check: permissions: @@ -31,11 +32,12 @@ jobs: - name: Check out code uses: actions/checkout@v3 - - name: Navigate to ui directory - run: cd ui - - name: Install dependencies - run: npm ci + run: | + cd ui + npm ci - name: Run pre-commit checks - run: npx husky run pre-commit + run: | + cd ui + npx husky run pre-commit From 32e95e9b91884f1b59cab492fc10644f19a2fd10 Mon Sep 17 00:00:00 2001 From: dalthecow Date: Tue, 13 May 2025 13:22:08 -0400 Subject: [PATCH 17/80] add makefile --- ui/Makefile | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 ui/Makefile diff --git a/ui/Makefile b/ui/Makefile new file mode 100644 index 00000000..dd5c9b2f --- /dev/null +++ b/ui/Makefile @@ -0,0 +1,16 @@ +CHECKDIRS := src + + +# Run checks on all files for the repo +quality: + @echo "Running quality checks"; + @# Run eslint checks + npx eslint --max-warnings 10 $(CHECKDIRS) + @# Run TypeScript checks + npx tsc --noEmit + +# Style the code according to accepted standards for the repo +style: + @echo "Running styling"; + @# Auto fix any eslint issues + npx eslint --fix $(CHECKDIRS) \ No newline at end of file From 9faebcf2350687e6c44a12c94cbaf9bb0bc587e3 Mon Sep 17 00:00:00 2001 From: dalthecow Date: Tue, 13 May 2025 14:31:37 -0400 Subject: [PATCH 18/80] upgrade eslint-plugin-prettier, run make style --- ui/package-lock.json | 55 ++++++++++++++++++++++++++++++++++++------- ui/package.json | 2 +- ui/src/app/layout.tsx | 1 - ui/src/app/page.tsx | 31 ++++++------------------ 4 files changed, 55 insertions(+), 34 deletions(-) diff --git a/ui/package-lock.json b/ui/package-lock.json index d044cd76..52e8dced 100644 --- a/ui/package-lock.json +++ b/ui/package-lock.json @@ -24,7 +24,7 @@ "eslint-plugin-import": "^2.29.1", "eslint-plugin-jsx-a11y": "^6.6.1", "eslint-plugin-no-secrets": "^1.0.2", - "eslint-plugin-prettier": "^4.2.1", + "eslint-plugin-prettier": "^5.4.0", "eslint-plugin-react": "^7.31.10", "eslint-plugin-react-hooks": "^5.2.0", "husky": "^9.1.7", @@ -796,6 +796,19 @@ "node": ">=14" } }, + "node_modules/@pkgr/core": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.4.tgz", + "integrity": "sha512-ROFF39F6ZrnzSUEmQQZUar0Jt4xVoP9WnDRdWwF4NNcXs3xBTLgBUDoOwW141y1jP+S8nahIbdxbFC7IShw9Iw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/pkgr" + } + }, "node_modules/@rtsao/scc": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", @@ -2443,22 +2456,31 @@ } }, "node_modules/eslint-plugin-prettier": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", - "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.4.0.tgz", + "integrity": "sha512-BvQOvUhkVQM1i63iMETK9Hjud9QhqBnbtT1Zc642p9ynzBuCe5pybkOnvqZIBypXmMlsGcnU4HZ8sCTPfpAexA==", "dev": true, "license": "MIT", "dependencies": { - "prettier-linter-helpers": "^1.0.0" + "prettier-linter-helpers": "^1.0.0", + "synckit": "^0.11.0" }, "engines": { - "node": ">=12.0.0" + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint-plugin-prettier" }, "peerDependencies": { - "eslint": ">=7.28.0", - "prettier": ">=2.0.0" + "@types/eslint": ">=8.0.0", + "eslint": ">=8.0.0", + "eslint-config-prettier": ">= 7.0.0 <10.0.0 || >=10.1.0", + "prettier": ">=3.0.0" }, "peerDependenciesMeta": { + "@types/eslint": { + "optional": true + }, "eslint-config-prettier": { "optional": true } @@ -5152,6 +5174,23 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/synckit": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.4.tgz", + "integrity": "sha512-Q/XQKRaJiLiFIBNN+mndW7S/RHxvwzuZS6ZwmRzUBqJBv/5QIKCEwkBC8GBf8EQJKYnaFs0wOZbKTXBPj8L9oQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@pkgr/core": "^0.2.3", + "tslib": "^2.8.1" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/synckit" + } + }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", diff --git a/ui/package.json b/ui/package.json index a18fdb01..c36ff8f9 100644 --- a/ui/package.json +++ b/ui/package.json @@ -27,7 +27,7 @@ "eslint-plugin-import": "^2.29.1", "eslint-plugin-jsx-a11y": "^6.6.1", "eslint-plugin-no-secrets": "^1.0.2", - "eslint-plugin-prettier": "^4.2.1", + "eslint-plugin-prettier": "^5.4.0", "eslint-plugin-react": "^7.31.10", "eslint-plugin-react-hooks": "^5.2.0", "husky": "^9.1.7", diff --git a/ui/src/app/layout.tsx b/ui/src/app/layout.tsx index 53f8a3e3..f3d49785 100644 --- a/ui/src/app/layout.tsx +++ b/ui/src/app/layout.tsx @@ -1,5 +1,4 @@ import type { Metadata } from 'next'; -import { Geist, Geist_Mono } from 'next/font/google'; import './globals.css'; export const metadata: Metadata = { diff --git a/ui/src/app/page.tsx b/ui/src/app/page.tsx index 497c6759..bc3fa57c 100644 --- a/ui/src/app/page.tsx +++ b/ui/src/app/page.tsx @@ -1,6 +1,7 @@ -"use client"; -import Image from "next/image"; -import styles from "./page.module.css"; +'use client'; +import Image from 'next/image'; + +import styles from './page.module.css'; export default function Home() { return ( @@ -53,13 +54,7 @@ export default function Home() { target="_blank" rel="noopener noreferrer" > - File icon + File icon Learn - Window icon + Window icon Examples - Globe icon + Globe icon Go to nextjs.org → From d69dc9532e449d98fbed6ee77a2a266e89777128 Mon Sep 17 00:00:00 2001 From: dalthecow Date: Tue, 13 May 2025 17:57:54 -0400 Subject: [PATCH 19/80] add unit/integration/e2e testing --- .github/workflows/ui-development.yml | 32 + ui/.eslintignore | 3 +- ui/.eslintrc.json | 7 +- ui/Makefile | 12 +- ui/cypress.config.ts | 9 + ui/cypress/e2e/homepage.cy.ts | 6 + ui/cypress/support/commands.ts | 37 + ui/cypress/support/e2e.ts | 20 + ui/jest.config.js | 23 + ui/jest.setup.ts | 1 + ui/package-lock.json | 11593 +++++++++++++++++++------ ui/package.json | 19 +- ui/public/file.svg | 1 - ui/public/globe.svg | 1 - ui/public/next.svg | 1 - ui/public/vercel.svg | 1 - ui/public/window.svg | 1 - ui/src/app/favicon.ico | Bin 25931 -> 0 bytes ui/src/app/globals.css | 42 - ui/src/app/layout.tsx | 5 +- ui/src/app/page.module.css | 168 - ui/src/app/page.tsx | 76 +- ui/tests/integration/page.test.tsx | 9 + ui/tests/unit/layout.test.tsx | 14 + ui/tsconfig.json | 16 +- 25 files changed, 9263 insertions(+), 2834 deletions(-) create mode 100644 ui/cypress.config.ts create mode 100644 ui/cypress/e2e/homepage.cy.ts create mode 100644 ui/cypress/support/commands.ts create mode 100644 ui/cypress/support/e2e.ts create mode 100644 ui/jest.config.js create mode 100644 ui/jest.setup.ts delete mode 100644 ui/public/file.svg delete mode 100644 ui/public/globe.svg delete mode 100644 ui/public/next.svg delete mode 100644 ui/public/vercel.svg delete mode 100644 ui/public/window.svg delete mode 100644 ui/src/app/favicon.ico delete mode 100644 ui/src/app/globals.css delete mode 100644 ui/src/app/page.module.css create mode 100644 ui/tests/integration/page.test.tsx create mode 100644 ui/tests/unit/layout.test.tsx diff --git a/.github/workflows/ui-development.yml b/.github/workflows/ui-development.yml index df754500..b5ed2c21 100644 --- a/.github/workflows/ui-development.yml +++ b/.github/workflows/ui-development.yml @@ -41,3 +41,35 @@ jobs: run: | cd ui npx husky run pre-commit + + unit-tests: + permissions: + contents: "read" + runs-on: ubuntu-latest + steps: + - name: Check out code + uses: actions/checkout@v3 + + - name: Install dependencies + run: | + cd ui + npm ci + + - name: Run unit tests + run: make test-unit + + integration-tests: + permissions: + contents: "read" + runs-on: ubuntu-latest + steps: + - name: Check out code + uses: actions/checkout@v3 + + - name: Install dependencies + run: | + cd ui + npm ci + + - name: Run integration tests + run: make test-integration diff --git a/ui/.eslintignore b/ui/.eslintignore index 55371e5c..a783c1bb 100644 --- a/ui/.eslintignore +++ b/ui/.eslintignore @@ -1,2 +1,3 @@ node_modules -.vscode \ No newline at end of file +.vscode +cypress.config.ts diff --git a/ui/.eslintrc.json b/ui/.eslintrc.json index da97d0ad..80aa6d0c 100644 --- a/ui/.eslintrc.json +++ b/ui/.eslintrc.json @@ -1,7 +1,8 @@ { "env": { "browser": true, - "es6": true + "es6": true, + "jest": true }, "extends": [ "eslint:recommended", @@ -11,7 +12,7 @@ "plugin:@typescript-eslint/recommended", "plugin:prettier/recommended" ], - "ignorePatterns": [".vscode"], + "ignorePatterns": [".vscode", "jest.config.js"], "overrides": [ { "files": ["*.mjs"], @@ -30,7 +31,7 @@ "project": "./tsconfig.json", "sourceType": "module" }, - "plugins": ["@typescript-eslint", "import", "no-secrets", "react"], + "plugins": ["@typescript-eslint", "import", "jest", "no-secrets", "react"], "root": true, "rules": { "complexity": ["warn", { "max": 8 }], diff --git a/ui/Makefile b/ui/Makefile index dd5c9b2f..19e095c9 100644 --- a/ui/Makefile +++ b/ui/Makefile @@ -13,4 +13,14 @@ quality: style: @echo "Running styling"; @# Auto fix any eslint issues - npx eslint --fix $(CHECKDIRS) \ No newline at end of file + npx eslint --fix $(CHECKDIRS) + +test-unit: + @echo "Running unit tests"; + @# Run react tests + npm run test:unit + +test-integration: + @echo "Running integration tests"; + @# Run react tests + npm run test:integration \ No newline at end of file diff --git a/ui/cypress.config.ts b/ui/cypress.config.ts new file mode 100644 index 00000000..17161e32 --- /dev/null +++ b/ui/cypress.config.ts @@ -0,0 +1,9 @@ +import { defineConfig } from "cypress"; + +export default defineConfig({ + e2e: { + setupNodeEvents(on, config) { + // implement node event listeners here + }, + }, +}); diff --git a/ui/cypress/e2e/homepage.cy.ts b/ui/cypress/e2e/homepage.cy.ts new file mode 100644 index 00000000..31933a3b --- /dev/null +++ b/ui/cypress/e2e/homepage.cy.ts @@ -0,0 +1,6 @@ +describe('Check if text exists on the page', () => { + it('should find the text on the page', () => { + cy.visit('http://localhost:3000'); + cy.contains('GuideLLM').should('exist'); + }); +}); diff --git a/ui/cypress/support/commands.ts b/ui/cypress/support/commands.ts new file mode 100644 index 00000000..95857aea --- /dev/null +++ b/ui/cypress/support/commands.ts @@ -0,0 +1,37 @@ +/// +// *********************************************** +// This example commands.ts shows you how to +// create various custom commands and overwrite +// existing commands. +// +// For more comprehensive examples of custom +// commands please read more here: +// https://on.cypress.io/custom-commands +// *********************************************** +// +// +// -- This is a parent command -- +// Cypress.Commands.add('login', (email, password) => { ... }) +// +// +// -- This is a child command -- +// Cypress.Commands.add('drag', { prevSubject: 'element'}, (subject, options) => { ... }) +// +// +// -- This is a dual command -- +// Cypress.Commands.add('dismiss', { prevSubject: 'optional'}, (subject, options) => { ... }) +// +// +// -- This will overwrite an existing command -- +// Cypress.Commands.overwrite('visit', (originalFn, url, options) => { ... }) +// +// declare global { +// namespace Cypress { +// interface Chainable { +// login(email: string, password: string): Chainable +// drag(subject: string, options?: Partial): Chainable +// dismiss(subject: string, options?: Partial): Chainable +// visit(originalFn: CommandOriginalFn, url: string, options: Partial): Chainable +// } +// } +// } diff --git a/ui/cypress/support/e2e.ts b/ui/cypress/support/e2e.ts new file mode 100644 index 00000000..598ab5f0 --- /dev/null +++ b/ui/cypress/support/e2e.ts @@ -0,0 +1,20 @@ +// *********************************************************** +// This example support/e2e.ts is processed and +// loaded automatically before your test files. +// +// This is a great place to put global configuration and +// behavior that modifies Cypress. +// +// You can change the location of this file or turn off +// automatically serving support files with the +// 'supportFile' configuration option. +// +// You can read more here: +// https://on.cypress.io/configuration +// *********************************************************** + +// Import commands.js using ES2015 syntax: +import './commands'; + +// Alternatively you can use CommonJS syntax: +// require('./commands') diff --git a/ui/jest.config.js b/ui/jest.config.js new file mode 100644 index 00000000..0ece32a0 --- /dev/null +++ b/ui/jest.config.js @@ -0,0 +1,23 @@ +const nextJest = require('next/jest'); + +const createJestConfig = nextJest({ + dir: './', +}); + +const customJestConfig = { + collectCoverage: false, + collectCoverageFrom: ['src'], + coverageDirectory: './.meta', + coverageReporters: ['json-summary'], + moduleFileExtensions: ['ts', 'tsx', 'js'], + moduleNameMapper: { + '^@/(.*)$': '/src/$1', + }, + setupFilesAfterEnv: ['/jest.setup.ts'], + testEnvironment: 'jest-environment-jsdom', + transform: { + '^.+\\.(ts|tsx)$': 'ts-jest', + }, +}; + +module.exports = createJestConfig(customJestConfig); diff --git a/ui/jest.setup.ts b/ui/jest.setup.ts new file mode 100644 index 00000000..7b0828bf --- /dev/null +++ b/ui/jest.setup.ts @@ -0,0 +1 @@ +import '@testing-library/jest-dom'; diff --git a/ui/package-lock.json b/ui/package-lock.json index 52e8dced..83eec1db 100644 --- a/ui/package-lock.json +++ b/ui/package-lock.json @@ -13,1402 +13,6025 @@ "react-dom": "^19.0.0" }, "devDependencies": { + "@testing-library/jest-dom": "^5.16.5", + "@testing-library/react": "^16.0.0", + "@testing-library/user-event": "^13.5.0", + "@types/jest": "^27.5.2", "@types/node": "^20", "@types/react": "^19", "@types/react-dom": "^19", "@typescript-eslint/eslint-plugin": "^5.43.0", "@typescript-eslint/parser": "^5.43.0", + "cypress": "^13.13.3", "eslint": "^8.27.0", "eslint-config-next": "14.2.5", "eslint-config-prettier": "^8.5.0", "eslint-plugin-import": "^2.29.1", + "eslint-plugin-jest": "^27.1.5", "eslint-plugin-jsx-a11y": "^6.6.1", "eslint-plugin-no-secrets": "^1.0.2", "eslint-plugin-prettier": "^5.4.0", "eslint-plugin-react": "^7.31.10", "eslint-plugin-react-hooks": "^5.2.0", "husky": "^9.1.7", + "jest": "^29.7.0", + "jest-coverage-badges": "^1.1.2", + "jest-environment-jsdom": "^29.7.0", + "jest-runner-groups": "^2.2.0", + "jest-transform-stub": "^2.0.0", "prettier": "^3.5.3", + "ts-jest": "^29.2.4", "tslint-config-prettier": "^1.18.0", "typescript": "^5" } }, - "node_modules/@emnapi/core": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.4.3.tgz", - "integrity": "sha512-4m62DuCE07lw01soJwPiBGC0nAww0Q+RY70VZ+n49yDIO13yyinhbWCeNnaob0lakDtWQzSdtNWzJeOJt2ma+g==", + "node_modules/@adobe/css-tools": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.4.2.tgz", + "integrity": "sha512-baYZExFpsdkBNuvGKTKWCwKH57HRZLVtycZS05WTQNVOiXVSeAki3nU35zlRbToeMW8aHlJfyS+1C4BOv27q0A==", "dev": true, - "optional": true, + "license": "MIT" + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "license": "Apache-2.0", "dependencies": { - "@emnapi/wasi-threads": "1.0.2", - "tslib": "^2.4.0" + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" } }, - "node_modules/@emnapi/runtime": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.4.3.tgz", - "integrity": "sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==", - "optional": true, + "node_modules/@babel/code-frame": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", + "dev": true, + "license": "MIT", "dependencies": { - "tslib": "^2.4.0" + "@babel/helper-validator-identifier": "^7.27.1", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@emnapi/wasi-threads": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.0.2.tgz", - "integrity": "sha512-5n3nTJblwRi8LlXkJ9eBzu+kZR8Yxcc7ubakyQTFzPMtIhFpUBRbsnc2Dv88IZDIbCDlBiWrknhB4Lsz7mg6BA==", + "node_modules/@babel/compat-data": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.27.2.tgz", + "integrity": "sha512-TUtMJYRPyUb/9aU8f3K0mjmjf6M9N5Woshn2CS6nqJSeJtTtQcpLUXjGt9vbF8ZGff0El99sWkLgzwW3VXnxZQ==", "dev": true, - "optional": true, - "dependencies": { - "tslib": "^2.4.0" + "license": "MIT", + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz", - "integrity": "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==", + "node_modules/@babel/core": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.27.1.tgz", + "integrity": "sha512-IaaGWsQqfsQWVLqMn9OB92MNN7zukfVA4s7KKAI0KfrrDsZ0yhi5uV4baBuLuN7n3vsZpwP8asPPcVwApxvjBQ==", "dev": true, + "license": "MIT", "dependencies": { - "eslint-visitor-keys": "^3.4.3" + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.27.1", + "@babel/helper-compilation-targets": "^7.27.1", + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helpers": "^7.27.1", + "@babel/parser": "^7.27.1", + "@babel/template": "^7.27.1", + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=6.9.0" }, "funding": { - "url": "https://opencollective.com/eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + "type": "opencollective", + "url": "https://opencollective.com/babel" } }, - "node_modules/@eslint-community/regexpp": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", - "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "node_modules/@babel/core/node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + "node": ">=6" } }, - "node_modules/@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.1.tgz", + "integrity": "sha512-UnJfnIpc/+JO0/+KRVQNGU+y5taA5vCbwN8+azkX6beii/ZF+enZJSOKo11ZSzGJjlNfJHfQtmQT8H+9TXPG2w==", "dev": true, "license": "MIT", "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" + "@babel/parser": "^7.27.1", + "@babel/types": "^7.27.1", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "node": ">=6.9.0" } }, - "node_modules/@eslint/js": { - "version": "8.57.1", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", - "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", + "node_modules/@babel/helper-compilation-targets": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", "dev": true, "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=6.9.0" } }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", - "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", - "deprecated": "Use @eslint/config-array instead", + "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, - "license": "Apache-2.0", + "license": "ISC", "dependencies": { - "@humanwhocodes/object-schema": "^2.0.3", - "debug": "^4.3.1", - "minimatch": "^3.0.5" + "yallist": "^3.0.2" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", + "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" }, "engines": { - "node": ">=10.10.0" + "node": ">=6.9.0" } }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "node_modules/@babel/helper-module-transforms": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.1.tgz", + "integrity": "sha512-9yHn519/8KvTU5BjTVEEeIM3w9/2yXNKoD82JifINImhpKkARMJKPP59kLo+BafpdN5zgNeIcS4jsGDmd3l58g==", "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, "engines": { - "node": ">=12.22" + "node": ">=6.9.0" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", - "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", - "deprecated": "Use @eslint/object-schema instead", + "node_modules/@babel/helper-plugin-utils": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", + "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", "dev": true, - "license": "BSD-3-Clause" + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } }, - "node_modules/@img/sharp-darwin-arm64": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.1.tgz", - "integrity": "sha512-pn44xgBtgpEbZsu+lWf2KNb6OAf70X68k+yk69Ic2Xz11zHR/w24/U49XT7AeRwJ0Px+mhALhU5LPci1Aymk7A==", - "cpu": [ - "arm64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "darwin" - ], + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "dev": true, + "license": "MIT", "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-darwin-arm64": "1.1.0" + "node": ">=6.9.0" } }, - "node_modules/@img/sharp-darwin-x64": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.1.tgz", - "integrity": "sha512-VfuYgG2r8BpYiOUN+BfYeFo69nP/MIwAtSJ7/Zpxc5QF3KS22z8Pvg3FkrSFJBPNQ7mmcUcYQFBmEQp7eu1F8Q==", - "cpu": [ - "x64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "darwin" - ], + "node_modules/@babel/helper-validator-identifier": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", + "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", + "dev": true, + "license": "MIT", "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-darwin-x64": "1.1.0" + "node": ">=6.9.0" } }, - "node_modules/@img/sharp-libvips-darwin-arm64": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.1.0.tgz", - "integrity": "sha512-HZ/JUmPwrJSoM4DIQPv/BfNh9yrOA8tlBbqbLz4JZ5uew2+o22Ik+tHQJcih7QJuSa0zo5coHTfD5J8inqj9DA==", - "cpu": [ - "arm64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "darwin" - ], - "funding": { - "url": "https://opencollective.com/libvips" + "node_modules/@babel/helper-validator-option": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@img/sharp-libvips-darwin-x64": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.1.0.tgz", - "integrity": "sha512-Xzc2ToEmHN+hfvsl9wja0RlnXEgpKNmftriQp6XzY/RaSfwD9th+MSh0WQKzUreLKKINb3afirxW7A0fz2YWuQ==", - "cpu": [ - "x64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "darwin" - ], - "funding": { - "url": "https://opencollective.com/libvips" + "node_modules/@babel/helpers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.1.tgz", + "integrity": "sha512-FCvFTm0sWV8Fxhpp2McP5/W53GPllQ9QeQ7SiqGWjMf/LVG07lFa5+pgK05IRhVwtvafT22KF+ZSnM9I545CvQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@img/sharp-libvips-linux-arm": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.1.0.tgz", - "integrity": "sha512-s8BAd0lwUIvYCJyRdFqvsj+BJIpDBSxs6ivrOPm/R7piTs5UIwY5OjXrP2bqXC9/moGsyRa37eYWYCOGVXxVrA==", - "cpu": [ - "arm" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" + "node_modules/@babel/parser": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.2.tgz", + "integrity": "sha512-QYLs8299NA7WM/bZAdp+CviYYkVoYXlDW2rzliy3chxd1PQjej7JORuMJDJXJUb9g0TT+B99EwaVLKmX+sPXWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.1" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" } }, - "node_modules/@img/sharp-libvips-linux-arm64": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.1.0.tgz", - "integrity": "sha512-IVfGJa7gjChDET1dK9SekxFFdflarnUB8PwW8aGwEoF3oAsSDuNUTYS+SKDOyOJxQyDC1aPFMuRYLoDInyV9Ew==", - "cpu": [ - "arm64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@img/sharp-libvips-linux-ppc64": { - "version": "1.1.0", + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz", + "integrity": "sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz", + "integrity": "sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.27.1.tgz", + "integrity": "sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.1.tgz", + "integrity": "sha512-1x3D2xEk2fRo3PAhwQwu5UubzgiVWSXTBfWpVd2Mx2AzRqJuDJCsgaDVZ7HB5iGzDW1Hl1sWN2mFyKjmR9uAog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.1.tgz", + "integrity": "sha512-ZCYtZciz1IWJB4U61UPu4KEaqyfj+r5T1Q5mqPo+IBpcG9kHv30Z0aD8LXPgC1trYa6rK0orRyAhqUgk4MjmEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.27.1", + "@babel/parser": "^7.27.1", + "@babel/template": "^7.27.1", + "@babel/types": "^7.27.1", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/types": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.1.tgz", + "integrity": "sha512-+EzkxvLNfiUeKMgy/3luqfsCWFRXLb7U6wNQTk60tovuckwB15B191tJWvpp4HjiQWdJkCxO3Wbvc6jlk3Xb2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@cypress/request": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@cypress/request/-/request-3.0.8.tgz", + "integrity": "sha512-h0NFgh1mJmm1nr4jCwkGHwKneVYKghUyWe6TMNrk0B9zsjAJxpg8C4/+BAcmLgCPa1vj1V8rNUaILl+zYRUWBQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~4.0.0", + "http-signature": "~1.4.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "performance-now": "^2.1.0", + "qs": "6.14.0", + "safe-buffer": "^5.1.2", + "tough-cookie": "^5.0.0", + "tunnel-agent": "^0.6.0", + "uuid": "^8.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@cypress/xvfb": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz", + "integrity": "sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.1.0", + "lodash.once": "^4.1.1" + } + }, + "node_modules/@cypress/xvfb/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/@emnapi/core": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.4.3.tgz", + "integrity": "sha512-4m62DuCE07lw01soJwPiBGC0nAww0Q+RY70VZ+n49yDIO13yyinhbWCeNnaob0lakDtWQzSdtNWzJeOJt2ma+g==", + "dev": true, + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "1.0.2", + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.4.3.tgz", + "integrity": "sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/wasi-threads": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.0.2.tgz", + "integrity": "sha512-5n3nTJblwRi8LlXkJ9eBzu+kZR8Yxcc7ubakyQTFzPMtIhFpUBRbsnc2Dv88IZDIbCDlBiWrknhB4Lsz7mg6BA==", + "dev": true, + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz", + "integrity": "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/js": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", + "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", + "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", + "deprecated": "Use @eslint/config-array instead", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.3", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@img/sharp-darwin-arm64": { + "version": "0.34.1", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.1.tgz", + "integrity": "sha512-pn44xgBtgpEbZsu+lWf2KNb6OAf70X68k+yk69Ic2Xz11zHR/w24/U49XT7AeRwJ0Px+mhALhU5LPci1Aymk7A==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-arm64": "1.1.0" + } + }, + "node_modules/@img/sharp-darwin-x64": { + "version": "0.34.1", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.1.tgz", + "integrity": "sha512-VfuYgG2r8BpYiOUN+BfYeFo69nP/MIwAtSJ7/Zpxc5QF3KS22z8Pvg3FkrSFJBPNQ7mmcUcYQFBmEQp7eu1F8Q==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-x64": "1.1.0" + } + }, + "node_modules/@img/sharp-libvips-darwin-arm64": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.1.0.tgz", + "integrity": "sha512-HZ/JUmPwrJSoM4DIQPv/BfNh9yrOA8tlBbqbLz4JZ5uew2+o22Ik+tHQJcih7QJuSa0zo5coHTfD5J8inqj9DA==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-darwin-x64": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.1.0.tgz", + "integrity": "sha512-Xzc2ToEmHN+hfvsl9wja0RlnXEgpKNmftriQp6XzY/RaSfwD9th+MSh0WQKzUreLKKINb3afirxW7A0fz2YWuQ==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.1.0.tgz", + "integrity": "sha512-s8BAd0lwUIvYCJyRdFqvsj+BJIpDBSxs6ivrOPm/R7piTs5UIwY5OjXrP2bqXC9/moGsyRa37eYWYCOGVXxVrA==", + "cpu": [ + "arm" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm64": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.1.0.tgz", + "integrity": "sha512-IVfGJa7gjChDET1dK9SekxFFdflarnUB8PwW8aGwEoF3oAsSDuNUTYS+SKDOyOJxQyDC1aPFMuRYLoDInyV9Ew==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-ppc64": { + "version": "1.1.0", "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.1.0.tgz", "integrity": "sha512-tiXxFZFbhnkWE2LA8oQj7KYR+bWBkiV2nilRldT7bqoEZ4HiDOcePr9wVDAZPi/Id5fT1oY9iGnDq20cwUz8lQ==", "cpu": [ "ppc64" ], - "license": "LGPL-3.0-or-later", + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-s390x": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.1.0.tgz", + "integrity": "sha512-xukSwvhguw7COyzvmjydRb3x/09+21HykyapcZchiCUkTThEQEOMtBj9UhkaBRLuBrgLFzQ2wbxdeCCJW/jgJA==", + "cpu": [ + "s390x" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-x64": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.1.0.tgz", + "integrity": "sha512-yRj2+reB8iMg9W5sULM3S74jVS7zqSzHG3Ol/twnAAkAhnGQnpjj6e4ayUz7V+FpKypwgs82xbRdYtchTTUB+Q==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-arm64": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.1.0.tgz", + "integrity": "sha512-jYZdG+whg0MDK+q2COKbYidaqW/WTz0cc1E+tMAusiDygrM4ypmSCjOJPmFTvHHJ8j/6cAGyeDWZOsK06tP33w==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-x64": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.1.0.tgz", + "integrity": "sha512-wK7SBdwrAiycjXdkPnGCPLjYb9lD4l6Ze2gSdAGVZrEL05AOUJESWU2lhlC+Ffn5/G+VKuSm6zzbQSzFX/P65A==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-linux-arm": { + "version": "0.34.1", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.1.tgz", + "integrity": "sha512-anKiszvACti2sGy9CirTlNyk7BjjZPiML1jt2ZkTdcvpLU1YH6CXwRAZCA2UmRXnhiIftXQ7+Oh62Ji25W72jA==", + "cpu": [ + "arm" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm": "1.1.0" + } + }, + "node_modules/@img/sharp-linux-arm64": { + "version": "0.34.1", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.1.tgz", + "integrity": "sha512-kX2c+vbvaXC6vly1RDf/IWNXxrlxLNpBVWkdpRq5Ka7OOKj6nr66etKy2IENf6FtOgklkg9ZdGpEu9kwdlcwOQ==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm64": "1.1.0" + } + }, + "node_modules/@img/sharp-linux-s390x": { + "version": "0.34.1", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.1.tgz", + "integrity": "sha512-7s0KX2tI9mZI2buRipKIw2X1ufdTeaRgwmRabt5bi9chYfhur+/C1OXg3TKg/eag1W+6CCWLVmSauV1owmRPxA==", + "cpu": [ + "s390x" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-s390x": "1.1.0" + } + }, + "node_modules/@img/sharp-linux-x64": { + "version": "0.34.1", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.1.tgz", + "integrity": "sha512-wExv7SH9nmoBW3Wr2gvQopX1k8q2g5V5Iag8Zk6AVENsjwd+3adjwxtp3Dcu2QhOXr8W9NusBU6XcQUohBZ5MA==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-x64": "1.1.0" + } + }, + "node_modules/@img/sharp-linuxmusl-arm64": { + "version": "0.34.1", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.1.tgz", + "integrity": "sha512-DfvyxzHxw4WGdPiTF0SOHnm11Xv4aQexvqhRDAoD00MzHekAj9a/jADXeXYCDFH/DzYruwHbXU7uz+H+nWmSOQ==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-arm64": "1.1.0" + } + }, + "node_modules/@img/sharp-linuxmusl-x64": { + "version": "0.34.1", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.1.tgz", + "integrity": "sha512-pax/kTR407vNb9qaSIiWVnQplPcGU8LRIJpDT5o8PdAx5aAA7AS3X9PS8Isw1/WfqgQorPotjrZL3Pqh6C5EBg==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-x64": "1.1.0" + } + }, + "node_modules/@img/sharp-wasm32": { + "version": "0.34.1", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.1.tgz", + "integrity": "sha512-YDybQnYrLQfEpzGOQe7OKcyLUCML4YOXl428gOOzBgN6Gw0rv8dpsJ7PqTHxBnXnwXr8S1mYFSLSa727tpz0xg==", + "cpu": [ + "wasm32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", + "optional": true, + "dependencies": { + "@emnapi/runtime": "^1.4.0" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-ia32": { + "version": "0.34.1", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.1.tgz", + "integrity": "sha512-WKf/NAZITnonBf3U1LfdjoMgNO5JYRSlhovhRhMxXVdvWYveM4kM3L8m35onYIdh75cOMCo1BexgVQcCDzyoWw==", + "cpu": [ + "ia32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-x64": { + "version": "0.34.1", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.1.tgz", + "integrity": "sha512-hw1iIAHpNE8q3uMIRCgGOeDoz9KtFNarFLQclLxr/LK1VBkj8nby18RjFvr6aP7USRYAjTZW6yisnBWMX571Tw==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/core": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/core/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/core/node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/core/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@jest/core/node_modules/jest-config": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/@jest/core/node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/core/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/core/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jest/environment": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "jest-get-type": "^29.6.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect-utils/node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^6.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/reporters/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/source-map": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.18", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-result": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/test-result": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", + "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@napi-rs/wasm-runtime": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.9.tgz", + "integrity": "sha512-OKRBiajrrxB9ATokgEQoG87Z25c67pCpYcCwmXYX8PBftC9pBfN18gnm/fh1wurSLEKIAt+QRFLFCQISrb66Jg==", + "dev": true, + "optional": true, + "dependencies": { + "@emnapi/core": "^1.4.0", + "@emnapi/runtime": "^1.4.0", + "@tybys/wasm-util": "^0.9.0" + } + }, + "node_modules/@next/env": { + "version": "15.3.2", + "resolved": "https://registry.npmjs.org/@next/env/-/env-15.3.2.tgz", + "integrity": "sha512-xURk++7P7qR9JG1jJtLzPzf0qEvqCN0A/T3DXf8IPMKo9/6FfjxtEffRJIIew/bIL4T3C2jLLqBor8B/zVlx6g==", + "license": "MIT" + }, + "node_modules/@next/eslint-plugin-next": { + "version": "14.2.5", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-14.2.5.tgz", + "integrity": "sha512-LY3btOpPh+OTIpviNojDpUdIbHW9j0JBYBjsIp8IxtDFfYFyORvw3yNq6N231FVqQA7n7lwaf7xHbVJlA1ED7g==", + "dev": true, + "license": "MIT", + "dependencies": { + "glob": "10.3.10" + } + }, + "node_modules/@next/swc-darwin-arm64": { + "version": "15.3.2", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.3.2.tgz", + "integrity": "sha512-2DR6kY/OGcokbnCsjHpNeQblqCZ85/1j6njYSkzRdpLn5At7OkSdmk7WyAmB9G0k25+VgqVZ/u356OSoQZ3z0g==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-darwin-x64": { + "version": "15.3.2", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.3.2.tgz", + "integrity": "sha512-ro/fdqaZWL6k1S/5CLv1I0DaZfDVJkWNaUU3un8Lg6m0YENWlDulmIWzV96Iou2wEYyEsZq51mwV8+XQXqMp3w==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-gnu": { + "version": "15.3.2", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.3.2.tgz", + "integrity": "sha512-covwwtZYhlbRWK2HlYX9835qXum4xYZ3E2Mra1mdQ+0ICGoMiw1+nVAn4d9Bo7R3JqSmK1grMq/va+0cdh7bJA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-musl": { + "version": "15.3.2", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.3.2.tgz", + "integrity": "sha512-KQkMEillvlW5Qk5mtGA/3Yz0/tzpNlSw6/3/ttsV1lNtMuOHcGii3zVeXZyi4EJmmLDKYcTcByV2wVsOhDt/zg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-gnu": { + "version": "15.3.2", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.3.2.tgz", + "integrity": "sha512-uRBo6THWei0chz+Y5j37qzx+BtoDRFIkDzZjlpCItBRXyMPIg079eIkOCl3aqr2tkxL4HFyJ4GHDes7W8HuAUg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-musl": { + "version": "15.3.2", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.3.2.tgz", + "integrity": "sha512-+uxFlPuCNx/T9PdMClOqeE8USKzj8tVz37KflT3Kdbx/LOlZBRI2yxuIcmx1mPNK8DwSOMNCr4ureSet7eyC0w==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-arm64-msvc": { + "version": "15.3.2", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.3.2.tgz", + "integrity": "sha512-LLTKmaI5cfD8dVzh5Vt7+OMo+AIOClEdIU/TSKbXXT2iScUTSxOGoBhfuv+FU8R9MLmrkIL1e2fBMkEEjYAtPQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-x64-msvc": { + "version": "15.3.2", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.3.2.tgz", + "integrity": "sha512-aW5B8wOPioJ4mBdMDXkt5f3j8pUr9W8AnlX0Df35uRWNT1Y6RIybxjnSUe+PhM+M1bwgyY8PHLmXZC6zT1o5tA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nolyfill/is-core-module": { + "version": "1.0.39", + "resolved": "https://registry.npmjs.org/@nolyfill/is-core-module/-/is-core-module-1.0.39.tgz", + "integrity": "sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==", + "dev": true, + "engines": { + "node": ">=12.4.0" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@pkgr/core": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.4.tgz", + "integrity": "sha512-ROFF39F6ZrnzSUEmQQZUar0Jt4xVoP9WnDRdWwF4NNcXs3xBTLgBUDoOwW141y1jP+S8nahIbdxbFC7IShw9Iw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/pkgr" + } + }, + "node_modules/@rtsao/scc": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", + "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", + "dev": true + }, + "node_modules/@rushstack/eslint-patch": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.11.0.tgz", + "integrity": "sha512-zxnHvoMQVqewTJr/W4pKjF0bMGiKJv1WX7bSrkl46Hg0QjESbzBROWK0Wg4RphzSOS5Jiy7eFimmM3UgMrMZbQ==", + "dev": true + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@sinonjs/commons": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@sinonjs/commons": "^3.0.0" + } + }, + "node_modules/@swc/counter": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", + "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", + "license": "Apache-2.0" + }, + "node_modules/@swc/helpers": { + "version": "0.5.15", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz", + "integrity": "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.8.0" + } + }, + "node_modules/@testing-library/dom": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.0.tgz", + "integrity": "sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^5.0.1", + "aria-query": "5.3.0", + "chalk": "^4.1.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.5.0", + "pretty-format": "^27.0.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@testing-library/dom/node_modules/aria-query": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/@testing-library/jest-dom": { + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.17.0.tgz", + "integrity": "sha512-ynmNeT7asXyH3aSVv4vvX4Rb+0qjOhdNHnO/3vuZNqPmhDpV/+rCSGwQ7bLcmU2cJ4dvoheIO85LQj0IbJHEtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@adobe/css-tools": "^4.0.1", + "@babel/runtime": "^7.9.2", + "@types/testing-library__jest-dom": "^5.9.1", + "aria-query": "^5.0.0", + "chalk": "^3.0.0", + "css.escape": "^1.5.1", + "dom-accessibility-api": "^0.5.6", + "lodash": "^4.17.15", + "redent": "^3.0.0" + }, + "engines": { + "node": ">=8", + "npm": ">=6", + "yarn": ">=1" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/react": { + "version": "16.3.0", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-16.3.0.tgz", + "integrity": "sha512-kFSyxiEDwv1WLl2fgsq6pPBbw5aWKrsY2/noi1Id0TK0UParSF62oFQFGHXIyaG4pp2tEub/Zlel+fjjZILDsw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.5" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@testing-library/dom": "^10.0.0", + "@types/react": "^18.0.0 || ^19.0.0", + "@types/react-dom": "^18.0.0 || ^19.0.0", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@testing-library/user-event": { + "version": "13.5.0", + "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-13.5.0.tgz", + "integrity": "sha512-5Kwtbo3Y/NowpkbRuSepbyMFkZmHgD+vPzYB/RJ4oxt5Gj/avFFBYjhw27cqSVPVw/3a67NK1PbiIr9k4Gwmdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.5" + }, + "engines": { + "node": ">=10", + "npm": ">=6" + }, + "peerDependencies": { + "@testing-library/dom": ">=7.21.4" + } + }, + "node_modules/@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tybys/wasm-util": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.9.0.tgz", + "integrity": "sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==", + "dev": true, + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@types/aria-query": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", + "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", + "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.7.tgz", + "integrity": "sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/jest": { + "version": "27.5.2", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.5.2.tgz", + "integrity": "sha512-mpT8LJJ4CMeeahobofYWIjFo0xonRS/HfxnVEPMPFSQdGUt1uHCnoPT7Zhb+sjDU2wz0oKV0OLUR0WzrHNgfeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "jest-matcher-utils": "^27.0.0", + "pretty-format": "^27.0.0" + } + }, + "node_modules/@types/jsdom": { + "version": "20.0.1", + "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-20.0.1.tgz", + "integrity": "sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@types/tough-cookie": "*", + "parse5": "^7.0.0" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, + "node_modules/@types/node": { + "version": "20.17.46", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.46.tgz", + "integrity": "sha512-0PQHLhZPWOxGW4auogW0eOQAuNIlCYvibIpG67ja0TOJ6/sehu+1en7sfceUn+QQtx4Rk3GxbLNwPh0Cav7TWw==", + "dev": true, + "dependencies": { + "undici-types": "~6.19.2" + } + }, + "node_modules/@types/react": { + "version": "19.1.3", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.3.tgz", + "integrity": "sha512-dLWQ+Z0CkIvK1J8+wrDPwGxEYFA4RAyHoZPxHVGspYmFVnwGSNT24cGIhFJrtfRnWVuW8X7NO52gCXmhkVUWGQ==", + "dev": true, + "dependencies": { + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "19.1.3", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.1.3.tgz", + "integrity": "sha512-rJXC08OG0h3W6wDMFxQrZF00Kq6qQvw0djHRdzl3U5DnIERz0MRce3WVc7IS6JYBwtaP/DwYtRRjVlvivNveKg==", + "dev": true, + "peerDependencies": { + "@types/react": "^19.0.0" + } + }, + "node_modules/@types/semver": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.7.0.tgz", + "integrity": "sha512-k107IF4+Xr7UHjwDc7Cfd6PRQfbdkiRabXGRjo07b4WyPahFBZCZ1sE+BNxYIJPPg73UkfOsVOLwqVc/6ETrIA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/sinonjs__fake-timers": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz", + "integrity": "sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/sizzle": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.9.tgz", + "integrity": "sha512-xzLEyKB50yqCUPUJkIsrVvoWNfFUbIZI+RspLWt8u+tIW/BetMBZtgV2LY/2o+tYH8dRvQ+eoPf3NdhQCcLE2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/testing-library__jest-dom": { + "version": "5.14.9", + "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.9.tgz", + "integrity": "sha512-FSYhIjFlfOpGSRyVoMBMuS3ws5ehFQODymf3vlI7U1K8c7PHwWwFY7VREfmsuzHSOnoKs/9/Y983ayOs7eRzqw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/jest": "*" + } + }, + "node_modules/@types/tough-cookie": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz", + "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/yargs": { + "version": "17.0.33", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", + "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/yauzl": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", + "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", + "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.4.0", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/type-utils": "5.62.0", + "@typescript-eslint/utils": "5.62.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", + "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", + "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", + "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/typescript-estree": "5.62.0", + "@typescript-eslint/utils": "5.62.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", + "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", + "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", + "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", + "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", + "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", + "dev": true, + "license": "ISC" + }, + "node_modules/@unrs/resolver-binding-darwin-arm64": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.7.2.tgz", + "integrity": "sha512-vxtBno4xvowwNmO/ASL0Y45TpHqmNkAaDtz4Jqb+clmcVSSl8XCG/PNFFkGsXXXS6AMjP+ja/TtNCFFa1QwLRg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@unrs/resolver-binding-darwin-x64": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.7.2.tgz", + "integrity": "sha512-qhVa8ozu92C23Hsmv0BF4+5Dyyd5STT1FolV4whNgbY6mj3kA0qsrGPe35zNR3wAN7eFict3s4Rc2dDTPBTuFQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@unrs/resolver-binding-freebsd-x64": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.7.2.tgz", + "integrity": "sha512-zKKdm2uMXqLFX6Ac7K5ElnnG5VIXbDlFWzg4WJ8CGUedJryM5A3cTgHuGMw1+P5ziV8CRhnSEgOnurTI4vpHpg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm-gnueabihf": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.7.2.tgz", + "integrity": "sha512-8N1z1TbPnHH+iDS/42GJ0bMPLiGK+cUqOhNbMKtWJ4oFGzqSJk/zoXFzcQkgtI63qMcUI7wW1tq2usZQSb2jxw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm-musleabihf": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.7.2.tgz", + "integrity": "sha512-tjYzI9LcAXR9MYd9rO45m1s0B/6bJNuZ6jeOxo1pq1K6OBuRMMmfyvJYval3s9FPPGmrldYA3mi4gWDlWuTFGA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm64-gnu": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.7.2.tgz", + "integrity": "sha512-jon9M7DKRLGZ9VYSkFMflvNqu9hDtOCEnO2QAryFWgT6o6AXU8du56V7YqnaLKr6rAbZBWYsYpikF226v423QA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm64-musl": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.7.2.tgz", + "integrity": "sha512-c8Cg4/h+kQ63pL43wBNaVMmOjXI/X62wQmru51qjfTvI7kmCy5uHTJvK/9LrF0G8Jdx8r34d019P1DVJmhXQpA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-ppc64-gnu": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.7.2.tgz", + "integrity": "sha512-A+lcwRFyrjeJmv3JJvhz5NbcCkLQL6Mk16kHTNm6/aGNc4FwPHPE4DR9DwuCvCnVHvF5IAd9U4VIs/VvVir5lg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-riscv64-gnu": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.7.2.tgz", + "integrity": "sha512-hQQ4TJQrSQW8JlPm7tRpXN8OCNP9ez7PajJNjRD1ZTHQAy685OYqPrKjfaMw/8LiHCt8AZ74rfUVHP9vn0N69Q==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-riscv64-musl": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.7.2.tgz", + "integrity": "sha512-NoAGbiqrxtY8kVooZ24i70CjLDlUFI7nDj3I9y54U94p+3kPxwd2L692YsdLa+cqQ0VoqMWoehDFp21PKRUoIQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-s390x-gnu": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.7.2.tgz", + "integrity": "sha512-KaZByo8xuQZbUhhreBTW+yUnOIHUsv04P8lKjQ5otiGoSJ17ISGYArc+4vKdLEpGaLbemGzr4ZeUbYQQsLWFjA==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-x64-gnu": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.7.2.tgz", + "integrity": "sha512-dEidzJDubxxhUCBJ/SHSMJD/9q7JkyfBMT77Px1npl4xpg9t0POLvnWywSk66BgZS/b2Hy9Y1yFaoMTFJUe9yg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-x64-musl": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.7.2.tgz", + "integrity": "sha512-RvP+Ux3wDjmnZDT4XWFfNBRVG0fMsc+yVzNFUqOflnDfZ9OYujv6nkh+GOr+watwrW4wdp6ASfG/e7bkDradsw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-wasm32-wasi": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.7.2.tgz", + "integrity": "sha512-y797JBmO9IsvXVRCKDXOxjyAE4+CcZpla2GSoBQ33TVb3ILXuFnMrbR/QQZoauBYeOFuu4w3ifWLw52sdHGz6g==", + "cpu": [ + "wasm32" + ], + "dev": true, + "optional": true, + "dependencies": { + "@napi-rs/wasm-runtime": "^0.2.9" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@unrs/resolver-binding-win32-arm64-msvc": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.7.2.tgz", + "integrity": "sha512-gtYTh4/VREVSLA+gHrfbWxaMO/00y+34htY7XpioBTy56YN2eBjkPrY1ML1Zys89X3RJDKVaogzwxlM1qU7egg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@unrs/resolver-binding-win32-ia32-msvc": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.7.2.tgz", + "integrity": "sha512-Ywv20XHvHTDRQs12jd3MY8X5C8KLjDbg/jyaal/QLKx3fAShhJyD4blEANInsjxW3P7isHx1Blt56iUDDJO3jg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@unrs/resolver-binding-win32-x64-msvc": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.7.2.tgz", + "integrity": "sha512-friS8NEQfHaDbkThxopGk+LuE5v3iY0StruifjQEt7SLbA46OnfgMO15sOTkbpJkol6RB+1l1TYPXh0sCddpvA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/abab": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "deprecated": "Use your platform's native atob() and btoa() methods instead", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/acorn": { + "version": "8.14.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", + "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-globals": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-7.0.1.tgz", + "integrity": "sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.1.0", + "acorn-walk": "^8.0.2" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", + "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.11.0" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arch": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", + "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/aria-query": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", + "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", + "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/array.prototype.findlast": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", + "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz", + "integrity": "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "es-shim-unscopables": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", + "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", + "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", + "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", + "dev": true, + "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" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", + "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/ast-types-flow": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", + "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==", + "dev": true + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/async": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", + "dev": true, + "license": "MIT" + }, + "node_modules/async-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", + "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "*" + } + }, + "node_modules/aws4": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.13.2.tgz", + "integrity": "sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==", + "dev": true, + "license": "MIT" + }, + "node_modules/axe-core": { + "version": "4.10.3", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.10.3.tgz", + "integrity": "sha512-Xm7bpRXnDSX2YE2YFfBk2FnF0ep6tmG7xPh8iHee8MIcrgq762Nkce856dYtJYLkuIoYZvGfTs/PbZhideTcEg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/axobject-query": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/babel-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/transform": "^29.7.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.6.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.1.0.tgz", + "integrity": "sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-import-attributes": "^7.24.7", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-plugin-jest-hoist": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/blob-util": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/blob-util/-/blob-util-2.0.2.tgz", + "integrity": "sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true, + "license": "MIT" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.24.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.5.tgz", + "integrity": "sha512-FDToo4Wo82hIdgc1CQ+NQD0hEhmpPjrZ3hiUgwgOG6IuTdlpr8jdjyG24P6cNP1yJpTLzS5OcGgSw0xmDU1/Tw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001716", + "electron-to-chromium": "^1.5.149", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.3" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bs-logger": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", + "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-json-stable-stringify": "2.x" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dependencies": { + "streamsearch": "^1.1.0" + }, + "engines": { + "node": ">=10.16.0" + } + }, + "node_modules/cachedir": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.4.0.tgz", + "integrity": "sha512-9EtFOZR8g22CL7BWjJ9BUx1+A/djkofnyW3aOXZORNW2kxoUpx2h+uN2cOqwPmFhnpVmxg+KW2OjOSgChTEvsQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/call-bind": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "dev": true, + "dependencies": { + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "dev": true, + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001717", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001717.tgz", + "integrity": "sha512-auPpttCq6BDEG8ZAuHJIplGw6GODhjw+/11e7IjpnYCxZcW/ONgPs0KVBJ0d1bY3e2+7PRe5RCLyP+PfwVgkYw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/check-more-types": { + "version": "2.24.0", + "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", + "integrity": "sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/ci-info": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.2.0.tgz", + "integrity": "sha512-cYY9mypksY8NRqgDB1XD1RiJL338v/551niynFTGkZOO2LHuB2OmOYxDIe/ttN9AHwrqdum1360G3ald0W9kCg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.3.tgz", + "integrity": "sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-table3": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.5.tgz", + "integrity": "sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "string-width": "^4.2.0" + }, + "engines": { + "node": "10.* || >= 12.*" + }, + "optionalDependencies": { + "@colors/colors": "1.5.0" + } + }, + "node_modules/cli-table3/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/cli-table3/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-truncate": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", + "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", + "dev": true, + "license": "MIT", + "dependencies": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-truncate/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/cli-truncate/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/client-only": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", + "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==", + "license": "MIT" + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/cliui/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/color": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", + "license": "MIT", "optional": true, - "os": [ - "linux" + "dependencies": { + "color-convert": "^2.0.1", + "color-string": "^1.9.0" + }, + "engines": { + "node": ">=12.5.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "devOptional": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "devOptional": true + }, + "node_modules/color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "license": "MIT", + "optional": true, + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/common-tags": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", + "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/create-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "prompts": "^2.0.1" + }, + "bin": { + "create-jest": "bin/create-jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/create-jest/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/create-jest/node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } ], + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/create-jest/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, "funding": { - "url": "https://opencollective.com/libvips" + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/create-jest/node_modules/jest-config": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/create-jest/node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/create-jest/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/create-jest/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css.escape": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", + "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cssom": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", + "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==", + "dev": true, + "license": "MIT" + }, + "node_modules/cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssom": "~0.3.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cssstyle/node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true, + "license": "MIT" + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "dev": true + }, + "node_modules/cypress": { + "version": "13.17.0", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.17.0.tgz", + "integrity": "sha512-5xWkaPurwkIljojFidhw8lFScyxhtiFHl/i/3zov+1Z5CmY4t9tjIdvSXfu82Y3w7wt0uR9KkucbhkVvJZLQSA==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "@cypress/request": "^3.0.6", + "@cypress/xvfb": "^1.2.4", + "@types/sinonjs__fake-timers": "8.1.1", + "@types/sizzle": "^2.3.2", + "arch": "^2.2.0", + "blob-util": "^2.0.2", + "bluebird": "^3.7.2", + "buffer": "^5.7.1", + "cachedir": "^2.3.0", + "chalk": "^4.1.0", + "check-more-types": "^2.24.0", + "ci-info": "^4.0.0", + "cli-cursor": "^3.1.0", + "cli-table3": "~0.6.1", + "commander": "^6.2.1", + "common-tags": "^1.8.0", + "dayjs": "^1.10.4", + "debug": "^4.3.4", + "enquirer": "^2.3.6", + "eventemitter2": "6.4.7", + "execa": "4.1.0", + "executable": "^4.1.1", + "extract-zip": "2.0.1", + "figures": "^3.2.0", + "fs-extra": "^9.1.0", + "getos": "^3.2.1", + "is-installed-globally": "~0.4.0", + "lazy-ass": "^1.6.0", + "listr2": "^3.8.3", + "lodash": "^4.17.21", + "log-symbols": "^4.0.0", + "minimist": "^1.2.8", + "ospath": "^1.2.2", + "pretty-bytes": "^5.6.0", + "process": "^0.11.10", + "proxy-from-env": "1.0.0", + "request-progress": "^3.0.0", + "semver": "^7.5.3", + "supports-color": "^8.1.1", + "tmp": "~0.2.3", + "tree-kill": "1.2.2", + "untildify": "^4.0.0", + "yauzl": "^2.10.0" + }, + "bin": { + "cypress": "bin/cypress" + }, + "engines": { + "node": "^16.0.0 || ^18.0.0 || >=20.0.0" + } + }, + "node_modules/cypress/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/damerau-levenshtein": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", + "dev": true + }, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "dev": true, + "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/data-urls": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz", + "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "abab": "^2.0.6", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^11.0.0" + }, + "engines": { + "node": ">=12" } }, - "node_modules/@img/sharp-libvips-linux-s390x": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.1.0.tgz", - "integrity": "sha512-xukSwvhguw7COyzvmjydRb3x/09+21HykyapcZchiCUkTThEQEOMtBj9UhkaBRLuBrgLFzQ2wbxdeCCJW/jgJA==", - "cpu": [ - "s390x" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], + "node_modules/data-view-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, "funding": { - "url": "https://opencollective.com/libvips" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@img/sharp-libvips-linux-x64": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.1.0.tgz", - "integrity": "sha512-yRj2+reB8iMg9W5sULM3S74jVS7zqSzHG3Ol/twnAAkAhnGQnpjj6e4ayUz7V+FpKypwgs82xbRdYtchTTUB+Q==", - "cpu": [ - "x64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], + "node_modules/data-view-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, "funding": { - "url": "https://opencollective.com/libvips" + "url": "https://github.com/sponsors/inspect-js" } }, - "node_modules/@img/sharp-libvips-linuxmusl-arm64": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.1.0.tgz", - "integrity": "sha512-jYZdG+whg0MDK+q2COKbYidaqW/WTz0cc1E+tMAusiDygrM4ypmSCjOJPmFTvHHJ8j/6cAGyeDWZOsK06tP33w==", - "cpu": [ - "arm64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], + "node_modules/data-view-byte-offset": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, "funding": { - "url": "https://opencollective.com/libvips" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@img/sharp-libvips-linuxmusl-x64": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.1.0.tgz", - "integrity": "sha512-wK7SBdwrAiycjXdkPnGCPLjYb9lD4l6Ze2gSdAGVZrEL05AOUJESWU2lhlC+Ffn5/G+VKuSm6zzbQSzFX/P65A==", - "cpu": [ - "x64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } + "node_modules/dayjs": { + "version": "1.11.13", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", + "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==", + "dev": true, + "license": "MIT" }, - "node_modules/@img/sharp-linux-arm": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.1.tgz", - "integrity": "sha512-anKiszvACti2sGy9CirTlNyk7BjjZPiML1jt2ZkTdcvpLU1YH6CXwRAZCA2UmRXnhiIftXQ7+Oh62Ji25W72jA==", - "cpu": [ - "arm" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], + "node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "dependencies": { + "ms": "^2.1.3" + }, "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">=6.0" }, - "funding": { - "url": "https://opencollective.com/libvips" + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decimal.js": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.5.0.tgz", + "integrity": "sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==", + "dev": true, + "license": "MIT" + }, + "node_modules/dedent": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.6.0.tgz", + "integrity": "sha512-F1Z+5UCFpmQUzJa11agbyPVMbpgT/qA3/SKyJ1jyBgm7dUcUEa8v9JwDkerSQXfakBwFljIxhOJqGkjUwZ9FSA==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" }, - "optionalDependencies": { - "@img/sharp-libvips-linux-arm": "1.1.0" + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } } }, - "node_modules/@img/sharp-linux-arm64": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.1.tgz", - "integrity": "sha512-kX2c+vbvaXC6vly1RDf/IWNXxrlxLNpBVWkdpRq5Ka7OOKj6nr66etKy2IENf6FtOgklkg9ZdGpEu9kwdlcwOQ==", - "cpu": [ - "arm64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "license": "MIT", "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">=0.10.0" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { - "url": "https://opencollective.com/libvips" + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" }, - "optionalDependencies": { - "@img/sharp-libvips-linux-arm64": "1.1.0" + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@img/sharp-linux-s390x": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.1.tgz", - "integrity": "sha512-7s0KX2tI9mZI2buRipKIw2X1ufdTeaRgwmRabt5bi9chYfhur+/C1OXg3TKg/eag1W+6CCWLVmSauV1owmRPxA==", - "cpu": [ - "s390x" - ], + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/detect-libc": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz", + "integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==", "license": "Apache-2.0", "optional": true, - "os": [ - "linux" - ], "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" + "node": ">=8" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/diff-sequences": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", + "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" }, - "optionalDependencies": { - "@img/sharp-libvips-linux-s390x": "1.1.0" + "engines": { + "node": ">=8" } }, - "node_modules/@img/sharp-linux-x64": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.1.tgz", - "integrity": "sha512-wExv7SH9nmoBW3Wr2gvQopX1k8q2g5V5Iag8Zk6AVENsjwd+3adjwxtp3Dcu2QhOXr8W9NusBU6XcQUohBZ5MA==", - "cpu": [ - "x64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], + "node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">=0.10.0" + } + }, + "node_modules/dom-accessibility-api": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", + "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==", + "dev": true, + "license": "MIT" + }, + "node_modules/domexception": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", + "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", + "deprecated": "Use your platform's native DOMException instead", + "dev": true, + "license": "MIT", + "dependencies": { + "webidl-conversions": "^7.0.0" }, - "funding": { - "url": "https://opencollective.com/libvips" + "engines": { + "node": ">=12" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" }, - "optionalDependencies": { - "@img/sharp-libvips-linux-x64": "1.1.0" + "engines": { + "node": ">= 0.4" } }, - "node_modules/@img/sharp-linuxmusl-arm64": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.1.tgz", - "integrity": "sha512-DfvyxzHxw4WGdPiTF0SOHnm11Xv4aQexvqhRDAoD00MzHekAj9a/jADXeXYCDFH/DzYruwHbXU7uz+H+nWmSOQ==", - "cpu": [ - "arm64" - ], + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true, + "license": "MIT" + }, + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", + "dev": true, + "license": "MIT", + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/ejs": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", + "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", + "dev": true, "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "dependencies": { + "jake": "^10.8.5" }, - "funding": { - "url": "https://opencollective.com/libvips" + "bin": { + "ejs": "bin/cli.js" }, - "optionalDependencies": { - "@img/sharp-libvips-linuxmusl-arm64": "1.1.0" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/@img/sharp-linuxmusl-x64": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.1.tgz", - "integrity": "sha512-pax/kTR407vNb9qaSIiWVnQplPcGU8LRIJpDT5o8PdAx5aAA7AS3X9PS8Isw1/WfqgQorPotjrZL3Pqh6C5EBg==", - "cpu": [ - "x64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], + "node_modules/electron-to-chromium": { + "version": "1.5.152", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.152.tgz", + "integrity": "sha512-xBOfg/EBaIlVsHipHl2VdTPJRSvErNUaqW8ejTq5OlOlIYx1wOllCHsAvAIrr55jD1IYEfdR86miUEt8H5IeJg==", + "dev": true, + "license": "ISC" + }, + "node_modules/emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "dev": true, + "license": "MIT", "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">=12" }, "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linuxmusl-x64": "1.1.0" + "url": "https://github.com/sindresorhus/emittery?sponsor=1" } }, - "node_modules/@img/sharp-wasm32": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.1.tgz", - "integrity": "sha512-YDybQnYrLQfEpzGOQe7OKcyLUCML4YOXl428gOOzBgN6Gw0rv8dpsJ7PqTHxBnXnwXr8S1mYFSLSa727tpz0xg==", - "cpu": [ - "wasm32" - ], - "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", - "optional": true, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "license": "MIT", "dependencies": { - "@emnapi/runtime": "^1.4.0" + "once": "^1.4.0" + } + }, + "node_modules/enquirer": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", + "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-colors": "^4.1.1", + "strip-ansi": "^6.0.1" }, "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" + "node": ">=8.6" } }, - "node_modules/@img/sharp-win32-ia32": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.1.tgz", - "integrity": "sha512-WKf/NAZITnonBf3U1LfdjoMgNO5JYRSlhovhRhMxXVdvWYveM4kM3L8m35onYIdh75cOMCo1BexgVQcCDzyoWw==", - "cpu": [ - "ia32" - ], - "license": "Apache-2.0 AND LGPL-3.0-or-later", - "optional": true, - "os": [ - "win32" - ], + "node_modules/entities": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.0.tgz", + "integrity": "sha512-aKstq2TDOndCn4diEyp9Uq/Flu2i1GlLkc6XIDQSDMuaFE3OPW5OphLCyQ5SpSJZTb4reN+kTcYru5yIfXoRPw==", + "dev": true, + "license": "BSD-2-Clause", "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">=0.12" }, "funding": { - "url": "https://opencollective.com/libvips" + "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/@img/sharp-win32-x64": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.1.tgz", - "integrity": "sha512-hw1iIAHpNE8q3uMIRCgGOeDoz9KtFNarFLQclLxr/LK1VBkj8nby18RjFvr6aP7USRYAjTZW6yisnBWMX571Tw==", - "cpu": [ - "x64" - ], - "license": "Apache-2.0 AND LGPL-3.0-or-later", - "optional": true, - "os": [ - "win32" - ], + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/error-ex/node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true, + "license": "MIT" + }, + "node_modules/es-abstract": { + "version": "1.23.9", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz", + "integrity": "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.2", + "arraybuffer.prototype.slice": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "data-view-buffer": "^1.0.2", + "data-view-byte-length": "^1.0.2", + "data-view-byte-offset": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.1.0", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.0", + "get-symbol-description": "^1.1.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "internal-slot": "^1.1.0", + "is-array-buffer": "^3.0.5", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.2", + "is-regex": "^1.2.1", + "is-shared-array-buffer": "^1.0.4", + "is-string": "^1.1.1", + "is-typed-array": "^1.1.15", + "is-weakref": "^1.1.0", + "math-intrinsics": "^1.1.0", + "object-inspect": "^1.13.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.7", + "own-keys": "^1.0.1", + "regexp.prototype.flags": "^1.5.3", + "safe-array-concat": "^1.1.3", + "safe-push-apply": "^1.0.0", + "safe-regex-test": "^1.1.0", + "set-proto": "^1.0.0", + "string.prototype.trim": "^1.2.10", + "string.prototype.trimend": "^1.0.9", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.3", + "typed-array-byte-length": "^1.0.3", + "typed-array-byte-offset": "^1.0.4", + "typed-array-length": "^1.0.7", + "unbox-primitive": "^1.1.0", + "which-typed-array": "^1.1.18" + }, "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">= 0.4" }, "funding": { - "url": "https://opencollective.com/libvips" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, "engines": { - "node": ">=12" + "node": ">= 0.4" } }, - "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", "dev": true, - "license": "MIT", "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "node": ">= 0.4" } }, - "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "node_modules/es-iterator-helpers": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.1.tgz", + "integrity": "sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==", "dev": true, - "license": "MIT", "dependencies": { - "ansi-regex": "^6.0.1" + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.6", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.3", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.6", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "iterator.prototype": "^1.1.4", + "safe-array-concat": "^1.1.3" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "node": ">= 0.4" } }, - "node_modules/@napi-rs/wasm-runtime": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.9.tgz", - "integrity": "sha512-OKRBiajrrxB9ATokgEQoG87Z25c67pCpYcCwmXYX8PBftC9pBfN18gnm/fh1wurSLEKIAt+QRFLFCQISrb66Jg==", + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", "dev": true, - "optional": true, "dependencies": { - "@emnapi/core": "^1.4.0", - "@emnapi/runtime": "^1.4.0", - "@tybys/wasm-util": "^0.9.0" + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" } }, - "node_modules/@next/env": { - "version": "15.3.2", - "resolved": "https://registry.npmjs.org/@next/env/-/env-15.3.2.tgz", - "integrity": "sha512-xURk++7P7qR9JG1jJtLzPzf0qEvqCN0A/T3DXf8IPMKo9/6FfjxtEffRJIIew/bIL4T3C2jLLqBor8B/zVlx6g==", - "license": "MIT" - }, - "node_modules/@next/eslint-plugin-next": { - "version": "14.2.5", - "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-14.2.5.tgz", - "integrity": "sha512-LY3btOpPh+OTIpviNojDpUdIbHW9j0JBYBjsIp8IxtDFfYFyORvw3yNq6N231FVqQA7n7lwaf7xHbVJlA1ED7g==", + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", "dev": true, - "license": "MIT", "dependencies": { - "glob": "10.3.10" - } - }, - "node_modules/@next/swc-darwin-arm64": { - "version": "15.3.2", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.3.2.tgz", - "integrity": "sha512-2DR6kY/OGcokbnCsjHpNeQblqCZ85/1j6njYSkzRdpLn5At7OkSdmk7WyAmB9G0k25+VgqVZ/u356OSoQZ3z0g==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-darwin-x64": { - "version": "15.3.2", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.3.2.tgz", - "integrity": "sha512-ro/fdqaZWL6k1S/5CLv1I0DaZfDVJkWNaUU3un8Lg6m0YENWlDulmIWzV96Iou2wEYyEsZq51mwV8+XQXqMp3w==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, "engines": { - "node": ">= 10" + "node": ">= 0.4" } }, - "node_modules/@next/swc-linux-arm64-gnu": { - "version": "15.3.2", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.3.2.tgz", - "integrity": "sha512-covwwtZYhlbRWK2HlYX9835qXum4xYZ3E2Mra1mdQ+0ICGoMiw1+nVAn4d9Bo7R3JqSmK1grMq/va+0cdh7bJA==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], + "node_modules/es-shim-unscopables": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", + "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.2" + }, "engines": { - "node": ">= 10" + "node": ">= 0.4" } }, - "node_modules/@next/swc-linux-arm64-musl": { - "version": "15.3.2", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.3.2.tgz", - "integrity": "sha512-KQkMEillvlW5Qk5mtGA/3Yz0/tzpNlSw6/3/ttsV1lNtMuOHcGii3zVeXZyi4EJmmLDKYcTcByV2wVsOhDt/zg==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], + "node_modules/es-to-primitive": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", + "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", + "dev": true, + "dependencies": { + "is-callable": "^1.2.7", + "is-date-object": "^1.0.5", + "is-symbol": "^1.0.4" + }, "engines": { - "node": ">= 10" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@next/swc-linux-x64-gnu": { - "version": "15.3.2", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.3.2.tgz", - "integrity": "sha512-uRBo6THWei0chz+Y5j37qzx+BtoDRFIkDzZjlpCItBRXyMPIg079eIkOCl3aqr2tkxL4HFyJ4GHDes7W8HuAUg==", - "cpu": [ - "x64" - ], + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ], "engines": { - "node": ">= 10" + "node": ">=6" } }, - "node_modules/@next/swc-linux-x64-musl": { - "version": "15.3.2", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.3.2.tgz", - "integrity": "sha512-+uxFlPuCNx/T9PdMClOqeE8USKzj8tVz37KflT3Kdbx/LOlZBRI2yxuIcmx1mPNK8DwSOMNCr4ureSet7eyC0w==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, "engines": { - "node": ">= 10" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@next/swc-win32-arm64-msvc": { - "version": "15.3.2", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.3.2.tgz", - "integrity": "sha512-LLTKmaI5cfD8dVzh5Vt7+OMo+AIOClEdIU/TSKbXXT2iScUTSxOGoBhfuv+FU8R9MLmrkIL1e2fBMkEEjYAtPQ==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], + "node_modules/escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, "engines": { - "node": ">= 10" + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" } }, - "node_modules/@next/swc-win32-x64-msvc": { - "version": "15.3.2", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.3.2.tgz", - "integrity": "sha512-aW5B8wOPioJ4mBdMDXkt5f3j8pUr9W8AnlX0Df35uRWNT1Y6RIybxjnSUe+PhM+M1bwgyY8PHLmXZC6zT1o5tA==", - "cpu": [ - "x64" - ], + "node_modules/eslint": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", + "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", + "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", + "dev": true, "license": "MIT", - "optional": true, - "os": [ - "win32" - ], + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.1", + "@humanwhocodes/config-array": "^0.13.0", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "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.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "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.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, "engines": { - "node": ">= 10" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "node_modules/eslint-config-next": { + "version": "14.2.5", + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-14.2.5.tgz", + "integrity": "sha512-zogs9zlOiZ7ka+wgUnmcM0KBEDjo4Jis7kxN1jvC0N4wynQ2MIx/KBkg4mVF63J5EK4W0QMCn7xO3vNisjaAoA==", "dev": true, + "license": "MIT", "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" + "@next/eslint-plugin-next": "14.2.5", + "@rushstack/eslint-patch": "^1.3.3", + "@typescript-eslint/parser": "^5.4.2 || ^6.0.0 || 7.0.0 - 7.2.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-import-resolver-typescript": "^3.5.2", + "eslint-plugin-import": "^2.28.1", + "eslint-plugin-jsx-a11y": "^6.7.1", + "eslint-plugin-react": "^7.33.2", + "eslint-plugin-react-hooks": "^4.5.0 || 5.0.0-canary-7118f5dd7-20230705" }, - "engines": { - "node": ">= 8" + "peerDependencies": { + "eslint": "^7.23.0 || ^8.0.0", + "typescript": ">=3.3.1" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "node_modules/eslint-config-next/node_modules/eslint-plugin-react-hooks": { + "version": "5.0.0-canary-7118f5dd7-20230705", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.0.0-canary-7118f5dd7-20230705.tgz", + "integrity": "sha512-AZYbMo/NW9chdL7vk6HQzQhT+PvTAEVqWk9ziruUoW2kAOcN5qNyelv70e0F1VNQAbvutOC9oc+xfWycI9FxDw==", "dev": true, + "license": "MIT", "engines": { - "node": ">= 8" + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" } }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "node_modules/eslint-config-prettier": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz", + "integrity": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==", "dev": true, - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" + "license": "MIT", + "bin": { + "eslint-config-prettier": "bin/cli.js" }, - "engines": { - "node": ">= 8" + "peerDependencies": { + "eslint": ">=7.0.0" } }, - "node_modules/@nolyfill/is-core-module": { - "version": "1.0.39", - "resolved": "https://registry.npmjs.org/@nolyfill/is-core-module/-/is-core-module-1.0.39.tgz", - "integrity": "sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==", + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", "dev": true, - "engines": { - "node": ">=12.4.0" + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" } }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=14" + "dependencies": { + "ms": "^2.1.1" } }, - "node_modules/@pkgr/core": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.4.tgz", - "integrity": "sha512-ROFF39F6ZrnzSUEmQQZUar0Jt4xVoP9WnDRdWwF4NNcXs3xBTLgBUDoOwW141y1jP+S8nahIbdxbFC7IShw9Iw==", + "node_modules/eslint-import-resolver-typescript": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.10.1.tgz", + "integrity": "sha512-A1rHYb06zjMGAxdLSkN2fXPBwuSaQ0iO5M/hdyS0Ajj1VBaRp0sPD3dn1FhME3c/JluGFbwSxyCfqdSbtQLAHQ==", "dev": true, - "license": "MIT", + "dependencies": { + "@nolyfill/is-core-module": "1.0.39", + "debug": "^4.4.0", + "get-tsconfig": "^4.10.0", + "is-bun-module": "^2.0.0", + "stable-hash": "^0.0.5", + "tinyglobby": "^0.2.13", + "unrs-resolver": "^1.6.2" + }, "engines": { - "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + "node": "^14.18.0 || >=16.0.0" }, "funding": { - "url": "https://opencollective.com/pkgr" + "url": "https://opencollective.com/eslint-import-resolver-typescript" + }, + "peerDependencies": { + "eslint": "*", + "eslint-plugin-import": "*", + "eslint-plugin-import-x": "*" + }, + "peerDependenciesMeta": { + "eslint-plugin-import": { + "optional": true + }, + "eslint-plugin-import-x": { + "optional": true + } } }, - "node_modules/@rtsao/scc": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", - "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", - "dev": true - }, - "node_modules/@rushstack/eslint-patch": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.11.0.tgz", - "integrity": "sha512-zxnHvoMQVqewTJr/W4pKjF0bMGiKJv1WX7bSrkl46Hg0QjESbzBROWK0Wg4RphzSOS5Jiy7eFimmM3UgMrMZbQ==", - "dev": true - }, - "node_modules/@swc/counter": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", - "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", - "license": "Apache-2.0" - }, - "node_modules/@swc/helpers": { - "version": "0.5.15", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz", - "integrity": "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==", - "license": "Apache-2.0", + "node_modules/eslint-module-utils": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz", + "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==", + "dev": true, "dependencies": { - "tslib": "^2.8.0" + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } } }, - "node_modules/@tybys/wasm-util": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.9.0.tgz", - "integrity": "sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==", + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, - "optional": true, "dependencies": { - "tslib": "^2.4.0" + "ms": "^2.1.1" } }, - "node_modules/@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "node_modules/eslint-plugin-import": { + "version": "2.31.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz", + "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==", "dev": true, - "license": "MIT" - }, - "node_modules/@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true + "dependencies": { + "@rtsao/scc": "^1.1.0", + "array-includes": "^3.1.8", + "array.prototype.findlastindex": "^1.2.5", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.12.0", + "hasown": "^2.0.2", + "is-core-module": "^2.15.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "object.groupby": "^1.0.3", + "object.values": "^1.2.0", + "semver": "^6.3.1", + "string.prototype.trimend": "^1.0.8", + "tsconfig-paths": "^3.15.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" + } }, - "node_modules/@types/node": { - "version": "20.17.46", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.46.tgz", - "integrity": "sha512-0PQHLhZPWOxGW4auogW0eOQAuNIlCYvibIpG67ja0TOJ6/sehu+1en7sfceUn+QQtx4Rk3GxbLNwPh0Cav7TWw==", + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "dependencies": { - "undici-types": "~6.19.2" + "ms": "^2.1.1" } }, - "node_modules/@types/react": { - "version": "19.1.3", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.3.tgz", - "integrity": "sha512-dLWQ+Z0CkIvK1J8+wrDPwGxEYFA4RAyHoZPxHVGspYmFVnwGSNT24cGIhFJrtfRnWVuW8X7NO52gCXmhkVUWGQ==", + "node_modules/eslint-plugin-import/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-jest": { + "version": "27.9.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-27.9.0.tgz", + "integrity": "sha512-QIT7FH7fNmd9n4se7FFKHbsLKGQiw885Ds6Y/sxKgCZ6natwCsXdgPOADnYVxN2QrRweF0FZWbJ6S7Rsn7llug==", "dev": true, + "license": "MIT", "dependencies": { - "csstype": "^3.0.2" + "@typescript-eslint/utils": "^5.10.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "^5.0.0 || ^6.0.0 || ^7.0.0", + "eslint": "^7.0.0 || ^8.0.0", + "jest": "*" + }, + "peerDependenciesMeta": { + "@typescript-eslint/eslint-plugin": { + "optional": true + }, + "jest": { + "optional": true + } } }, - "node_modules/@types/react-dom": { - "version": "19.1.3", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.1.3.tgz", - "integrity": "sha512-rJXC08OG0h3W6wDMFxQrZF00Kq6qQvw0djHRdzl3U5DnIERz0MRce3WVc7IS6JYBwtaP/DwYtRRjVlvivNveKg==", + "node_modules/eslint-plugin-jsx-a11y": { + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz", + "integrity": "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==", "dev": true, + "dependencies": { + "aria-query": "^5.3.2", + "array-includes": "^3.1.8", + "array.prototype.flatmap": "^1.3.2", + "ast-types-flow": "^0.0.8", + "axe-core": "^4.10.0", + "axobject-query": "^4.1.0", + "damerau-levenshtein": "^1.0.8", + "emoji-regex": "^9.2.2", + "hasown": "^2.0.2", + "jsx-ast-utils": "^3.3.5", + "language-tags": "^1.0.9", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "safe-regex-test": "^1.0.3", + "string.prototype.includes": "^2.0.1" + }, + "engines": { + "node": ">=4.0" + }, "peerDependencies": { - "@types/react": "^19.0.0" + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9" } }, - "node_modules/@types/semver": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.7.0.tgz", - "integrity": "sha512-k107IF4+Xr7UHjwDc7Cfd6PRQfbdkiRabXGRjo07b4WyPahFBZCZ1sE+BNxYIJPPg73UkfOsVOLwqVc/6ETrIA==", + "node_modules/eslint-plugin-no-secrets": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-no-secrets/-/eslint-plugin-no-secrets-1.1.2.tgz", + "integrity": "sha512-FjgyBaEkQK6hrdKf0V1TnKbY3dxXmw8S7tjfHs/BMIgFGNYhzFccxbZSJtDCPHTQTSiBtdLwRlOmSF81toII4w==", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">=10.0.0", + "npm": ">=6.9.0" + }, + "peerDependencies": { + "eslint": ">=3.0.0" + } }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", - "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", + "node_modules/eslint-plugin-prettier": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.4.0.tgz", + "integrity": "sha512-BvQOvUhkVQM1i63iMETK9Hjud9QhqBnbtT1Zc642p9ynzBuCe5pybkOnvqZIBypXmMlsGcnU4HZ8sCTPfpAexA==", "dev": true, "license": "MIT", "dependencies": { - "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/type-utils": "5.62.0", - "@typescript-eslint/utils": "5.62.0", - "debug": "^4.3.4", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "natural-compare-lite": "^1.4.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" + "prettier-linter-helpers": "^1.0.0", + "synckit": "^0.11.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^14.18.0 || >=16.0.0" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "url": "https://opencollective.com/eslint-plugin-prettier" }, "peerDependencies": { - "@typescript-eslint/parser": "^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "@types/eslint": ">=8.0.0", + "eslint": ">=8.0.0", + "eslint-config-prettier": ">= 7.0.0 <10.0.0 || >=10.1.0", + "prettier": ">=3.0.0" }, "peerDependenciesMeta": { - "typescript": { + "@types/eslint": { + "optional": true + }, + "eslint-config-prettier": { "optional": true } } }, - "node_modules/@typescript-eslint/parser": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", - "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", + "node_modules/eslint-plugin-react": { + "version": "7.37.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz", + "integrity": "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "debug": "^4.3.4" + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", + "array.prototype.flatmap": "^1.3.3", + "array.prototype.tosorted": "^1.1.4", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.2.1", + "estraverse": "^5.3.0", + "hasown": "^2.0.2", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.9", + "object.fromentries": "^2.0.8", + "object.values": "^1.2.1", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.5", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.12", + "string.prototype.repeat": "^1.0.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "node": ">=4" }, "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" } }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", - "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", + "node_modules/eslint-plugin-react-hooks": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.2.0.tgz", + "integrity": "sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==", "dev": true, "license": "MIT", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" + } + }, + "node_modules/eslint-plugin-react/node_modules/resolve": { + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", + "dev": true, "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0" + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "bin": { + "resolve": "bin/resolve" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@typescript-eslint/type-utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", - "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", + "node_modules/eslint-plugin-react/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, - "license": "MIT", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/typescript-estree": "5.62.0", - "@typescript-eslint/utils": "5.62.0", - "debug": "^4.3.4", - "tsutils": "^3.21.0" + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-scope/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "*" + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "engines": { + "node": ">=6.0.0" } }, - "node_modules/@typescript-eslint/types": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", - "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", + "node_modules/eslint/node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, - "license": "MIT", + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "url": "https://opencollective.com/eslint" } }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", - "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "engines": { + "node": ">=4" } }, - "node_modules/@typescript-eslint/utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", - "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", "dev": true, - "license": "MIT", "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" + "estraverse": "^5.1.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "engines": { + "node": ">=4.0" } }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", - "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eventemitter2": { + "version": "6.4.7", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.7.tgz", + "integrity": "sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg==", + "dev": true, + "license": "MIT" + }, + "node_modules/execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "5.62.0", - "eslint-visitor-keys": "^3.3.0" + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=10" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/@ungap/structured-clone": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", - "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", + "node_modules/execa/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true, "license": "ISC" }, - "node_modules/@unrs/resolver-binding-darwin-arm64": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.7.2.tgz", - "integrity": "sha512-vxtBno4xvowwNmO/ASL0Y45TpHqmNkAaDtz4Jqb+clmcVSSl8XCG/PNFFkGsXXXS6AMjP+ja/TtNCFFa1QwLRg==", - "cpu": [ - "arm64" - ], + "node_modules/executable": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz", + "integrity": "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==", "dev": true, - "optional": true, - "os": [ - "darwin" - ] + "license": "MIT", + "dependencies": { + "pify": "^2.2.0" + }, + "engines": { + "node": ">=4" + } }, - "node_modules/@unrs/resolver-binding-darwin-x64": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.7.2.tgz", - "integrity": "sha512-qhVa8ozu92C23Hsmv0BF4+5Dyyd5STT1FolV4whNgbY6mj3kA0qsrGPe35zNR3wAN7eFict3s4Rc2dDTPBTuFQ==", - "cpu": [ - "x64" - ], + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", "dev": true, - "optional": true, - "os": [ - "darwin" - ] + "engines": { + "node": ">= 0.8.0" + } }, - "node_modules/@unrs/resolver-binding-freebsd-x64": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.7.2.tgz", - "integrity": "sha512-zKKdm2uMXqLFX6Ac7K5ElnnG5VIXbDlFWzg4WJ8CGUedJryM5A3cTgHuGMw1+P5ziV8CRhnSEgOnurTI4vpHpg==", - "cpu": [ - "x64" - ], + "node_modules/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", "dev": true, - "optional": true, - "os": [ - "freebsd" - ] + "license": "MIT", + "dependencies": { + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } }, - "node_modules/@unrs/resolver-binding-linux-arm-gnueabihf": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.7.2.tgz", - "integrity": "sha512-8N1z1TbPnHH+iDS/42GJ0bMPLiGK+cUqOhNbMKtWJ4oFGzqSJk/zoXFzcQkgtI63qMcUI7wW1tq2usZQSb2jxw==", - "cpu": [ - "arm" - ], + "node_modules/expect/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, - "optional": true, - "os": [ - "linux" - ] + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } }, - "node_modules/@unrs/resolver-binding-linux-arm-musleabihf": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.7.2.tgz", - "integrity": "sha512-tjYzI9LcAXR9MYd9rO45m1s0B/6bJNuZ6jeOxo1pq1K6OBuRMMmfyvJYval3s9FPPGmrldYA3mi4gWDlWuTFGA==", - "cpu": [ - "arm" - ], + "node_modules/expect/node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", "dev": true, - "optional": true, - "os": [ - "linux" - ] + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } }, - "node_modules/@unrs/resolver-binding-linux-arm64-gnu": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.7.2.tgz", - "integrity": "sha512-jon9M7DKRLGZ9VYSkFMflvNqu9hDtOCEnO2QAryFWgT6o6AXU8du56V7YqnaLKr6rAbZBWYsYpikF226v423QA==", - "cpu": [ - "arm64" - ], + "node_modules/expect/node_modules/jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", "dev": true, - "optional": true, - "os": [ - "linux" - ] + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } }, - "node_modules/@unrs/resolver-binding-linux-arm64-musl": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.7.2.tgz", - "integrity": "sha512-c8Cg4/h+kQ63pL43wBNaVMmOjXI/X62wQmru51qjfTvI7kmCy5uHTJvK/9LrF0G8Jdx8r34d019P1DVJmhXQpA==", - "cpu": [ - "arm64" - ], + "node_modules/expect/node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", "dev": true, - "optional": true, - "os": [ - "linux" - ] + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } }, - "node_modules/@unrs/resolver-binding-linux-ppc64-gnu": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.7.2.tgz", - "integrity": "sha512-A+lcwRFyrjeJmv3JJvhz5NbcCkLQL6Mk16kHTNm6/aGNc4FwPHPE4DR9DwuCvCnVHvF5IAd9U4VIs/VvVir5lg==", - "cpu": [ - "ppc64" - ], + "node_modules/expect/node_modules/jest-matcher-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/expect/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/expect/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", "dev": true, - "optional": true, - "os": [ - "linux" - ] + "license": "MIT" }, - "node_modules/@unrs/resolver-binding-linux-riscv64-gnu": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.7.2.tgz", - "integrity": "sha512-hQQ4TJQrSQW8JlPm7tRpXN8OCNP9ez7PajJNjRD1ZTHQAy685OYqPrKjfaMw/8LiHCt8AZ74rfUVHP9vn0N69Q==", - "cpu": [ - "riscv64" - ], + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", "dev": true, - "optional": true, - "os": [ - "linux" - ] + "license": "MIT" }, - "node_modules/@unrs/resolver-binding-linux-riscv64-musl": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.7.2.tgz", - "integrity": "sha512-NoAGbiqrxtY8kVooZ24i70CjLDlUFI7nDj3I9y54U94p+3kPxwd2L692YsdLa+cqQ0VoqMWoehDFp21PKRUoIQ==", - "cpu": [ - "riscv64" - ], + "node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", "dev": true, - "optional": true, - "os": [ - "linux" - ] + "license": "BSD-2-Clause", + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" + } }, - "node_modules/@unrs/resolver-binding-linux-s390x-gnu": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.7.2.tgz", - "integrity": "sha512-KaZByo8xuQZbUhhreBTW+yUnOIHUsv04P8lKjQ5otiGoSJ17ISGYArc+4vKdLEpGaLbemGzr4ZeUbYQQsLWFjA==", - "cpu": [ - "s390x" + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", + "dev": true, + "engines": [ + "node >=0.6.0" ], + "license": "MIT" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true, - "optional": true, - "os": [ - "linux" - ] + "license": "MIT" }, - "node_modules/@unrs/resolver-binding-linux-x64-gnu": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.7.2.tgz", - "integrity": "sha512-dEidzJDubxxhUCBJ/SHSMJD/9q7JkyfBMT77Px1npl4xpg9t0POLvnWywSk66BgZS/b2Hy9Y1yFaoMTFJUe9yg==", - "cpu": [ - "x64" - ], + "node_modules/fast-diff": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", "dev": true, - "optional": true, - "os": [ - "linux" - ] + "license": "Apache-2.0" }, - "node_modules/@unrs/resolver-binding-linux-x64-musl": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.7.2.tgz", - "integrity": "sha512-RvP+Ux3wDjmnZDT4XWFfNBRVG0fMsc+yVzNFUqOflnDfZ9OYujv6nkh+GOr+watwrW4wdp6ASfG/e7bkDradsw==", - "cpu": [ - "x64" - ], + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", "dev": true, - "optional": true, - "os": [ - "linux" - ] + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } }, - "node_modules/@unrs/resolver-binding-wasm32-wasi": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.7.2.tgz", - "integrity": "sha512-y797JBmO9IsvXVRCKDXOxjyAE4+CcZpla2GSoBQ33TVb3ILXuFnMrbR/QQZoauBYeOFuu4w3ifWLw52sdHGz6g==", - "cpu": [ - "wasm32" - ], + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, - "optional": true, + "license": "ISC", "dependencies": { - "@napi-rs/wasm-runtime": "^0.2.9" + "is-glob": "^4.0.1" }, "engines": { - "node": ">=14.0.0" + "node": ">= 6" } }, - "node_modules/@unrs/resolver-binding-win32-arm64-msvc": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.7.2.tgz", - "integrity": "sha512-gtYTh4/VREVSLA+gHrfbWxaMO/00y+34htY7XpioBTy56YN2eBjkPrY1ML1Zys89X3RJDKVaogzwxlM1qU7egg==", - "cpu": [ - "arm64" - ], + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "dev": true, - "optional": true, - "os": [ - "win32" - ] + "license": "MIT" }, - "node_modules/@unrs/resolver-binding-win32-ia32-msvc": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.7.2.tgz", - "integrity": "sha512-Ywv20XHvHTDRQs12jd3MY8X5C8KLjDbg/jyaal/QLKx3fAShhJyD4blEANInsjxW3P7isHx1Blt56iUDDJO3jg==", - "cpu": [ - "ia32" - ], + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", "dev": true, - "optional": true, - "os": [ - "win32" - ] + "dependencies": { + "reusify": "^1.0.4" + } }, - "node_modules/@unrs/resolver-binding-win32-x64-msvc": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.7.2.tgz", - "integrity": "sha512-friS8NEQfHaDbkThxopGk+LuE5v3iY0StruifjQEt7SLbA46OnfgMO15sOTkbpJkol6RB+1l1TYPXh0sCddpvA==", - "cpu": [ - "x64" - ], + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", "dev": true, - "optional": true, - "os": [ - "win32" - ] + "license": "Apache-2.0", + "dependencies": { + "bser": "2.1.1" + } }, - "node_modules/acorn": { - "version": "8.14.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", - "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", "dev": true, "license": "MIT", - "bin": { - "acorn": "bin/acorn" + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.5" }, "engines": { - "node": ">=0.4.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "node_modules/figures/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, "license": "MIT", - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + "engines": { + "node": ">=0.8.0" } }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, "license": "MIT", "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "flat-cache": "^3.0.4" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "engines": { + "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "node_modules/filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "minimatch": "^5.0.1" + } + }, + "node_modules/filelist/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, "engines": { - "node": ">=8" + "node": ">=10" } }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, "dependencies": { - "color-convert": "^2.0.1" + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, - "license": "Python-2.0" - }, - "node_modules/aria-query": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", - "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, "engines": { - "node": ">= 0.4" + "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", - "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", + "node_modules/flatted": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "dev": true, + "license": "ISC" + }, + "node_modules/for-each": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", "dev": true, "dependencies": { - "call-bound": "^1.0.3", - "is-array-buffer": "^3.0.5" + "is-callable": "^1.2.7" }, "engines": { "node": ">= 0.4" @@ -1417,87 +6040,108 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/array-includes": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", - "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", + "node_modules/foreground-child": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", "dev": true, + "license": "ISC", "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.4", - "is-string": "^1.0.7" + "cross-spawn": "^7.0.6", + "signal-exit": "^4.0.1" }, "engines": { - "node": ">= 0.4" + "node": ">=14" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "engines": { - "node": ">=8" + "node": "*" } }, - "node_modules/array.prototype.findlast": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", - "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", + "node_modules/form-data": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.2.tgz", + "integrity": "sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-shim-unscopables": "^1.0.2" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "mime-types": "^2.1.12" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">= 6" } }, - "node_modules/array.prototype.findlastindex": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz", - "integrity": "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==", + "node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.9", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "es-shim-unscopables": "^1.1.0" + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" }, "engines": { - "node": ">= 0.4" - }, + "node": ">=10" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/array.prototype.flat": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", - "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", + "node_modules/function.prototype.name": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", + "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", "dev": true, "dependencies": { "call-bind": "^1.0.8", + "call-bound": "^1.0.3", "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-shim-unscopables": "^1.0.2" + "functions-have-names": "^1.2.3", + "hasown": "^2.0.2", + "is-callable": "^1.2.7" }, "engines": { "node": ">= 0.4" @@ -1506,53 +6150,51 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/array.prototype.flatmap": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", - "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", "dev": true, - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/array.prototype.tosorted": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", - "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true, - "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" - }, + "license": "MIT", "engines": { - "node": ">= 0.4" + "node": ">=6.9.0" } }, - "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", - "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", "dev": true, "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6", - "is-array-buffer": "^3.0.4" + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -1561,28 +6203,54 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/ast-types-flow": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", - "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==", - "dev": true + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } }, - "node_modules/async-function": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", - "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", "dev": true, + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, "engines": { "node": ">= 0.4" } }, - "node_modules/available-typed-arrays": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", - "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", "dev": true, "dependencies": { - "possible-typed-array-names": "^1.0.0" + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6" }, "engines": { "node": ">= 0.4" @@ -1591,248 +6259,198 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/axe-core": { - "version": "4.10.3", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.10.3.tgz", - "integrity": "sha512-Xm7bpRXnDSX2YE2YFfBk2FnF0ep6tmG7xPh8iHee8MIcrgq762Nkce856dYtJYLkuIoYZvGfTs/PbZhideTcEg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/axobject-query": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", - "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", + "node_modules/get-tsconfig": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.0.tgz", + "integrity": "sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==", "dev": true, - "engines": { - "node": ">= 0.4" + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" } }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "node_modules/getos": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/getos/-/getos-3.2.1.tgz", + "integrity": "sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q==", "dev": true, + "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "async": "^3.2.0" } }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", "dev": true, "license": "MIT", "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" + "assert-plus": "^1.0.0" } }, - "node_modules/busboy": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", - "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "node_modules/glob": { + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "dev": true, + "license": "ISC", "dependencies": { - "streamsearch": "^1.1.0" + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" }, "engines": { - "node": ">=10.16.0" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/call-bind": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", - "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, "dependencies": { - "call-bind-apply-helpers": "^1.0.0", - "es-define-property": "^1.0.0", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.2" + "is-glob": "^4.0.3" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=10.13.0" } }, - "node_modules/call-bind-apply-helpers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", - "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "node_modules/glob/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "license": "MIT", "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" + "balanced-match": "^1.0.0" } }, - "node_modules/call-bound": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", - "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "node_modules/glob/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, + "license": "ISC", "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "get-intrinsic": "^1.3.0" + "brace-expansion": "^2.0.1" }, "engines": { - "node": ">= 0.4" + "node": ">=16 || 14 >=14.17" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "node_modules/global-dirs": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", + "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", "dev": true, "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001717", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001717.tgz", - "integrity": "sha512-auPpttCq6BDEG8ZAuHJIplGw6GODhjw+/11e7IjpnYCxZcW/ONgPs0KVBJ0d1bY3e2+7PRe5RCLyP+PfwVgkYw==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ] - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "ini": "2.0.0" }, "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/client-only": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", - "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==", - "license": "MIT" - }, - "node_modules/color": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", - "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", + "node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, "license": "MIT", - "optional": true, "dependencies": { - "color-convert": "^2.0.1", - "color-string": "^1.9.0" + "type-fest": "^0.20.2" }, "engines": { - "node": ">=12.5.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "devOptional": true, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, "dependencies": { - "color-name": "~1.1.4" + "define-properties": "^1.2.1", + "gopd": "^1.0.1" }, "engines": { - "node": ">=7.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "devOptional": true - }, - "node_modules/color-string": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", - "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, "license": "MIT", - "optional": true, "dependencies": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, "engines": { - "node": ">= 8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", - "dev": true + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" }, - "node_modules/damerau-levenshtein": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", - "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", "dev": true }, - "node_modules/data-view-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", - "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", + "node_modules/has-bigints": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", "dev": true, - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.2" - }, "engines": { "node": ">= 0.4" }, @@ -1840,32 +6458,34 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/data-view-byte-length": { + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", - "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", "dev": true, "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" + "es-define-property": "^1.0.0" }, "funding": { - "url": "https://github.com/sponsors/inspect-js" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/data-view-byte-offset": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", - "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", + "node_modules/has-proto": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", + "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", "dev": true, "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" + "dunder-proto": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -1874,38 +6494,25 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/debug": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", - "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", "dev": true, - "dependencies": { - "ms": "^2.1.3" - }, "engines": { - "node": ">=6.0" + "node": ">= 0.4" }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "dev": true, "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" + "has-symbols": "^1.0.3" }, "engines": { "node": ">= 0.4" @@ -1914,243 +6521,316 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dev": true, "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" + "function-bind": "^1.1.2" }, "engines": { "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/detect-libc": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz", - "integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==", - "license": "Apache-2.0", - "optional": true, + "node_modules/html-encoding-sniffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", + "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", + "dev": true, + "license": "MIT", + "dependencies": { + "whatwg-encoding": "^2.0.0" + }, "engines": { - "node": ">=8" + "node": ">=12" } }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true, + "license": "MIT" + }, + "node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", "dev": true, "license": "MIT", "dependencies": { - "path-type": "^4.0.0" + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" }, "engines": { - "node": ">=8" + "node": ">= 6" } }, - "node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "node_modules/http-signature": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.4.0.tgz", + "integrity": "sha512-G5akfn7eKbpDN+8nPS/cb57YeA1jLTVxjpCj7tmm3QKPdyDy7T+qSC40e9ptydSWvkwjSXw1VbkpyEm39ukeAg==", "dev": true, + "license": "MIT", "dependencies": { - "esutils": "^2.0.2" + "assert-plus": "^1.0.0", + "jsprim": "^2.0.2", + "sshpk": "^1.18.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=0.10" } }, - "node_modules/dunder-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", - "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "es-errors": "^1.3.0", - "gopd": "^1.2.0" + "agent-base": "6", + "debug": "4" }, "engines": { - "node": ">= 0.4" + "node": ">= 6" } }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "node_modules/human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", "dev": true, - "license": "MIT" + "license": "Apache-2.0", + "engines": { + "node": ">=8.12.0" + } }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true + "node_modules/husky": { + "version": "9.1.7", + "resolved": "https://registry.npmjs.org/husky/-/husky-9.1.7.tgz", + "integrity": "sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==", + "dev": true, + "license": "MIT", + "bin": { + "husky": "bin.js" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/typicode" + } }, - "node_modules/es-abstract": { - "version": "1.23.9", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz", - "integrity": "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==", + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, + "license": "MIT", "dependencies": { - "array-buffer-byte-length": "^1.0.2", - "arraybuffer.prototype.slice": "^1.0.4", - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "data-view-buffer": "^1.0.2", - "data-view-byte-length": "^1.0.2", - "data-view-byte-offset": "^1.0.1", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-set-tostringtag": "^2.1.0", - "es-to-primitive": "^1.3.0", - "function.prototype.name": "^1.1.8", - "get-intrinsic": "^1.2.7", - "get-proto": "^1.0.0", - "get-symbol-description": "^1.1.0", - "globalthis": "^1.0.4", - "gopd": "^1.2.0", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "internal-slot": "^1.1.0", - "is-array-buffer": "^3.0.5", - "is-callable": "^1.2.7", - "is-data-view": "^1.0.2", - "is-regex": "^1.2.1", - "is-shared-array-buffer": "^1.0.4", - "is-string": "^1.1.1", - "is-typed-array": "^1.1.15", - "is-weakref": "^1.1.0", - "math-intrinsics": "^1.1.0", - "object-inspect": "^1.13.3", - "object-keys": "^1.1.1", - "object.assign": "^4.1.7", - "own-keys": "^1.0.1", - "regexp.prototype.flags": "^1.5.3", - "safe-array-concat": "^1.1.3", - "safe-push-apply": "^1.0.0", - "safe-regex-test": "^1.1.0", - "set-proto": "^1.0.0", - "string.prototype.trim": "^1.2.10", - "string.prototype.trimend": "^1.0.9", - "string.prototype.trimstart": "^1.0.8", - "typed-array-buffer": "^1.0.3", - "typed-array-byte-length": "^1.0.3", - "typed-array-byte-offset": "^1.0.4", - "typed-array-length": "^1.0.7", - "unbox-primitive": "^1.1.0", - "which-typed-array": "^1.1.18" + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">=6" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/es-define-property": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", - "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "node_modules/import-local": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", + "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", "dev": true, + "license": "MIT", + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, "engines": { - "node": ">= 0.4" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, "engines": { - "node": ">= 0.4" + "node": ">=0.8.19" } }, - "node_modules/es-iterator-helpers": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.1.tgz", - "integrity": "sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==", + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "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.", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/internal-slot": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", "dev": true, "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.6", "es-errors": "^1.3.0", - "es-set-tostringtag": "^2.0.3", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.6", - "globalthis": "^1.0.4", - "gopd": "^1.2.0", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.2.0", - "has-symbols": "^1.1.0", - "internal-slot": "^1.1.0", - "iterator.prototype": "^1.1.4", - "safe-array-concat": "^1.1.3" + "hasown": "^2.0.2", + "side-channel": "^1.1.0" }, "engines": { "node": ">= 0.4" } }, - "node_modules/es-object-atoms": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", - "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "node_modules/is-array-buffer": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", "dev": true, "dependencies": { - "es-errors": "^1.3.0" + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es-set-tostringtag": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", - "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "license": "MIT", + "optional": true + }, + "node_modules/is-async-function": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", + "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", "dev": true, "dependencies": { - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6", + "async-function": "^1.0.0", + "call-bound": "^1.0.3", + "get-proto": "^1.0.1", "has-tostringtag": "^1.0.2", - "hasown": "^2.0.2" + "safe-regex-test": "^1.1.0" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es-shim-unscopables": { + "node_modules/is-bigint": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", - "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", "dev": true, "dependencies": { - "hasown": "^2.0.2" + "has-bigints": "^1.0.2" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es-to-primitive": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", - "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", + "node_modules/is-boolean-object": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", + "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", "dev": true, "dependencies": { - "is-callable": "^1.2.7", - "is-date-object": "^1.0.5", - "is-symbol": "^1.0.4" + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -2159,1546 +6839,1712 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "node_modules/is-bun-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-bun-module/-/is-bun-module-2.0.0.tgz", + "integrity": "sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ==", + "dev": true, + "dependencies": { + "semver": "^7.7.1" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", "dev": true, "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/eslint": { - "version": "8.57.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", - "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", - "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.57.1", - "@humanwhocodes/config-array": "^0.13.0", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "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.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "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.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "dev": true, + "dependencies": { + "hasown": "^2.0.2" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">= 0.4" }, "funding": { - "url": "https://opencollective.com/eslint" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/eslint-config-next": { - "version": "14.2.5", - "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-14.2.5.tgz", - "integrity": "sha512-zogs9zlOiZ7ka+wgUnmcM0KBEDjo4Jis7kxN1jvC0N4wynQ2MIx/KBkg4mVF63J5EK4W0QMCn7xO3vNisjaAoA==", + "node_modules/is-data-view": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", + "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", "dev": true, - "license": "MIT", "dependencies": { - "@next/eslint-plugin-next": "14.2.5", - "@rushstack/eslint-patch": "^1.3.3", - "@typescript-eslint/parser": "^5.4.2 || ^6.0.0 || 7.0.0 - 7.2.0", - "eslint-import-resolver-node": "^0.3.6", - "eslint-import-resolver-typescript": "^3.5.2", - "eslint-plugin-import": "^2.28.1", - "eslint-plugin-jsx-a11y": "^6.7.1", - "eslint-plugin-react": "^7.33.2", - "eslint-plugin-react-hooks": "^4.5.0 || 5.0.0-canary-7118f5dd7-20230705" + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "is-typed-array": "^1.1.13" }, - "peerDependencies": { - "eslint": "^7.23.0 || ^8.0.0", - "typescript": ">=3.3.1" + "engines": { + "node": ">= 0.4" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/eslint-config-next/node_modules/eslint-plugin-react-hooks": { - "version": "5.0.0-canary-7118f5dd7-20230705", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.0.0-canary-7118f5dd7-20230705.tgz", - "integrity": "sha512-AZYbMo/NW9chdL7vk6HQzQhT+PvTAEVqWk9ziruUoW2kAOcN5qNyelv70e0F1VNQAbvutOC9oc+xfWycI9FxDw==", + "node_modules/is-date-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", "dev": true, - "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, "engines": { - "node": ">=10" + "node": ">= 0.4" }, - "peerDependencies": { - "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/eslint-config-prettier": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz", - "integrity": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==", + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, - "license": "MIT", - "bin": { - "eslint-config-prettier": "bin/cli.js" - }, - "peerDependencies": { - "eslint": ">=7.0.0" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/eslint-import-resolver-node": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", - "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "node_modules/is-finalizationregistry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", + "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", "dev": true, "dependencies": { - "debug": "^3.2.7", - "is-core-module": "^2.13.0", - "resolve": "^1.22.4" + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, - "dependencies": { - "ms": "^2.1.1" + "license": "MIT", + "engines": { + "node": ">=8" } }, - "node_modules/eslint-import-resolver-typescript": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.10.1.tgz", - "integrity": "sha512-A1rHYb06zjMGAxdLSkN2fXPBwuSaQ0iO5M/hdyS0Ajj1VBaRp0sPD3dn1FhME3c/JluGFbwSxyCfqdSbtQLAHQ==", + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", "dev": true, - "dependencies": { - "@nolyfill/is-core-module": "1.0.39", - "debug": "^4.4.0", - "get-tsconfig": "^4.10.0", - "is-bun-module": "^2.0.0", - "stable-hash": "^0.0.5", - "tinyglobby": "^0.2.13", - "unrs-resolver": "^1.6.2" - }, + "license": "MIT", "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint-import-resolver-typescript" - }, - "peerDependencies": { - "eslint": "*", - "eslint-plugin-import": "*", - "eslint-plugin-import-x": "*" - }, - "peerDependenciesMeta": { - "eslint-plugin-import": { - "optional": true - }, - "eslint-plugin-import-x": { - "optional": true - } + "node": ">=6" } }, - "node_modules/eslint-module-utils": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz", - "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==", + "node_modules/is-generator-function": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", + "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", "dev": true, "dependencies": { - "debug": "^3.2.7" + "call-bound": "^1.0.3", + "get-proto": "^1.0.0", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" }, "engines": { - "node": ">=4" + "node": ">= 0.4" }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "dependencies": { - "ms": "^2.1.1" + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/eslint-plugin-import": { - "version": "2.31.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz", - "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==", + "node_modules/is-installed-globally": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", "dev": true, + "license": "MIT", "dependencies": { - "@rtsao/scc": "^1.1.0", - "array-includes": "^3.1.8", - "array.prototype.findlastindex": "^1.2.5", - "array.prototype.flat": "^1.3.2", - "array.prototype.flatmap": "^1.3.2", - "debug": "^3.2.7", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.9", - "eslint-module-utils": "^2.12.0", - "hasown": "^2.0.2", - "is-core-module": "^2.15.1", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.fromentries": "^2.0.8", - "object.groupby": "^1.0.3", - "object.values": "^1.2.0", - "semver": "^6.3.1", - "string.prototype.trimend": "^1.0.8", - "tsconfig-paths": "^3.15.0" + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" }, "engines": { - "node": ">=4" + "node": ">=10" }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", "dev": true, - "dependencies": { - "ms": "^2.1.1" + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/eslint-plugin-import/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, - "bin": { - "semver": "bin/semver.js" + "license": "MIT", + "engines": { + "node": ">=0.12.0" } }, - "node_modules/eslint-plugin-jsx-a11y": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz", - "integrity": "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==", - "dev": true, - "dependencies": { - "aria-query": "^5.3.2", - "array-includes": "^3.1.8", - "array.prototype.flatmap": "^1.3.2", - "ast-types-flow": "^0.0.8", - "axe-core": "^4.10.0", - "axobject-query": "^4.1.0", - "damerau-levenshtein": "^1.0.8", - "emoji-regex": "^9.2.2", - "hasown": "^2.0.2", - "jsx-ast-utils": "^3.3.5", - "language-tags": "^1.0.9", - "minimatch": "^3.1.2", - "object.fromentries": "^2.0.8", - "safe-regex-test": "^1.0.3", - "string.prototype.includes": "^2.0.1" + "node_modules/is-number-object": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" }, "engines": { - "node": ">=4.0" + "node": ">= 0.4" }, - "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/eslint-plugin-no-secrets": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-no-secrets/-/eslint-plugin-no-secrets-1.1.2.tgz", - "integrity": "sha512-FjgyBaEkQK6hrdKf0V1TnKbY3dxXmw8S7tjfHs/BMIgFGNYhzFccxbZSJtDCPHTQTSiBtdLwRlOmSF81toII4w==", + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", "dev": true, "license": "MIT", "engines": { - "node": ">=10.0.0", - "npm": ">=6.9.0" - }, - "peerDependencies": { - "eslint": ">=3.0.0" + "node": ">=8" } }, - "node_modules/eslint-plugin-prettier": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.4.0.tgz", - "integrity": "sha512-BvQOvUhkVQM1i63iMETK9Hjud9QhqBnbtT1Zc642p9ynzBuCe5pybkOnvqZIBypXmMlsGcnU4HZ8sCTPfpAexA==", + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-regex": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", "dev": true, - "license": "MIT", "dependencies": { - "prettier-linter-helpers": "^1.0.0", - "synckit": "^0.11.0" + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" }, "engines": { - "node": "^14.18.0 || >=16.0.0" + "node": ">= 0.4" }, "funding": { - "url": "https://opencollective.com/eslint-plugin-prettier" - }, - "peerDependencies": { - "@types/eslint": ">=8.0.0", - "eslint": ">=8.0.0", - "eslint-config-prettier": ">= 7.0.0 <10.0.0 || >=10.1.0", - "prettier": ">=3.0.0" + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "dev": true, + "engines": { + "node": ">= 0.4" }, - "peerDependenciesMeta": { - "@types/eslint": { - "optional": true - }, - "eslint-config-prettier": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/eslint-plugin-react": { - "version": "7.37.5", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz", - "integrity": "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==", + "node_modules/is-shared-array-buffer": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", "dev": true, "dependencies": { - "array-includes": "^3.1.8", - "array.prototype.findlast": "^1.2.5", - "array.prototype.flatmap": "^1.3.3", - "array.prototype.tosorted": "^1.1.4", - "doctrine": "^2.1.0", - "es-iterator-helpers": "^1.2.1", - "estraverse": "^5.3.0", - "hasown": "^2.0.2", - "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "minimatch": "^3.1.2", - "object.entries": "^1.1.9", - "object.fromentries": "^2.0.8", - "object.values": "^1.2.1", - "prop-types": "^15.8.1", - "resolve": "^2.0.0-next.5", - "semver": "^6.3.1", - "string.prototype.matchall": "^4.0.12", - "string.prototype.repeat": "^1.0.0" + "call-bound": "^1.0.3" }, "engines": { - "node": ">=4" + "node": ">= 0.4" }, - "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/eslint-plugin-react-hooks": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.2.0.tgz", - "integrity": "sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==", + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true, "license": "MIT", "engines": { - "node": ">=10" + "node": ">=8" }, - "peerDependencies": { - "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint-plugin-react/node_modules/resolve": { - "version": "2.0.0-next.5", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", - "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", + "node_modules/is-string": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", "dev": true, "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" }, - "bin": { - "resolve": "bin/resolve" + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/eslint-plugin-react/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "node_modules/is-symbol": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", "dev": true, - "bin": { - "semver": "bin/semver.js" + "dependencies": { + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "node_modules/is-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" + "which-typed-array": "^1.1.16" }, "engines": { - "node": ">=8.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/eslint-scope/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", "dev": true, - "license": "BSD-2-Clause", + "license": "MIT" + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=4.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", "dev": true, - "license": "Apache-2.0", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">= 0.4" }, "funding": { - "url": "https://opencollective.com/eslint" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/eslint/node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "node_modules/is-weakref": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", + "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", "dev": true, - "license": "Apache-2.0", "dependencies": { - "esutils": "^2.0.2" + "call-bound": "^1.0.3" }, "engines": { - "node": ">=6.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "node_modules/is-weakset": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">= 0.4" }, "funding": { - "url": "https://opencollective.com/eslint" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - }, + "license": "ISC" + }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", + "dev": true, + "license": "MIT" + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "license": "BSD-3-Clause", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "node": ">=8" } }, - "node_modules/esquery": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", - "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "node_modules/istanbul-lib-instrument": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", + "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "estraverse": "^5.1.0" + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" }, "engines": { - "node": ">=0.10" + "node": ">=10" } }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "dev": true, - "license": "BSD-2-Clause", + "license": "BSD-3-Clause", "dependencies": { - "estraverse": "^5.2.0" + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=4.0" + "node": ">=10" } }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, "engines": { - "node": ">=4.0" + "node": ">=10" } }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "node_modules/istanbul-reports": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-diff": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", - "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/fast-glob": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", - "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "node_modules/iterator.prototype": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz", + "integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==", "dev": true, - "license": "MIT", "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.8" + "define-data-property": "^1.1.4", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "get-proto": "^1.0.0", + "has-symbols": "^1.1.0", + "set-function-name": "^2.0.2" }, "engines": { - "node": ">=8.6.0" + "node": ">= 0.4" } }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "node_modules/jackspeak": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", "dev": true, - "license": "ISC", + "license": "BlueOak-1.0.0", "dependencies": { - "is-glob": "^4.0.1" + "@isaacs/cliui": "^8.0.2" }, "engines": { - "node": ">= 6" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" } }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "node_modules/fastq": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", - "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", + "node_modules/jake": { + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.2.tgz", + "integrity": "sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "reusify": "^1.0.4" + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.4", + "minimatch": "^3.1.2" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" } }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "node_modules/jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", "dev": true, "license": "MIT", "dependencies": { - "flat-cache": "^3.0.4" + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", + "import-local": "^3.0.2", + "jest-cli": "^29.7.0" + }, + "bin": { + "jest": "bin/jest.js" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "node_modules/jest-changed-files": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", "dev": true, "license": "MIT", "dependencies": { - "to-regex-range": "^5.0.1" + "execa": "^5.0.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0" }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "node_modules/jest-changed-files/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, + "license": "MIT", "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" }, "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/flat-cache": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", - "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "node_modules/jest-changed-files/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true, "license": "MIT", - "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" + "engines": { + "node": ">=10" }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-changed-files/node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "license": "Apache-2.0", "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=10.17.0" } }, - "node_modules/flatted": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", - "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "node_modules/jest-changed-files/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true, "license": "ISC" }, - "node_modules/for-each": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", - "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "node_modules/jest-circus": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", "dev": true, + "license": "MIT", "dependencies": { - "is-callable": "^1.2.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/foreground-child": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", - "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^1.0.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0", + "pretty-format": "^29.7.0", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-circus/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, - "license": "ISC", - "dependencies": { - "cross-spawn": "^7.0.6", - "signal-exit": "^4.0.1" - }, + "license": "MIT", "engines": { - "node": ">=14" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true, - "license": "ISC" - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "node_modules/jest-circus/node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/function.prototype.name": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", - "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", + "node_modules/jest-circus/node_modules/jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "functions-have-names": "^1.2.3", - "hasown": "^2.0.2", - "is-callable": "^1.2.7" + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "node_modules/jest-circus/node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/get-intrinsic": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", - "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "node_modules/jest-circus/node_modules/jest-matcher-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", "dev": true, - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "function-bind": "^1.1.2", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "math-intrinsics": "^1.1.0" + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/get-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", - "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "node_modules/jest-circus/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, + "license": "MIT", "dependencies": { - "dunder-proto": "^1.0.1", - "es-object-atoms": "^1.0.0" + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" }, "engines": { - "node": ">= 0.4" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/get-symbol-description": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", - "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", + "node_modules/jest-circus/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-cli": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", "dev": true, + "license": "MIT", "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6" + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "create-jest": "^29.7.0", + "exit": "^0.1.2", + "import-local": "^3.0.2", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "yargs": "^17.3.1" + }, + "bin": { + "jest": "bin/jest.js" }, "engines": { - "node": ">= 0.4" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "node_modules/get-tsconfig": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.0.tgz", - "integrity": "sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==", + "node_modules/jest-cli/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, - "dependencies": { - "resolve-pkg-maps": "^1.0.0" + "license": "MIT", + "engines": { + "node": ">=10" }, "funding": { - "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/glob": { - "version": "10.3.10", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", - "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "node_modules/jest-cli/node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-cli/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, "license": "ISC", "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.3.5", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": "*" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "node_modules/jest-cli/node_modules/jest-config": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", "dev": true, + "license": "MIT", "dependencies": { - "is-glob": "^4.0.3" + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" }, "engines": { - "node": ">=10.13.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } } }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "node_modules/jest-cli/node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", "dev": true, "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/glob/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "node_modules/jest-cli/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "brace-expansion": "^2.0.1" + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" }, "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "node_modules/jest-cli/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-coverage-badges": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/jest-coverage-badges/-/jest-coverage-badges-1.1.2.tgz", + "integrity": "sha512-44A7i2xR6os8+fWk8ZRM6W4fKiD2jwKOLU9eB3iTIIWACd9RbdvmiCNpQZTOsUBhKvz7aQ/ASFhu5JOEhWUOlg==", "dev": true, "license": "MIT", "dependencies": { - "type-fest": "^0.20.2" + "mkdirp": "0.5.1" }, - "engines": { - "node": ">=8" + "bin": { + "jest-coverage-badges": "cli.js" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=6.11", + "npm": ">=5.3" } }, - "node_modules/globalthis": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", - "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "node_modules/jest-diff": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", + "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", "dev": true, + "license": "MIT", "dependencies": { - "define-properties": "^1.2.1", - "gopd": "^1.0.1" + "chalk": "^4.0.0", + "diff-sequences": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "node_modules/jest-docblock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", "dev": true, "license": "MIT", "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" + "detect-newline": "^3.0.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/gopd": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", - "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "node_modules/jest-each": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", "dev": true, - "engines": { - "node": ">= 0.4" + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true - }, - "node_modules/has-bigints": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", - "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", + "node_modules/jest-each/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, + "license": "MIT", "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/jest-each/node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", "dev": true, + "license": "MIT", "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "node_modules/jest-each/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, + "license": "MIT", "dependencies": { - "es-define-property": "^1.0.0" + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/has-proto": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", - "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", + "node_modules/jest-each/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-environment-jsdom": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-29.7.0.tgz", + "integrity": "sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==", "dev": true, + "license": "MIT", "dependencies": { - "dunder-proto": "^1.0.0" + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/jsdom": "^20.0.0", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0", + "jsdom": "^20.0.0" }, "engines": { - "node": ">= 0.4" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", - "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", - "dev": true, - "engines": { - "node": ">= 0.4" + "peerDependencies": { + "canvas": "^2.5.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependenciesMeta": { + "canvas": { + "optional": true + } } }, - "node_modules/has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "node_modules/jest-environment-node": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", "dev": true, + "license": "MIT", "dependencies": { - "has-symbols": "^1.0.3" + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "node_modules/jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", "dev": true, - "dependencies": { - "function-bind": "^1.1.2" - }, + "license": "MIT", "engines": { - "node": ">= 0.4" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/husky": { - "version": "9.1.7", - "resolved": "https://registry.npmjs.org/husky/-/husky-9.1.7.tgz", - "integrity": "sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==", + "node_modules/jest-haste-map": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", "dev": true, - "license": "MIT", - "bin": { - "husky": "bin.js" + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" }, "engines": { - "node": ">=18" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, - "funding": { - "url": "https://github.com/sponsors/typicode" + "optionalDependencies": { + "fsevents": "^2.3.2" } }, - "node_modules/ignore": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "node_modules/jest-leak-detector": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", "dev": true, + "license": "MIT", + "dependencies": { + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, "engines": { - "node": ">= 4" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/import-fresh": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", - "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "node_modules/jest-leak-detector/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, "license": "MIT", - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, "engines": { - "node": ">=6" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "node_modules/jest-leak-detector/node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", "dev": true, + "license": "MIT", "engines": { - "node": ">=0.8.19" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "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.", + "node_modules/jest-leak-detector/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "once": "^1.3.0", - "wrappy": "1" + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "node_modules/jest-leak-detector/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", "dev": true, - "license": "ISC" + "license": "MIT" }, - "node_modules/internal-slot": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", - "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", + "node_modules/jest-matcher-utils": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", + "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", "dev": true, + "license": "MIT", "dependencies": { - "es-errors": "^1.3.0", - "hasown": "^2.0.2", - "side-channel": "^1.1.0" + "chalk": "^4.0.0", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" }, "engines": { - "node": ">= 0.4" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/is-array-buffer": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", - "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", + "node_modules/jest-message-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "get-intrinsic": "^1.2.6" + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.6.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", - "license": "MIT", - "optional": true - }, - "node_modules/is-async-function": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", - "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", + "node_modules/jest-message-util/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, - "dependencies": { - "async-function": "^1.0.0", - "call-bound": "^1.0.3", - "get-proto": "^1.0.1", - "has-tostringtag": "^1.0.2", - "safe-regex-test": "^1.1.0" - }, + "license": "MIT", "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/is-bigint": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", - "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", + "node_modules/jest-message-util/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, + "license": "MIT", "dependencies": { - "has-bigints": "^1.0.2" + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-boolean-object": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", - "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", + "node_modules/jest-message-util/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-mock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", "dev": true, + "license": "MIT", "dependencies": { - "call-bound": "^1.0.3", - "has-tostringtag": "^1.0.2" + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-bun-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-bun-module/-/is-bun-module-2.0.0.tgz", - "integrity": "sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ==", + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", "dev": true, - "dependencies": { - "semver": "^7.7.1" + "license": "MIT", + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } } }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "node_modules/jest-regex-util": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", "dev": true, + "license": "MIT", "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-core-module": { - "version": "2.16.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", - "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "node_modules/jest-resolve": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", "dev": true, + "license": "MIT", "dependencies": { - "hasown": "^2.0.2" + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-data-view": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", - "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", + "node_modules/jest-resolve-dependencies": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", "dev": true, + "license": "MIT", "dependencies": { - "call-bound": "^1.0.2", - "get-intrinsic": "^1.2.6", - "is-typed-array": "^1.1.13" + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-date-object": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", - "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", + "node_modules/jest-runner": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", "dev": true, + "license": "MIT", "dependencies": { - "call-bound": "^1.0.2", - "has-tostringtag": "^1.0.2" - }, + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runner-groups": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/jest-runner-groups/-/jest-runner-groups-2.2.0.tgz", + "integrity": "sha512-Sp/B9ZX0CDAKa9dIkgH0sGyl2eDuScV4SVvOxqhBMxqWpsNAkmol/C58aTFmPWZj+C0ZTW1r1BSu66MTCN+voA==", + "dev": true, + "license": "MIT", "engines": { - "node": ">= 0.4" + "node": ">= 10.14.2" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "jest-docblock": ">= 24", + "jest-runner": ">= 24" } }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "node_modules/jest-runtime": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-finalizationregistry": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", - "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", + "node_modules/jest-runtime/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, + "license": "ISC", "dependencies": { - "call-bound": "^1.0.3" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "engines": { - "node": ">= 0.4" + "node": "*" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "node_modules/jest-runtime/node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", "dev": true, "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/is-generator-function": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", - "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", - "dev": true, - "dependencies": { - "call-bound": "^1.0.3", - "get-proto": "^1.0.0", - "has-tostringtag": "^1.0.2", - "safe-regex-test": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "node_modules/jest-snapshot": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", "dev": true, + "license": "MIT", "dependencies": { - "is-extglob": "^2.1.1" + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "natural-compare": "^1.4.0", + "pretty-format": "^29.7.0", + "semver": "^7.5.3" }, "engines": { - "node": ">=0.10.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", - "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "node_modules/jest-snapshot/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, + "license": "MIT", "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "node_modules/jest-snapshot/node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", "dev": true, "license": "MIT", "engines": { - "node": ">=0.12.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-number-object": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", - "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", + "node_modules/jest-snapshot/node_modules/jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", "dev": true, + "license": "MIT", "dependencies": { - "call-bound": "^1.0.3", - "has-tostringtag": "^1.0.2" + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "node_modules/jest-snapshot/node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", "dev": true, "license": "MIT", "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-regex": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", - "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "node_modules/jest-snapshot/node_modules/jest-matcher-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", "dev": true, + "license": "MIT", "dependencies": { - "call-bound": "^1.0.2", - "gopd": "^1.2.0", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.2" + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-set": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", - "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "node_modules/jest-snapshot/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, - "engines": { - "node": ">= 0.4" + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", - "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", + "node_modules/jest-snapshot/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-transform-stub": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/jest-transform-stub/-/jest-transform-stub-2.0.0.tgz", + "integrity": "sha512-lspHaCRx/mBbnm3h4uMMS3R5aZzMwyNpNIJLXj4cEsV0mIUtS4IjYJLSoyjRCtnxb6RIGJ4NL2quZzfIeNhbkg==", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", "dev": true, + "license": "MIT", "dependencies": { - "call-bound": "^1.0.3" + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-string": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", - "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", + "node_modules/jest-util/node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", "dev": true, - "dependencies": { - "call-bound": "^1.0.3", - "has-tostringtag": "^1.0.2" - }, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, - "node_modules/is-symbol": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", - "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", + "node_modules/jest-validate": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", "dev": true, + "license": "MIT", "dependencies": { - "call-bound": "^1.0.2", - "has-symbols": "^1.1.0", - "safe-regex-test": "^1.1.0" + "@jest/types": "^29.6.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "leven": "^3.1.0", + "pretty-format": "^29.7.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-typed-array": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", - "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "node_modules/jest-validate/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, - "dependencies": { - "which-typed-array": "^1.1.16" - }, + "license": "MIT", "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/is-weakmap": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", - "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, + "license": "MIT", "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-weakref": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", - "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", + "node_modules/jest-validate/node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", "dev": true, - "dependencies": { - "call-bound": "^1.0.3" - }, + "license": "MIT", "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-weakset": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", - "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", + "node_modules/jest-validate/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", "dev": true, + "license": "MIT", "dependencies": { - "call-bound": "^1.0.3", - "get-intrinsic": "^1.2.6" + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true + "node_modules/jest-validate/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "node_modules/jest-watcher": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", "dev": true, - "license": "ISC" + "license": "MIT", + "dependencies": { + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.7.0", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } }, - "node_modules/iterator.prototype": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz", - "integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==", + "node_modules/jest-worker": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", "dev": true, + "license": "MIT", "dependencies": { - "define-data-property": "^1.1.4", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.6", - "get-proto": "^1.0.0", - "has-symbols": "^1.1.0", - "set-function-name": "^2.0.2" + "@types/node": "*", + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" }, "engines": { - "node": ">= 0.4" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jackspeak": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", - "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, - "license": "BlueOak-1.0.0", + "license": "MIT", "dependencies": { - "@isaacs/cliui": "^8.0.2" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=14" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, "node_modules/js-tokens": { @@ -3720,6 +8566,98 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", + "dev": true, + "license": "MIT" + }, + "node_modules/jsdom": { + "version": "20.0.3", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-20.0.3.tgz", + "integrity": "sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "abab": "^2.0.6", + "acorn": "^8.8.1", + "acorn-globals": "^7.0.0", + "cssom": "^0.5.0", + "cssstyle": "^2.3.0", + "data-urls": "^3.0.2", + "decimal.js": "^10.4.2", + "domexception": "^4.0.0", + "escodegen": "^2.0.0", + "form-data": "^4.0.0", + "html-encoding-sniffer": "^3.0.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.1", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.2", + "parse5": "^7.1.1", + "saxes": "^6.0.0", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.1.2", + "w3c-xmlserializer": "^4.0.0", + "webidl-conversions": "^7.0.0", + "whatwg-encoding": "^2.0.0", + "whatwg-mimetype": "^3.0.0", + "whatwg-url": "^11.0.0", + "ws": "^8.11.0", + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jsdom/node_modules/tough-cookie": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz", + "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsdom/node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/json-buffer": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", @@ -3727,6 +8665,20 @@ "dev": true, "license": "MIT" }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", + "dev": true, + "license": "(AFL-2.1 OR BSD-3-Clause)" + }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -3740,6 +8692,13 @@ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "dev": true, + "license": "ISC" + }, "node_modules/json5": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", @@ -3752,6 +8711,35 @@ "json5": "lib/cli.js" } }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsprim": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-2.0.2.tgz", + "integrity": "sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "license": "MIT", + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + } + }, "node_modules/jsx-ast-utils": { "version": "3.3.5", "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", @@ -3773,8 +8761,18 @@ "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", "dev": true, "license": "MIT", - "dependencies": { - "json-buffer": "3.0.1" + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" } }, "node_modules/language-subtag-registry": { @@ -3795,6 +8793,26 @@ "node": ">=0.10" } }, + "node_modules/lazy-ass": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", + "integrity": "sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "> 0.8" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", @@ -3808,6 +8826,81 @@ "node": ">= 0.8.0" } }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true, + "license": "MIT" + }, + "node_modules/listr2": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.14.0.tgz", + "integrity": "sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "cli-truncate": "^2.1.0", + "colorette": "^2.0.16", + "log-update": "^4.0.0", + "p-map": "^4.0.0", + "rfdc": "^1.3.0", + "rxjs": "^7.5.1", + "through": "^2.3.8", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "enquirer": ">= 2.3.0 < 3" + }, + "peerDependenciesMeta": { + "enquirer": { + "optional": true + } + } + }, + "node_modules/listr2/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/listr2/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/listr2/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -3823,12 +8916,124 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true, + "license": "MIT" + }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, + "node_modules/lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", + "dev": true, + "license": "MIT" + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", + "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-escapes": "^4.3.0", + "cli-cursor": "^3.1.0", + "slice-ansi": "^4.0.0", + "wrap-ansi": "^6.2.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/log-update/node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/log-update/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-update/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", @@ -3848,6 +9053,50 @@ "dev": true, "license": "ISC" }, + "node_modules/lz-string": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", + "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", + "dev": true, + "license": "MIT", + "peer": true, + "bin": { + "lz-string": "bin/bin.js" + } + }, + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true, + "license": "ISC" + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "tmpl": "1.0.5" + } + }, "node_modules/math-intrinsics": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", @@ -3857,6 +9106,13 @@ "node": ">= 0.4" } }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true, + "license": "MIT" + }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -3881,6 +9137,49 @@ "node": ">=8.6" } }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -3912,6 +9211,27 @@ "node": ">=16 || 14 >=14.17" } }, + "node_modules/mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha512-SknJC52obPfGQPnjIkXbmA6+5H15E+fR+E4iR2oQ3zzCLbd7/ONua69R/Gw7AgkTLsRG+r5fzksYwWe1AgTyWA==", + "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "0.0.8" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/mkdirp/node_modules/minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha512-miQKw5Hv4NS1Psg2517mV4e4dYNaO3++hjAvLOAzKqZ61rH8NS1SK+vbfBWZ5PY/Me/bEWhUwqMghEW5Fb9T7Q==", + "dev": true, + "license": "MIT" + }, "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -4017,6 +9337,50 @@ } } }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-releases": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", + "dev": true, + "license": "MIT" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nwsapi": { + "version": "2.2.20", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.20.tgz", + "integrity": "sha512-/ieB+mDe4MrrKMT8z+mQL8klXydZWGR5Dowt4RAGKbJ3kIGEx3X4ljUo+6V73IXtUPWgfOlU5B9MlGxFO5T+cA==", + "dev": true, + "license": "MIT" + }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -4142,6 +9506,22 @@ "wrappy": "1" } }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/optionator": { "version": "0.9.4", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", @@ -4159,6 +9539,13 @@ "node": ">= 0.8.0" } }, + "node_modules/ospath": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/ospath/-/ospath-1.2.2.tgz", + "integrity": "sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA==", + "dev": true, + "license": "MIT" + }, "node_modules/own-keys": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", @@ -4206,6 +9593,32 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -4219,6 +9632,38 @@ "node": ">=6" } }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse5": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", + "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "entities": "^6.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -4281,6 +9726,20 @@ "node": ">=8" } }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true, + "license": "MIT" + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", + "dev": true, + "license": "MIT" + }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", @@ -4299,6 +9758,95 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", + "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/possible-typed-array-names": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", @@ -4373,6 +9921,78 @@ "node": ">=6.0.0" } }, + "node_modules/pretty-bytes": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/pretty-format/node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true, + "license": "MIT" + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/prop-types": { "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", @@ -4384,6 +10004,37 @@ "react-is": "^16.13.1" } }, + "node_modules/proxy-from-env": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz", + "integrity": "sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A==", + "dev": true, + "license": "MIT" + }, + "node_modules/psl": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz", + "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "punycode": "^2.3.1" + }, + "funding": { + "url": "https://github.com/sponsors/lupomontero" + } + }, + "node_modules/pump": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", + "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", + "dev": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", @@ -4394,6 +10045,46 @@ "node": ">=6" } }, + "node_modules/pure-rand": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", + "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ], + "license": "MIT" + }, + "node_modules/qs": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz", + "integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true, + "license": "MIT" + }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -4441,6 +10132,20 @@ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", "dev": true }, + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/reflect.getprototypeof": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", @@ -4483,6 +10188,33 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/request-progress": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-3.0.0.tgz", + "integrity": "sha512-MnWzEHHaxHO2iWiQuHrUPBi/1WeBf5PkxQqNyNvLl9VAYSdXkP8tQ3pBSeCPD+yw0v0Aq1zosWLz0BdeXpWwZg==", + "dev": true, + "license": "MIT", + "dependencies": { + "throttleit": "^1.0.0" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true, + "license": "MIT" + }, "node_modules/resolve": { "version": "1.22.10", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", @@ -4503,24 +10235,78 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-cwd/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, + "node_modules/resolve.exports": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.3.tgz", + "integrity": "sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "dev": true, "license": "MIT", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/resolve-pkg-maps": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", - "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "node_modules/restore-cursor/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true, - "funding": { - "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" - } + "license": "ISC" }, "node_modules/reusify": { "version": "1.1.0", @@ -4532,6 +10318,13 @@ "node": ">=0.10.0" } }, + "node_modules/rfdc": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", + "dev": true, + "license": "MIT" + }, "node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", @@ -4594,6 +10387,16 @@ "queue-microtask": "^1.2.2" } }, + "node_modules/rxjs": { + "version": "7.8.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", + "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, "node_modules/safe-array-concat": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", @@ -4613,6 +10416,27 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, "node_modules/safe-push-apply": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", @@ -4646,6 +10470,26 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true, + "license": "MIT" + }, + "node_modules/saxes": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", + "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", + "dev": true, + "license": "ISC", + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=v12.22.7" + } + }, "node_modules/scheduler": { "version": "0.26.0", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz", @@ -4869,6 +10713,13 @@ "is-arrayish": "^0.3.1" } }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true, + "license": "MIT" + }, "node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -4879,6 +10730,31 @@ "node": ">=8" } }, + "node_modules/slice-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/source-map-js": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", @@ -4887,12 +10763,79 @@ "node": ">=0.10.0" } }, + "node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/sshpk": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz", + "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/stable-hash": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/stable-hash/-/stable-hash-0.0.5.tgz", "integrity": "sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==", "dev": true }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/streamsearch": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", @@ -4901,6 +10844,20 @@ "node": ">=10.0.0" } }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/string-width": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", @@ -5114,6 +11071,29 @@ "node": ">=4" } }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -5174,6 +11154,13 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true, + "license": "MIT" + }, "node_modules/synckit": { "version": "0.11.4", "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.4.tgz", @@ -5191,6 +11178,43 @@ "url": "https://opencollective.com/synckit" } }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "license": "ISC", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/test-exclude/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -5198,6 +11222,23 @@ "dev": true, "license": "MIT" }, + "node_modules/throttleit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.1.tgz", + "integrity": "sha512-vDZpf9Chs9mAdfY046mcPt8fg5QSZr37hEH4TXYBnDF+izxgrbRGUAAaBvIk/fJm9aOFCGFd1EsNg5AZCbnQCQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true, + "license": "MIT" + }, "node_modules/tinyglobby": { "version": "0.2.13", "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.13.tgz", @@ -5214,43 +11255,192 @@ "url": "https://github.com/sponsors/SuperchupuDev" } }, - "node_modules/tinyglobby/node_modules/fdir": { - "version": "6.4.4", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.4.tgz", - "integrity": "sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==", + "node_modules/tinyglobby/node_modules/fdir": { + "version": "6.4.4", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.4.tgz", + "integrity": "sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==", + "dev": true, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/tldts": { + "version": "6.1.86", + "resolved": "https://registry.npmjs.org/tldts/-/tldts-6.1.86.tgz", + "integrity": "sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "tldts-core": "^6.1.86" + }, + "bin": { + "tldts": "bin/cli.js" + } + }, + "node_modules/tldts-core": { + "version": "6.1.86", + "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-6.1.86.tgz", + "integrity": "sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==", + "dev": true, + "license": "MIT" + }, + "node_modules/tmp": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", + "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.14" + } + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tough-cookie": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-5.1.2.tgz", + "integrity": "sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "tldts": "^6.1.32" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/tr46": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", + "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true, + "license": "MIT", + "bin": { + "tree-kill": "cli.js" + } + }, + "node_modules/ts-jest": { + "version": "29.3.2", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.3.2.tgz", + "integrity": "sha512-bJJkrWc6PjFVz5g2DGCNUo8z7oFEYaz1xP1NpeDU7KNLMWPpEyV8Chbpkn8xjzgRDpQhnGMyvyldoL7h8JXyug==", "dev": true, + "license": "MIT", + "dependencies": { + "bs-logger": "^0.2.6", + "ejs": "^3.1.10", + "fast-json-stable-stringify": "^2.1.0", + "jest-util": "^29.0.0", + "json5": "^2.2.3", + "lodash.memoize": "^4.1.2", + "make-error": "^1.3.6", + "semver": "^7.7.1", + "type-fest": "^4.39.1", + "yargs-parser": "^21.1.1" + }, + "bin": { + "ts-jest": "cli.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0" + }, "peerDependencies": { - "picomatch": "^3 || ^4" + "@babel/core": ">=7.0.0-beta.0 <8", + "@jest/transform": "^29.0.0", + "@jest/types": "^29.0.0", + "babel-jest": "^29.0.0", + "jest": "^29.0.0", + "typescript": ">=4.3 <6" }, "peerDependenciesMeta": { - "picomatch": { + "@babel/core": { + "optional": true + }, + "@jest/transform": { + "optional": true + }, + "@jest/types": { + "optional": true + }, + "babel-jest": { + "optional": true + }, + "esbuild": { "optional": true } } }, - "node_modules/tinyglobby/node_modules/picomatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", - "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "node_modules/ts-jest/node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, - "engines": { - "node": ">=12" + "license": "MIT", + "bin": { + "json5": "lib/cli.js" }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "engines": { + "node": ">=6" } }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "node_modules/ts-jest/node_modules/type-fest": { + "version": "4.41.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz", + "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==", "dev": true, - "license": "MIT", - "dependencies": { - "is-number": "^7.0.0" - }, + "license": "(MIT OR CC0-1.0)", "engines": { - "node": ">=8.0" + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/tsconfig-paths": { @@ -5306,6 +11496,26 @@ "dev": true, "license": "0BSD" }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", + "dev": true, + "license": "Unlicense" + }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -5318,6 +11528,16 @@ "node": ">= 0.8.0" } }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", @@ -5442,6 +11662,16 @@ "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", "dev": true }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, "node_modules/unrs-resolver": { "version": "1.7.2", "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.7.2.tgz", @@ -5474,6 +11704,47 @@ "@unrs/resolver-binding-win32-x64-msvc": "1.7.2" } }, + "node_modules/untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", + "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -5484,6 +11755,127 @@ "punycode": "^2.1.0" } }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-to-istanbul": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", + "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==", + "dev": true, + "license": "ISC", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^2.0.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "node_modules/w3c-xmlserializer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz", + "integrity": "sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-encoding": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", + "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-mimetype": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", + "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-url": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", + "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "tr46": "^3.0.0", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -5702,6 +12094,145 @@ "dev": true, "license": "ISC" }, + "node_modules/write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/write-file-atomic/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/ws": { + "version": "8.18.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.2.tgz", + "integrity": "sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xml-name-validator": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", + "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12" + } + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "dev": true, + "license": "MIT" + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC" + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", diff --git a/ui/package.json b/ui/package.json index c36ff8f9..0a41bd26 100644 --- a/ui/package.json +++ b/ui/package.json @@ -8,7 +8,10 @@ "start": "next start", "lint": "next lint", "format": "prettier --ignore-path .prettierignore --write \"**/*.+(js|ts|jsx|tsx|json)\"", - "prepare": "husky install" + "prepare": "husky install", + "test": "jest --passWithNoTests", + "test:unit": "jest --passWithNoTests tests/unit", + "test:integration": "jest --passWithNoTests tests/integration" }, "dependencies": { "next": "15.3.2", @@ -16,22 +19,34 @@ "react-dom": "^19.0.0" }, "devDependencies": { + "@testing-library/jest-dom": "^5.16.5", + "@testing-library/react": "^16.0.0", + "@testing-library/user-event": "^13.5.0", + "@types/jest": "^27.5.2", "@types/node": "^20", "@types/react": "^19", "@types/react-dom": "^19", - "eslint": "^8.27.0", "@typescript-eslint/eslint-plugin": "^5.43.0", "@typescript-eslint/parser": "^5.43.0", + "cypress": "^13.13.3", + "eslint": "^8.27.0", "eslint-config-next": "14.2.5", "eslint-config-prettier": "^8.5.0", "eslint-plugin-import": "^2.29.1", + "eslint-plugin-jest": "^27.1.5", "eslint-plugin-jsx-a11y": "^6.6.1", "eslint-plugin-no-secrets": "^1.0.2", "eslint-plugin-prettier": "^5.4.0", "eslint-plugin-react": "^7.31.10", "eslint-plugin-react-hooks": "^5.2.0", "husky": "^9.1.7", + "jest": "^29.7.0", + "jest-coverage-badges": "^1.1.2", + "jest-environment-jsdom": "^29.7.0", + "jest-runner-groups": "^2.2.0", + "jest-transform-stub": "^2.0.0", "prettier": "^3.5.3", + "ts-jest": "^29.2.4", "tslint-config-prettier": "^1.18.0", "typescript": "^5" }, diff --git a/ui/public/file.svg b/ui/public/file.svg deleted file mode 100644 index 004145cd..00000000 --- a/ui/public/file.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/ui/public/globe.svg b/ui/public/globe.svg deleted file mode 100644 index 567f17b0..00000000 --- a/ui/public/globe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/ui/public/next.svg b/ui/public/next.svg deleted file mode 100644 index 5174b28c..00000000 --- a/ui/public/next.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/ui/public/vercel.svg b/ui/public/vercel.svg deleted file mode 100644 index 77053960..00000000 --- a/ui/public/vercel.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/ui/public/window.svg b/ui/public/window.svg deleted file mode 100644 index b2b2a44f..00000000 --- a/ui/public/window.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/ui/src/app/favicon.ico b/ui/src/app/favicon.ico deleted file mode 100644 index 718d6fea4835ec2d246af9800eddb7ffb276240c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25931 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 LrJugUA?W`A8`#=m diff --git a/ui/src/app/globals.css b/ui/src/app/globals.css deleted file mode 100644 index e3734be1..00000000 --- a/ui/src/app/globals.css +++ /dev/null @@ -1,42 +0,0 @@ -:root { - --background: #ffffff; - --foreground: #171717; -} - -@media (prefers-color-scheme: dark) { - :root { - --background: #0a0a0a; - --foreground: #ededed; - } -} - -html, -body { - max-width: 100vw; - overflow-x: hidden; -} - -body { - color: var(--foreground); - background: var(--background); - font-family: Arial, Helvetica, sans-serif; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -* { - box-sizing: border-box; - padding: 0; - margin: 0; -} - -a { - color: inherit; - text-decoration: none; -} - -@media (prefers-color-scheme: dark) { - html { - color-scheme: dark; - } -} diff --git a/ui/src/app/layout.tsx b/ui/src/app/layout.tsx index f3d49785..31320365 100644 --- a/ui/src/app/layout.tsx +++ b/ui/src/app/layout.tsx @@ -1,9 +1,8 @@ import type { Metadata } from 'next'; -import './globals.css'; export const metadata: Metadata = { - title: 'Create Next App', - description: 'Generated by create next app', + title: 'GuideLLM', + description: 'LLM Benchmarking Tool', }; export default function RootLayout({ diff --git a/ui/src/app/page.module.css b/ui/src/app/page.module.css deleted file mode 100644 index a11c8f31..00000000 --- a/ui/src/app/page.module.css +++ /dev/null @@ -1,168 +0,0 @@ -.page { - --gray-rgb: 0, 0, 0; - --gray-alpha-200: rgba(var(--gray-rgb), 0.08); - --gray-alpha-100: rgba(var(--gray-rgb), 0.05); - - --button-primary-hover: #383838; - --button-secondary-hover: #f2f2f2; - - display: grid; - grid-template-rows: 20px 1fr 20px; - align-items: center; - justify-items: center; - min-height: 100svh; - padding: 80px; - gap: 64px; - font-family: var(--font-geist-sans); -} - -@media (prefers-color-scheme: dark) { - .page { - --gray-rgb: 255, 255, 255; - --gray-alpha-200: rgba(var(--gray-rgb), 0.145); - --gray-alpha-100: rgba(var(--gray-rgb), 0.06); - - --button-primary-hover: #ccc; - --button-secondary-hover: #1a1a1a; - } -} - -.main { - display: flex; - flex-direction: column; - gap: 32px; - grid-row-start: 2; -} - -.main ol { - font-family: var(--font-geist-mono); - padding-left: 0; - margin: 0; - font-size: 14px; - line-height: 24px; - letter-spacing: -0.01em; - list-style-position: inside; -} - -.main li:not(:last-of-type) { - margin-bottom: 8px; -} - -.main code { - font-family: inherit; - background: var(--gray-alpha-100); - padding: 2px 4px; - border-radius: 4px; - font-weight: 600; -} - -.ctas { - display: flex; - gap: 16px; -} - -.ctas a { - appearance: none; - border-radius: 128px; - height: 48px; - padding: 0 20px; - border: none; - border: 1px solid transparent; - transition: - background 0.2s, - color 0.2s, - border-color 0.2s; - cursor: pointer; - display: flex; - align-items: center; - justify-content: center; - font-size: 16px; - line-height: 20px; - font-weight: 500; -} - -a.primary { - background: var(--foreground); - color: var(--background); - gap: 8px; -} - -a.secondary { - border-color: var(--gray-alpha-200); - min-width: 158px; -} - -.footer { - grid-row-start: 3; - display: flex; - gap: 24px; -} - -.footer a { - display: flex; - align-items: center; - gap: 8px; -} - -.footer img { - flex-shrink: 0; -} - -/* Enable hover only on non-touch devices */ -@media (hover: hover) and (pointer: fine) { - a.primary:hover { - background: var(--button-primary-hover); - border-color: transparent; - } - - a.secondary:hover { - background: var(--button-secondary-hover); - border-color: transparent; - } - - .footer a:hover { - text-decoration: underline; - text-underline-offset: 4px; - } -} - -@media (max-width: 600px) { - .page { - padding: 32px; - padding-bottom: 80px; - } - - .main { - align-items: center; - } - - .main ol { - text-align: center; - } - - .ctas { - flex-direction: column; - } - - .ctas a { - font-size: 14px; - height: 40px; - padding: 0 16px; - } - - a.secondary { - min-width: auto; - } - - .footer { - flex-wrap: wrap; - align-items: center; - justify-content: center; - } -} - -@media (prefers-color-scheme: dark) { - .logo { - filter: invert(); - } -} diff --git a/ui/src/app/page.tsx b/ui/src/app/page.tsx index bc3fa57c..a7c45670 100644 --- a/ui/src/app/page.tsx +++ b/ui/src/app/page.tsx @@ -1,79 +1,5 @@ 'use client'; -import Image from 'next/image'; - -import styles from './page.module.css'; export default function Home() { - return ( -
-
- Next.js logo -
    -
  1. - Get started by editing src/app/page.tsx. -
  2. -
  3. Save and see your changes instantly.
  4. -
- - -
- -
- ); + return
GuideLLM
; } diff --git a/ui/tests/integration/page.test.tsx b/ui/tests/integration/page.test.tsx new file mode 100644 index 00000000..ef9a30af --- /dev/null +++ b/ui/tests/integration/page.test.tsx @@ -0,0 +1,9 @@ +import { render } from '@testing-library/react'; +import Home from '@/app/page'; + +describe('Home Page', () => { + it('renders the homepage content', () => { + const { getByText } = render(); + expect(getByText('GuideLLM')).toBeInTheDocument(); + }); +}); \ No newline at end of file diff --git a/ui/tests/unit/layout.test.tsx b/ui/tests/unit/layout.test.tsx new file mode 100644 index 00000000..ecf81b20 --- /dev/null +++ b/ui/tests/unit/layout.test.tsx @@ -0,0 +1,14 @@ +import { render } from '@testing-library/react'; +import RootLayout from '@/app/layout'; + +describe('RootLayout', () => { + it('renders children inside the layout', () => { + const { getByText } = render( + +

Test Child

+
+ ); + + expect(getByText('Test Child')).toBeInTheDocument(); + }); +}); diff --git a/ui/tsconfig.json b/ui/tsconfig.json index 57a5f991..6e00d008 100644 --- a/ui/tsconfig.json +++ b/ui/tsconfig.json @@ -2,7 +2,7 @@ "compilerOptions": { "allowJs": true, "allowSyntheticDefaultImports": true, - "baseUrl": "src/", + "baseUrl": ".", "esModuleInterop": true, "forceConsistentCasingInFileNames": true, "incremental": true, @@ -24,8 +24,18 @@ "resolveJsonModule": true, "skipLibCheck": true, "strict": true, - "target": "es5" + "target": "es5", + "types": ["jest", "@testing-library/jest-dom"] }, - "include": ["**/*.ts", "**/*.tsx", ".next/types/**/*.ts", "next-env.d.ts", "src"], + "include": [ + "**/*.ts", + "**/*.tsx", + ".next/types/**/*.ts", + "cypress.config.ts", + "jest.setup.ts", + "next-env.d.ts", + "src", + "jest.config.js" + ], "exclude": [".meta/**/*", ".next/**/*", ".vscode", "node_modules"] } From f876edbfe1929a46d62180bc0f159761848996c4 Mon Sep 17 00:00:00 2001 From: dalthecow Date: Wed, 14 May 2025 16:08:58 -0400 Subject: [PATCH 20/80] get testing set up fully functional --- .github/workflows/ui-development.yml | 28 + ui/.eslintrc.json | 17 +- ui/Makefile | 4 +- ui/next.config.mjs | 6 + ui/next.config.ts | 7 - ui/package-lock.json | 2124 ++++++++++-------- ui/package.json | 10 +- ui/{ => src}/tests/integration/page.test.tsx | 2 +- ui/{ => src}/tests/unit/layout.test.tsx | 0 ui/src/types/jest-dom.d.ts | 1 + ui/tsconfig.base.json | 30 + ui/tsconfig.cypress.json | 8 + ui/tsconfig.json | 44 +- ui/tsconfig.test.json | 8 + 14 files changed, 1253 insertions(+), 1036 deletions(-) create mode 100644 ui/next.config.mjs delete mode 100644 ui/next.config.ts rename ui/{ => src}/tests/integration/page.test.tsx (98%) rename ui/{ => src}/tests/unit/layout.test.tsx (100%) create mode 100644 ui/src/types/jest-dom.d.ts create mode 100644 ui/tsconfig.base.json create mode 100644 ui/tsconfig.cypress.json create mode 100644 ui/tsconfig.test.json diff --git a/.github/workflows/ui-development.yml b/.github/workflows/ui-development.yml index b5ed2c21..1cb68410 100644 --- a/.github/workflows/ui-development.yml +++ b/.github/workflows/ui-development.yml @@ -73,3 +73,31 @@ jobs: - name: Run integration tests run: make test-integration + + e2e-tests: + # Permissions needed to get ID token for OIDC auth + permissions: + contents: "read" + id-token: "write" + runs-on: ubuntu-latest + steps: + - name: Check out code + uses: actions/checkout@v3 + + - name: Install dependencies + run: | + cd ui + npm ci + + - name: Generate Build + run: | + cd ui + npm run build + + - name: Start the Next.js app + run: | + npx serve@latest out & + npx wait-on http://localhost:3000 # Wait until the app is ready + + - name: Run Cypress tests + run: npx cypress run --headless diff --git a/ui/.eslintrc.json b/ui/.eslintrc.json index 80aa6d0c..f3968cf7 100644 --- a/ui/.eslintrc.json +++ b/ui/.eslintrc.json @@ -43,7 +43,22 @@ "newlines-between": "always" } ], - "import/no-extraneous-dependencies": ["error"], + "import/no-extraneous-dependencies": [ + "error", + { + "devDependencies": [ + "**/*.test.ts", + "**/*.test.tsx", + "**/*.d.ts", + "**/*.interfaces.ts", + "**/*.setup.ts", + "**/*.config.js", + "**/*.config.mjs" + ], + "optionalDependencies": false, + "peerDependencies": false + } + ], "no-secrets/no-secrets": ["error", { "additionalRegexes": {}, "ignoreContent": [] }] } } diff --git a/ui/Makefile b/ui/Makefile index 19e095c9..59354ef1 100644 --- a/ui/Makefile +++ b/ui/Makefile @@ -7,7 +7,9 @@ quality: @# Run eslint checks npx eslint --max-warnings 10 $(CHECKDIRS) @# Run TypeScript checks - npx tsc --noEmit + npx tsc -p tsconfig.json --noEmit # app code + npx tsc -p tsconfig.test.json --noEmit # unit + integration tests + npx tsc -p tsconfig.cypress.json --noEmit # Style the code according to accepted standards for the repo style: diff --git a/ui/next.config.mjs b/ui/next.config.mjs new file mode 100644 index 00000000..bf221d35 --- /dev/null +++ b/ui/next.config.mjs @@ -0,0 +1,6 @@ +/** @type {import('next').NextConfig} */ +const nextConfig = { + output: 'export', +}; + +export default nextConfig; diff --git a/ui/next.config.ts b/ui/next.config.ts deleted file mode 100644 index 65c102b9..00000000 --- a/ui/next.config.ts +++ /dev/null @@ -1,7 +0,0 @@ -import type { NextConfig } from "next"; - -const nextConfig: NextConfig = { - output: "export", -}; - -export default nextConfig; diff --git a/ui/package-lock.json b/ui/package-lock.json index 83eec1db..97948e1b 100644 --- a/ui/package-lock.json +++ b/ui/package-lock.json @@ -20,14 +20,15 @@ "@types/node": "^20", "@types/react": "^19", "@types/react-dom": "^19", - "@typescript-eslint/eslint-plugin": "^5.43.0", - "@typescript-eslint/parser": "^5.43.0", + "@types/testing-library__jest-dom": "^5.14.9", + "@typescript-eslint/eslint-plugin": "^8.0.0", + "@typescript-eslint/parser": "^8.0.0", "cypress": "^13.13.3", "eslint": "^8.27.0", "eslint-config-next": "14.2.5", "eslint-config-prettier": "^8.5.0", "eslint-plugin-import": "^2.29.1", - "eslint-plugin-jest": "^27.1.5", + "eslint-plugin-jest": "^28.11.0", "eslint-plugin-jsx-a11y": "^6.6.1", "eslint-plugin-no-secrets": "^1.0.2", "eslint-plugin-prettier": "^5.4.0", @@ -41,8 +42,7 @@ "jest-transform-stub": "^2.0.0", "prettier": "^3.5.3", "ts-jest": "^29.2.4", - "tslint-config-prettier": "^1.18.0", - "typescript": "^5" + "typescript": "5" } }, "node_modules/@adobe/css-tools": { @@ -122,19 +122,6 @@ "url": "https://opencollective.com/babel" } }, - "node_modules/@babel/core/node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "license": "MIT", - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/@babel/core/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -179,16 +166,6 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^3.0.2" - } - }, "node_modules/@babel/helper-compilation-targets/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -682,6 +659,7 @@ "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.4.3.tgz", "integrity": "sha512-4m62DuCE07lw01soJwPiBGC0nAww0Q+RY70VZ+n49yDIO13yyinhbWCeNnaob0lakDtWQzSdtNWzJeOJt2ma+g==", "dev": true, + "license": "MIT", "optional": true, "dependencies": { "@emnapi/wasi-threads": "1.0.2", @@ -692,6 +670,7 @@ "version": "1.4.3", "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.4.3.tgz", "integrity": "sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==", + "license": "MIT", "optional": true, "dependencies": { "tslib": "^2.4.0" @@ -702,6 +681,7 @@ "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.0.2.tgz", "integrity": "sha512-5n3nTJblwRi8LlXkJ9eBzu+kZR8Yxcc7ubakyQTFzPMtIhFpUBRbsnc2Dv88IZDIbCDlBiWrknhB4Lsz7mg6BA==", "dev": true, + "license": "MIT", "optional": true, "dependencies": { "tslib": "^2.4.0" @@ -712,6 +692,7 @@ "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz", "integrity": "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==", "dev": true, + "license": "MIT", "dependencies": { "eslint-visitor-keys": "^3.4.3" }, @@ -730,6 +711,7 @@ "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", "dev": true, + "license": "MIT", "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } @@ -758,6 +740,40 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/eslintrc/node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/@eslint/js": { "version": "8.57.1", "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", @@ -784,11 +800,36 @@ "node": ">=10.10.0" } }, + "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/@humanwhocodes/module-importer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=12.22" }, @@ -1213,6 +1254,24 @@ "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@isaacs/cliui/node_modules/strip-ansi": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", @@ -1441,84 +1500,6 @@ "node": ">=8" } }, - "node_modules/@jest/core/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@jest/core/node_modules/jest-config": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", - "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^29.7.0", - "@jest/types": "^29.6.3", - "babel-jest": "^29.7.0", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-circus": "^29.7.0", - "jest-environment-node": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-runner": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@types/node": "*", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "ts-node": { - "optional": true - } - } - }, - "node_modules/@jest/core/node_modules/jest-get-type": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", - "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, "node_modules/@jest/core/node_modules/pretty-format": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", @@ -1584,16 +1565,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@jest/expect-utils/node_modules/jest-get-type": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", - "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, "node_modules/@jest/fake-timers": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", @@ -1672,6 +1643,17 @@ } } }, + "node_modules/@jest/reporters/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, "node_modules/@jest/reporters/node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -1694,6 +1676,19 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/@jest/reporters/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/@jest/schemas": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", @@ -1857,6 +1852,7 @@ "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.9.tgz", "integrity": "sha512-OKRBiajrrxB9ATokgEQoG87Z25c67pCpYcCwmXYX8PBftC9pBfN18gnm/fh1wurSLEKIAt+QRFLFCQISrb66Jg==", "dev": true, + "license": "MIT", "optional": true, "dependencies": { "@emnapi/core": "^1.4.0", @@ -2013,6 +2009,7 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -2026,6 +2023,7 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } @@ -2035,6 +2033,7 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -2048,6 +2047,7 @@ "resolved": "https://registry.npmjs.org/@nolyfill/is-core-module/-/is-core-module-1.0.39.tgz", "integrity": "sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==", "dev": true, + "license": "MIT", "engines": { "node": ">=12.4.0" } @@ -2080,13 +2080,15 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@rushstack/eslint-patch": { "version": "1.11.0", "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.11.0.tgz", "integrity": "sha512-zxnHvoMQVqewTJr/W4pKjF0bMGiKJv1WX7bSrkl46Hg0QjESbzBROWK0Wg4RphzSOS5Jiy7eFimmM3UgMrMZbQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@sinclair/typebox": { "version": "0.27.8", @@ -2151,17 +2153,6 @@ "node": ">=18" } }, - "node_modules/@testing-library/dom/node_modules/aria-query": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", - "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", - "dev": true, - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "dequal": "^2.0.3" - } - }, "node_modules/@testing-library/jest-dom": { "version": "5.17.0", "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.17.0.tgz", @@ -2259,6 +2250,7 @@ "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.9.0.tgz", "integrity": "sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==", "dev": true, + "license": "MIT", "optional": true, "dependencies": { "tslib": "^2.4.0" @@ -2377,53 +2369,43 @@ "parse5": "^7.0.0" } }, - "node_modules/@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true, - "license": "MIT" - }, "node_modules/@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/node": { - "version": "20.17.46", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.46.tgz", - "integrity": "sha512-0PQHLhZPWOxGW4auogW0eOQAuNIlCYvibIpG67ja0TOJ6/sehu+1en7sfceUn+QQtx4Rk3GxbLNwPh0Cav7TWw==", + "version": "20.17.47", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.47.tgz", + "integrity": "sha512-3dLX0Upo1v7RvUimvxLeXqwrfyKxUINk0EAM83swP2mlSUcwV73sZy8XhNz8bcZ3VbsfQyC/y6jRdL5tgCNpDQ==", "dev": true, + "license": "MIT", "dependencies": { "undici-types": "~6.19.2" } }, "node_modules/@types/react": { - "version": "19.1.3", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.3.tgz", - "integrity": "sha512-dLWQ+Z0CkIvK1J8+wrDPwGxEYFA4RAyHoZPxHVGspYmFVnwGSNT24cGIhFJrtfRnWVuW8X7NO52gCXmhkVUWGQ==", + "version": "19.1.4", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.4.tgz", + "integrity": "sha512-EB1yiiYdvySuIITtD5lhW4yPyJ31RkJkkDw794LaQYrxCSaQV/47y5o1FMC4zF9ZyjUjzJMZwbovEnT5yHTW6g==", "dev": true, + "license": "MIT", "dependencies": { "csstype": "^3.0.2" } }, "node_modules/@types/react-dom": { - "version": "19.1.3", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.1.3.tgz", - "integrity": "sha512-rJXC08OG0h3W6wDMFxQrZF00Kq6qQvw0djHRdzl3U5DnIERz0MRce3WVc7IS6JYBwtaP/DwYtRRjVlvivNveKg==", + "version": "19.1.5", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.1.5.tgz", + "integrity": "sha512-CMCjrWucUBZvohgZxkjd6S9h0nZxXjzus6yDfUb+xLxYM7VvjKNH1tQrE9GWLql1XoOP4/Ds3bwFqShHUYraGg==", "dev": true, + "license": "MIT", "peerDependencies": { "@types/react": "^19.0.0" } }, - "node_modules/@types/semver": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.7.0.tgz", - "integrity": "sha512-k107IF4+Xr7UHjwDc7Cfd6PRQfbdkiRabXGRjo07b4WyPahFBZCZ1sE+BNxYIJPPg73UkfOsVOLwqVc/6ETrIA==", - "dev": true, - "license": "MIT" - }, "node_modules/@types/sinonjs__fake-timers": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz", @@ -2491,80 +2473,72 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", - "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", + "version": "8.32.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.32.1.tgz", + "integrity": "sha512-6u6Plg9nP/J1GRpe/vcjjabo6Uc5YQPAMxsgQyGC/I0RuukiG1wIe3+Vtg3IrSCVJDmqK3j8adrtzXSENRtFgg==", "dev": true, "license": "MIT", "dependencies": { - "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/type-utils": "5.62.0", - "@typescript-eslint/utils": "5.62.0", - "debug": "^4.3.4", + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.32.1", + "@typescript-eslint/type-utils": "8.32.1", + "@typescript-eslint/utils": "8.32.1", + "@typescript-eslint/visitor-keys": "8.32.1", "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "natural-compare-lite": "^1.4.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" + "ignore": "^7.0.0", + "natural-compare": "^1.4.0", + "ts-api-utils": "^2.1.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" } }, "node_modules/@typescript-eslint/parser": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", - "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", + "version": "8.32.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.32.1.tgz", + "integrity": "sha512-LKMrmwCPoLhM45Z00O1ulb6jwyVr2kr3XJp+G+tSEZcbauNnScewcQwtJqXDhXeYPDEjZ8C1SjXm015CirEmGg==", "dev": true, - "license": "BSD-2-Clause", + "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", + "@typescript-eslint/scope-manager": "8.32.1", + "@typescript-eslint/types": "8.32.1", + "@typescript-eslint/typescript-estree": "8.32.1", + "@typescript-eslint/visitor-keys": "8.32.1", "debug": "^4.3.4" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", - "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", + "version": "8.32.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.32.1.tgz", + "integrity": "sha512-7IsIaIDeZn7kffk7qXC3o6Z4UblZJKV3UBpkvRNpr5NSyLji7tvTcvmnMNYuYLyh26mN8W723xpo3i4MlD33vA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0" + "@typescript-eslint/types": "8.32.1", + "@typescript-eslint/visitor-keys": "8.32.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -2572,41 +2546,37 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", - "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", + "version": "8.32.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.32.1.tgz", + "integrity": "sha512-mv9YpQGA8iIsl5KyUPi+FGLm7+bA4fgXaeRcFKRDRwDMu4iwrSHeDPipwueNXhdIIZltwCJv+NkxftECbIZWfA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "5.62.0", - "@typescript-eslint/utils": "5.62.0", + "@typescript-eslint/typescript-estree": "8.32.1", + "@typescript-eslint/utils": "8.32.1", "debug": "^4.3.4", - "tsutils": "^3.21.0" + "ts-api-utils": "^2.1.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" } }, "node_modules/@typescript-eslint/types": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", - "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", + "version": "8.32.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.32.1.tgz", + "integrity": "sha512-YmybwXUJcgGqgAp6bEsgpPXEg6dcCyPyCSr0CAAueacR/CCBi25G3V8gGQ2kRzQRBNol7VQknxMs9HvVa9Rvfg==", "dev": true, "license": "MIT", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -2614,78 +2584,87 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", - "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "version": "8.32.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.32.1.tgz", + "integrity": "sha512-Y3AP9EIfYwBb4kWGb+simvPaqQoT5oJuzzj9m0i6FCY6SPvlomY2Ei4UEMm7+FXtlNJbor80ximyslzaQF6xhg==", "dev": true, - "license": "BSD-2-Clause", + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0", + "@typescript-eslint/types": "8.32.1", + "@typescript-eslint/visitor-keys": "8.32.1", "debug": "^4.3.4", - "globby": "^11.1.0", + "fast-glob": "^3.3.2", "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^2.1.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "peerDependencies": { + "typescript": ">=4.8.4 <5.9.0" } }, "node_modules/@typescript-eslint/utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", - "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", + "version": "8.32.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.32.1.tgz", + "integrity": "sha512-DsSFNIgLSrc89gpq1LJB7Hm1YpuhK086DRDJSNrewcGvYloWW1vZLHBTIvarKZDcAORIy/uWNx8Gad+4oMpkSA==", "dev": true, "license": "MIT", "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" + "@eslint-community/eslint-utils": "^4.7.0", + "@typescript-eslint/scope-manager": "8.32.1", + "@typescript-eslint/types": "8.32.1", + "@typescript-eslint/typescript-estree": "8.32.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", - "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "version": "8.32.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.32.1.tgz", + "integrity": "sha512-ar0tjQfObzhSaW3C3QNmTc5ofj0hDoNQ5XWrCy6zDyabdr0TWhCkClp+rywGNj/odAFBVzzJrK4tEq5M4Hmu4w==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "5.62.0", - "eslint-visitor-keys": "^3.3.0" + "@typescript-eslint/types": "8.32.1", + "eslint-visitor-keys": "^4.2.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" } }, + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, "node_modules/@ungap/structured-clone": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", @@ -2701,6 +2680,7 @@ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -2714,6 +2694,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -2727,6 +2708,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "freebsd" @@ -2740,6 +2722,7 @@ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -2753,6 +2736,7 @@ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -2766,6 +2750,7 @@ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -2779,6 +2764,7 @@ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -2792,6 +2778,7 @@ "ppc64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -2805,6 +2792,7 @@ "riscv64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -2818,6 +2806,7 @@ "riscv64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -2831,6 +2820,7 @@ "s390x" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -2844,6 +2834,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -2857,6 +2848,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -2870,6 +2862,7 @@ "wasm32" ], "dev": true, + "license": "MIT", "optional": true, "dependencies": { "@napi-rs/wasm-runtime": "^0.2.9" @@ -2886,6 +2879,7 @@ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" @@ -2899,6 +2893,7 @@ "ia32" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" @@ -2912,6 +2907,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" @@ -3070,6 +3066,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -3123,12 +3120,13 @@ "license": "Python-2.0" }, "node_modules/aria-query": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", - "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", "dev": true, - "engines": { - "node": ">= 0.4" + "license": "Apache-2.0", + "dependencies": { + "dequal": "^2.0.3" } }, "node_modules/array-buffer-byte-length": { @@ -3136,6 +3134,7 @@ "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.3", "is-array-buffer": "^3.0.5" @@ -3152,6 +3151,7 @@ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -3182,6 +3182,7 @@ "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -3202,6 +3203,7 @@ "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz", "integrity": "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.4", @@ -3223,6 +3225,7 @@ "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", @@ -3241,6 +3244,7 @@ "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", @@ -3259,6 +3263,7 @@ "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -3275,6 +3280,7 @@ "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", "dev": true, + "license": "MIT", "dependencies": { "array-buffer-byte-length": "^1.0.1", "call-bind": "^1.0.8", @@ -3315,7 +3321,8 @@ "version": "0.0.8", "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/astral-regex": { "version": "2.0.0", @@ -3339,6 +3346,7 @@ "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" } @@ -3365,6 +3373,7 @@ "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", "dev": true, + "license": "MIT", "dependencies": { "possible-typed-array-names": "^1.0.0" }, @@ -3397,6 +3406,7 @@ "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.10.3.tgz", "integrity": "sha512-Xm7bpRXnDSX2YE2YFfBk2FnF0ep6tmG7xPh8iHee8MIcrgq762Nkce856dYtJYLkuIoYZvGfTs/PbZhideTcEg==", "dev": true, + "license": "MPL-2.0", "engines": { "node": ">=4" } @@ -3406,6 +3416,7 @@ "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">= 0.4" } @@ -3540,7 +3551,8 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/base64-js": { "version": "1.5.1", @@ -3588,13 +3600,13 @@ "license": "MIT" }, "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, + "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "balanced-match": "^1.0.0" } }, "node_modules/braces": { @@ -3734,6 +3746,7 @@ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", "dev": true, + "license": "MIT", "dependencies": { "call-bind-apply-helpers": "^1.0.0", "es-define-property": "^1.0.0", @@ -3752,6 +3765,7 @@ "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", "dev": true, + "license": "MIT", "dependencies": { "es-errors": "^1.3.0", "function-bind": "^1.1.2" @@ -3765,6 +3779,7 @@ "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind-apply-helpers": "^1.0.2", "get-intrinsic": "^1.3.0" @@ -3797,9 +3812,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001717", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001717.tgz", - "integrity": "sha512-auPpttCq6BDEG8ZAuHJIplGw6GODhjw+/11e7IjpnYCxZcW/ONgPs0KVBJ0d1bY3e2+7PRe5RCLyP+PfwVgkYw==", + "version": "1.0.30001718", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001718.tgz", + "integrity": "sha512-AflseV1ahcSunK53NfEs9gFWgOEmzr0f+kaMFA4xiLZlr9Hzt7HxcSpIFcnNCUkz6R6dWKa54rUz3HUmI3nVcw==", "funding": [ { "type": "opencollective", @@ -3813,7 +3828,8 @@ "type": "github", "url": "https://github.com/sponsors/ai" } - ] + ], + "license": "CC-BY-4.0" }, "node_modules/caseless": { "version": "0.12.0", @@ -3827,6 +3843,7 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -3920,28 +3937,6 @@ "@colors/colors": "1.5.0" } }, - "node_modules/cli-table3/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/cli-table3/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/cli-truncate": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", @@ -3959,28 +3954,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cli-truncate/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/cli-truncate/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/client-only": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", @@ -4002,28 +3975,6 @@ "node": ">=12" } }, - "node_modules/cliui/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/cliui/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/cliui/node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -4079,6 +4030,7 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "devOptional": true, + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -4090,7 +4042,8 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "devOptional": true + "devOptional": true, + "license": "MIT" }, "node_modules/color-string": { "version": "1.9.1", @@ -4147,7 +4100,8 @@ "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/convert-source-map": { "version": "2.0.0", @@ -4185,175 +4139,46 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/create-jest/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dev": true, "license": "MIT", - "engines": { - "node": ">=10" + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "engines": { + "node": ">= 8" } }, - "node_modules/create-jest/node_modules/ci-info": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "node_modules/css.escape": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", + "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "license": "MIT", - "engines": { - "node": ">=8" - } + "license": "MIT" }, - "node_modules/create-jest/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", + "node_modules/cssom": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", + "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==", "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } + "license": "MIT" }, - "node_modules/create-jest/node_modules/jest-config": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", - "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", + "node_modules/cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", "dev": true, "license": "MIT", "dependencies": { - "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^29.7.0", - "@jest/types": "^29.6.3", - "babel-jest": "^29.7.0", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-circus": "^29.7.0", - "jest-environment-node": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-runner": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" + "cssom": "~0.3.6" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@types/node": "*", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "ts-node": { - "optional": true - } - } - }, - "node_modules/create-jest/node_modules/jest-get-type": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", - "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/create-jest/node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/create-jest/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true, - "license": "MIT" - }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/css.escape": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", - "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==", - "dev": true, - "license": "MIT" - }, - "node_modules/cssom": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", - "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==", - "dev": true, - "license": "MIT" - }, - "node_modules/cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", - "dev": true, - "license": "MIT", - "dependencies": { - "cssom": "~0.3.6" - }, - "engines": { - "node": ">=8" + "node": ">=8" } }, "node_modules/cssstyle/node_modules/cssom": { @@ -4367,7 +4192,8 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/cypress": { "version": "13.17.0", @@ -4448,7 +4274,8 @@ "version": "1.0.8", "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", - "dev": true + "dev": true, + "license": "BSD-2-Clause" }, "node_modules/dashdash": { "version": "1.14.1", @@ -4483,6 +4310,7 @@ "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", @@ -4500,6 +4328,7 @@ "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", @@ -4517,6 +4346,7 @@ "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", @@ -4537,10 +4367,11 @@ "license": "MIT" }, "node_modules/debug": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", - "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", "dev": true, + "license": "MIT", "dependencies": { "ms": "^2.1.3" }, @@ -4579,7 +4410,8 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/deepmerge": { "version": "4.3.1", @@ -4596,6 +4428,7 @@ "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", "dev": true, + "license": "MIT", "dependencies": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", @@ -4613,6 +4446,7 @@ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", "dev": true, + "license": "MIT", "dependencies": { "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", @@ -4641,7 +4475,6 @@ "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=6" } @@ -4690,15 +4523,16 @@ } }, "node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, + "license": "Apache-2.0", "dependencies": { "esutils": "^2.0.2" }, "engines": { - "node": ">=0.10.0" + "node": ">=6.0.0" } }, "node_modules/dom-accessibility-api": { @@ -4727,6 +4561,7 @@ "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", "dev": true, + "license": "MIT", "dependencies": { "call-bind-apply-helpers": "^1.0.1", "es-errors": "^1.3.0", @@ -4794,7 +4629,8 @@ "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/end-of-stream": { "version": "1.4.4", @@ -4843,18 +4679,12 @@ "is-arrayish": "^0.2.1" } }, - "node_modules/error-ex/node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true, - "license": "MIT" - }, "node_modules/es-abstract": { "version": "1.23.9", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz", "integrity": "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==", "dev": true, + "license": "MIT", "dependencies": { "array-buffer-byte-length": "^1.0.2", "arraybuffer.prototype.slice": "^1.0.4", @@ -4920,6 +4750,7 @@ "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" } @@ -4929,6 +4760,7 @@ "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" } @@ -4938,6 +4770,7 @@ "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.1.tgz", "integrity": "sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", @@ -4965,6 +4798,7 @@ "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", "dev": true, + "license": "MIT", "dependencies": { "es-errors": "^1.3.0" }, @@ -4977,6 +4811,7 @@ "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", "dev": true, + "license": "MIT", "dependencies": { "es-errors": "^1.3.0", "get-intrinsic": "^1.2.6", @@ -4992,6 +4827,7 @@ "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==", "dev": true, + "license": "MIT", "dependencies": { "hasown": "^2.0.2" }, @@ -5004,6 +4840,7 @@ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", "dev": true, + "license": "MIT", "dependencies": { "is-callable": "^1.2.7", "is-date-object": "^1.0.5", @@ -5031,6 +4868,7 @@ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -5144,6 +4982,114 @@ } } }, + "node_modules/eslint-config-next/node_modules/@typescript-eslint/parser": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.2.0.tgz", + "integrity": "sha512-5FKsVcHTk6TafQKQbuIVkXq58Fnbkd2wDL4LB7AURN7RUOu1utVP+G8+6u3ZhEroW3DF6hyo3ZEXxgKgp4KeCg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/scope-manager": "7.2.0", + "@typescript-eslint/types": "7.2.0", + "@typescript-eslint/typescript-estree": "7.2.0", + "@typescript-eslint/visitor-keys": "7.2.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/eslint-config-next/node_modules/@typescript-eslint/scope-manager": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.2.0.tgz", + "integrity": "sha512-Qh976RbQM/fYtjx9hs4XkayYujB/aPwglw2choHmf3zBjB4qOywWSdt9+KLRdHubGcoSwBnXUH2sR3hkyaERRg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "7.2.0", + "@typescript-eslint/visitor-keys": "7.2.0" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/eslint-config-next/node_modules/@typescript-eslint/types": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.2.0.tgz", + "integrity": "sha512-XFtUHPI/abFhm4cbCDc5Ykc8npOKBSJePY3a3s+lwumt7XWJuzP5cZcfZ610MIPHjQjNsOLlYK8ASPaNG8UiyA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/eslint-config-next/node_modules/@typescript-eslint/typescript-estree": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.2.0.tgz", + "integrity": "sha512-cyxS5WQQCoBwSakpMrvMXuMDEbhOo9bNHHrNcEWis6XHx6KF518tkF1wBvKIn/tpq5ZpUYK7Bdklu8qY0MsFIA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/types": "7.2.0", + "@typescript-eslint/visitor-keys": "7.2.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "9.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/eslint-config-next/node_modules/@typescript-eslint/visitor-keys": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.2.0.tgz", + "integrity": "sha512-c6EIQRHhcpl6+tO8EMR+kjkkV+ugUNXOmeASA1rlzkd8EPIriavpWoiEz1HR/VLhbVIdhqnV6E7JZm00cBDx2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "7.2.0", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, "node_modules/eslint-config-next/node_modules/eslint-plugin-react-hooks": { "version": "5.0.0-canary-7118f5dd7-20230705", "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.0.0-canary-7118f5dd7-20230705.tgz", @@ -5157,6 +5103,35 @@ "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" } }, + "node_modules/eslint-config-next/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/eslint-config-next/node_modules/ts-api-utils": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.3.tgz", + "integrity": "sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, "node_modules/eslint-config-prettier": { "version": "8.10.0", "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz", @@ -5175,6 +5150,7 @@ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^3.2.7", "is-core-module": "^2.13.0", @@ -5186,6 +5162,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, + "license": "MIT", "dependencies": { "ms": "^2.1.1" } @@ -5195,6 +5172,7 @@ "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.10.1.tgz", "integrity": "sha512-A1rHYb06zjMGAxdLSkN2fXPBwuSaQ0iO5M/hdyS0Ajj1VBaRp0sPD3dn1FhME3c/JluGFbwSxyCfqdSbtQLAHQ==", "dev": true, + "license": "ISC", "dependencies": { "@nolyfill/is-core-module": "1.0.39", "debug": "^4.4.0", @@ -5229,6 +5207,7 @@ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz", "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^3.2.7" }, @@ -5246,6 +5225,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, + "license": "MIT", "dependencies": { "ms": "^2.1.1" } @@ -5255,6 +5235,7 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz", "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==", "dev": true, + "license": "MIT", "dependencies": { "@rtsao/scc": "^1.1.0", "array-includes": "^3.1.8", @@ -5283,39 +5264,78 @@ "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" } }, + "node_modules/eslint-plugin-import/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, "node_modules/eslint-plugin-import/node_modules/debug": { "version": "3.2.7", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, + "license": "MIT", "dependencies": { "ms": "^2.1.1" } }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/eslint-plugin-import/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/eslint-plugin-jest": { - "version": "27.9.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-27.9.0.tgz", - "integrity": "sha512-QIT7FH7fNmd9n4se7FFKHbsLKGQiw885Ds6Y/sxKgCZ6natwCsXdgPOADnYVxN2QrRweF0FZWbJ6S7Rsn7llug==", + "version": "28.11.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-28.11.0.tgz", + "integrity": "sha512-QAfipLcNCWLVocVbZW8GimKn5p5iiMcgGbRzz8z/P5q7xw+cNEpYqyzFMtIF/ZgF2HLOyy+dYBut+DoYolvqig==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/utils": "^5.10.0" + "@typescript-eslint/utils": "^6.0.0 || ^7.0.0 || ^8.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^16.10.0 || ^18.12.0 || >=20.0.0" }, "peerDependencies": { - "@typescript-eslint/eslint-plugin": "^5.0.0 || ^6.0.0 || ^7.0.0", - "eslint": "^7.0.0 || ^8.0.0", + "@typescript-eslint/eslint-plugin": "^6.0.0 || ^7.0.0 || ^8.0.0", + "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0", "jest": "*" }, "peerDependenciesMeta": { @@ -5332,6 +5352,7 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz", "integrity": "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==", "dev": true, + "license": "MIT", "dependencies": { "aria-query": "^5.3.2", "array-includes": "^3.1.8", @@ -5356,6 +5377,40 @@ "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9" } }, + "node_modules/eslint-plugin-jsx-a11y/node_modules/aria-query": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", + "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/eslint-plugin-jsx-a11y/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint-plugin-jsx-a11y/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/eslint-plugin-no-secrets": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/eslint-plugin-no-secrets/-/eslint-plugin-no-secrets-1.1.2.tgz", @@ -5406,6 +5461,7 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz", "integrity": "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==", "dev": true, + "license": "MIT", "dependencies": { "array-includes": "^3.1.8", "array.prototype.findlast": "^1.2.5", @@ -5446,11 +5502,49 @@ "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" } }, + "node_modules/eslint-plugin-react/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint-plugin-react/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-react/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/eslint-plugin-react/node_modules/resolve": { "version": "2.0.0-next.5", "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", "dev": true, + "license": "MIT", "dependencies": { "is-core-module": "^2.13.0", "path-parse": "^1.0.7", @@ -5468,32 +5562,26 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" + "estraverse": "^5.2.0" }, "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/eslint-scope/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/eslint-visitor-keys": { @@ -5509,34 +5597,38 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint/node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "node_modules/eslint/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, - "license": "Apache-2.0", + "license": "MIT", "dependencies": { - "esutils": "^2.0.2" - }, + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint/node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=6.0.0" + "node": ">= 4" } }, - "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "node_modules/eslint/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, - "license": "BSD-2-Clause", + "license": "ISC", "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" + "brace-expansion": "^1.1.7" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "node": "*" } }, "node_modules/espree": { @@ -5576,6 +5668,7 @@ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "estraverse": "^5.1.0" }, @@ -5601,6 +5694,7 @@ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } @@ -5610,6 +5704,7 @@ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=0.10.0" } @@ -5645,13 +5740,6 @@ "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/execa/node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true, - "license": "ISC" - }, "node_modules/executable": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz", @@ -5730,16 +5818,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/expect/node_modules/jest-get-type": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", - "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, "node_modules/expect/node_modules/jest-matcher-utils": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", @@ -5871,13 +5949,15 @@ "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fastq": { "version": "1.19.1", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", "dev": true, + "license": "ISC", "dependencies": { "reusify": "^1.0.4" } @@ -5951,16 +6031,6 @@ "minimatch": "^5.0.1" } }, - "node_modules/filelist/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, "node_modules/filelist/node_modules/minimatch": { "version": "5.1.6", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", @@ -5992,6 +6062,7 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, + "license": "MIT", "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" @@ -6030,6 +6101,7 @@ "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", "dev": true, + "license": "MIT", "dependencies": { "is-callable": "^1.2.7" }, @@ -6057,6 +6129,19 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", @@ -6126,6 +6211,7 @@ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -6135,6 +6221,7 @@ "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", @@ -6155,6 +6242,7 @@ "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -6184,6 +6272,7 @@ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind-apply-helpers": "^1.0.2", "es-define-property": "^1.0.1", @@ -6218,6 +6307,7 @@ "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", "dev": true, + "license": "MIT", "dependencies": { "dunder-proto": "^1.0.1", "es-object-atoms": "^1.0.0" @@ -6247,6 +6337,7 @@ "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", @@ -6264,6 +6355,7 @@ "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.0.tgz", "integrity": "sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==", "dev": true, + "license": "MIT", "dependencies": { "resolve-pkg-maps": "^1.0.0" }, @@ -6319,6 +6411,7 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.3" }, @@ -6326,32 +6419,6 @@ "node": ">=10.13.0" } }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/glob/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/global-dirs": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", @@ -6389,6 +6456,7 @@ "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", "dev": true, + "license": "MIT", "dependencies": { "define-properties": "^1.2.1", "gopd": "^1.0.1" @@ -6421,11 +6489,22 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/globby/node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, "node_modules/gopd": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -6444,13 +6523,15 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/has-bigints": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -6463,6 +6544,7 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -6472,6 +6554,7 @@ "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", "dev": true, + "license": "MIT", "dependencies": { "es-define-property": "^1.0.0" }, @@ -6484,6 +6567,7 @@ "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", "dev": true, + "license": "MIT", "dependencies": { "dunder-proto": "^1.0.0" }, @@ -6499,6 +6583,7 @@ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -6511,6 +6596,7 @@ "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "dev": true, + "license": "MIT", "dependencies": { "has-symbols": "^1.0.3" }, @@ -6526,6 +6612,7 @@ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dev": true, + "license": "MIT", "dependencies": { "function-bind": "^1.1.2" }, @@ -6658,10 +6745,11 @@ "license": "BSD-3-Clause" }, "node_modules/ignore": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.4.tgz", + "integrity": "sha512-gJzzk+PQNznz8ysRrC0aOkBNVRBDtE1n53IqyqEf3PXrYwomFs5q4pGMizBMJF+ykh03insJ27hB8gSrD2Hn8A==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4" } @@ -6708,6 +6796,7 @@ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.19" } @@ -6756,6 +6845,7 @@ "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", "dev": true, + "license": "MIT", "dependencies": { "es-errors": "^1.3.0", "hasown": "^2.0.2", @@ -6770,6 +6860,7 @@ "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", @@ -6783,17 +6874,18 @@ } }, "node_modules/is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", - "license": "MIT", - "optional": true + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true, + "license": "MIT" }, "node_modules/is-async-function": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", "dev": true, + "license": "MIT", "dependencies": { "async-function": "^1.0.0", "call-bound": "^1.0.3", @@ -6813,6 +6905,7 @@ "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", "dev": true, + "license": "MIT", "dependencies": { "has-bigints": "^1.0.2" }, @@ -6828,6 +6921,7 @@ "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" @@ -6844,6 +6938,7 @@ "resolved": "https://registry.npmjs.org/is-bun-module/-/is-bun-module-2.0.0.tgz", "integrity": "sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ==", "dev": true, + "license": "MIT", "dependencies": { "semver": "^7.7.1" } @@ -6853,6 +6948,7 @@ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -6865,6 +6961,7 @@ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", "dev": true, + "license": "MIT", "dependencies": { "hasown": "^2.0.2" }, @@ -6880,6 +6977,7 @@ "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.2", "get-intrinsic": "^1.2.6", @@ -6897,6 +6995,7 @@ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.2", "has-tostringtag": "^1.0.2" @@ -6913,6 +7012,7 @@ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -6922,6 +7022,7 @@ "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.3" }, @@ -6957,6 +7058,7 @@ "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.3", "get-proto": "^1.0.0", @@ -6975,6 +7077,7 @@ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, + "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" }, @@ -7004,6 +7107,7 @@ "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -7026,6 +7130,7 @@ "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" @@ -7059,6 +7164,7 @@ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.2", "gopd": "^1.2.0", @@ -7077,6 +7183,7 @@ "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -7089,6 +7196,7 @@ "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.3" }, @@ -7117,6 +7225,7 @@ "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" @@ -7133,6 +7242,7 @@ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.2", "has-symbols": "^1.1.0", @@ -7150,6 +7260,7 @@ "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", "dev": true, + "license": "MIT", "dependencies": { "which-typed-array": "^1.1.16" }, @@ -7185,6 +7296,7 @@ "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -7197,6 +7309,7 @@ "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.3" }, @@ -7212,6 +7325,7 @@ "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.3", "get-intrinsic": "^1.2.6" @@ -7227,7 +7341,8 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/isexe": { "version": "2.0.0", @@ -7319,6 +7434,7 @@ "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz", "integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==", "dev": true, + "license": "MIT", "dependencies": { "define-data-property": "^1.1.4", "es-object-atoms": "^1.0.0", @@ -7369,6 +7485,30 @@ "node": ">=10" } }, + "node_modules/jake/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/jake/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/jest": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", @@ -7458,13 +7598,6 @@ "node": ">=10.17.0" } }, - "node_modules/jest-changed-files/node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true, - "license": "ISC" - }, "node_modules/jest-circus": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", @@ -7536,16 +7669,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-circus/node_modules/jest-get-type": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", - "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, "node_modules/jest-circus/node_modules/jest-matcher-utils": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", @@ -7618,7 +7741,53 @@ } } }, - "node_modules/jest-cli/node_modules/ansi-styles": { + "node_modules/jest-config": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-config/node_modules/ansi-styles": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", @@ -7631,7 +7800,18 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-cli/node_modules/ci-info": { + "node_modules/jest-config/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/jest-config/node_modules/ci-info": { "version": "3.9.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", @@ -7647,7 +7827,7 @@ "node": ">=8" } }, - "node_modules/jest-cli/node_modules/glob": { + "node_modules/jest-config/node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", @@ -7669,63 +7849,20 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/jest-cli/node_modules/jest-config": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", - "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", + "node_modules/jest-config/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^29.7.0", - "@jest/types": "^29.6.3", - "babel-jest": "^29.7.0", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-circus": "^29.7.0", - "jest-environment-node": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-runner": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@types/node": "*", - "ts-node": ">=9.0.0" + "brace-expansion": "^1.1.7" }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "ts-node": { - "optional": true - } - } - }, - "node_modules/jest-cli/node_modules/jest-get-type": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", - "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", - "dev": true, - "license": "MIT", "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "*" } }, - "node_modules/jest-cli/node_modules/pretty-format": { + "node_modules/jest-config/node_modules/pretty-format": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", @@ -7740,7 +7877,7 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-cli/node_modules/react-is": { + "node_modules/jest-config/node_modules/react-is": { "version": "18.3.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", @@ -7780,6 +7917,16 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, + "node_modules/jest-diff/node_modules/jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, "node_modules/jest-docblock": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", @@ -7817,20 +7964,10 @@ "dev": true, "license": "MIT", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-each/node_modules/jest-get-type": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", - "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/jest-each/node_modules/pretty-format": { @@ -7902,13 +8039,13 @@ } }, "node_modules/jest-get-type": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", - "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", "dev": true, "license": "MIT", "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-haste-map": { @@ -7964,16 +8101,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-leak-detector/node_modules/jest-get-type": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", - "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, "node_modules/jest-leak-detector/node_modules/pretty-format": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", @@ -8012,6 +8139,16 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, + "node_modules/jest-matcher-utils/node_modules/jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, "node_modules/jest-message-util": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", @@ -8227,6 +8364,17 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/jest-runtime/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, "node_modules/jest-runtime/node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -8249,14 +8397,17 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/jest-runtime/node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "node_modules/jest-runtime/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, - "license": "MIT", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, "engines": { - "node": ">=8" + "node": "*" } }, "node_modules/jest-snapshot": { @@ -8330,16 +8481,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-snapshot/node_modules/jest-get-type": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", - "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, "node_modules/jest-snapshot/node_modules/jest-matcher-utils": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", @@ -8463,16 +8604,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-validate/node_modules/jest-get-type": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", - "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, "node_modules/jest-validate/node_modules/pretty-format": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", @@ -8551,7 +8682,8 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/js-yaml": { "version": "4.1.0", @@ -8690,7 +8822,8 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-stringify-safe": { "version": "5.0.1", @@ -8700,15 +8833,16 @@ "license": "ISC" }, "node_modules/json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, - "dependencies": { - "minimist": "^1.2.0" - }, + "license": "MIT", "bin": { "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" } }, "node_modules/jsonfile": { @@ -8745,6 +8879,7 @@ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", "dev": true, + "license": "MIT", "dependencies": { "array-includes": "^3.1.6", "array.prototype.flat": "^1.3.1", @@ -8779,13 +8914,15 @@ "version": "0.3.23", "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz", "integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==", - "dev": true + "dev": true, + "license": "CC0-1.0" }, "node_modules/language-tags": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz", "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", "dev": true, + "license": "MIT", "dependencies": { "language-subtag-registry": "^0.3.20" }, @@ -8818,6 +8955,7 @@ "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" @@ -8861,28 +8999,6 @@ } } }, - "node_modules/listr2/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/listr2/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/listr2/node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -8906,6 +9022,7 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, + "license": "MIT", "dependencies": { "p-locate": "^5.0.0" }, @@ -8934,7 +9051,8 @@ "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.once": { "version": "4.1.1", @@ -8979,13 +9097,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/log-update/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, "node_modules/log-update/node_modules/slice-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", @@ -9004,21 +9115,6 @@ "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, - "node_modules/log-update/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/log-update/node_modules/wrap-ansi": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", @@ -9039,6 +9135,7 @@ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "dev": true, + "license": "MIT", "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" }, @@ -9047,11 +9144,14 @@ } }, "node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, - "license": "ISC" + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } }, "node_modules/lz-string": { "version": "1.5.0", @@ -9102,6 +9202,7 @@ "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" } @@ -9181,15 +9282,19 @@ } }, "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, + "license": "ISC", "dependencies": { - "brace-expansion": "^1.1.7" + "brace-expansion": "^2.0.1" }, "engines": { - "node": "*" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/minimist": { @@ -9197,6 +9302,7 @@ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -9236,7 +9342,8 @@ "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/nanoid": { "version": "3.3.11", @@ -9248,6 +9355,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -9256,10 +9364,11 @@ } }, "node_modules/napi-postinstall": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-0.2.3.tgz", - "integrity": "sha512-Mi7JISo/4Ij2tDZ2xBE2WH+/KvVlkhA6juEjpEeRAVPNCpN3nxJo/5FhDNKgBcdmcmhaH6JjgST4xY/23ZYK0w==", + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-0.2.4.tgz", + "integrity": "sha512-ZEzHJwBhZ8qQSbknHqYcdtQVr8zUgGyM/q6h6qAyhtyVMNrSgDhrC4disf03dYW0e+czXyLnZINnCTEkWy0eJg==", "dev": true, + "license": "MIT", "bin": { "napi-postinstall": "lib/cli.js" }, @@ -9274,12 +9383,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "node_modules/natural-compare-lite": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", - "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", "dev": true, "license": "MIT" }, @@ -9386,6 +9489,7 @@ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -9395,6 +9499,7 @@ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -9407,6 +9512,7 @@ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" } @@ -9416,6 +9522,7 @@ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", @@ -9436,6 +9543,7 @@ "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.9.tgz", "integrity": "sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.4", @@ -9451,6 +9559,7 @@ "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -9469,6 +9578,7 @@ "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -9483,6 +9593,7 @@ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", @@ -9527,6 +9638,7 @@ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dev": true, + "license": "MIT", "dependencies": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", @@ -9551,6 +9663,7 @@ "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", "dev": true, + "license": "MIT", "dependencies": { "get-intrinsic": "^1.2.6", "object-keys": "^1.1.1", @@ -9568,6 +9681,7 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, + "license": "MIT", "dependencies": { "yocto-queue": "^0.1.0" }, @@ -9583,6 +9697,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, + "license": "MIT", "dependencies": { "p-limit": "^3.0.2" }, @@ -9669,6 +9784,7 @@ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } @@ -9697,7 +9813,8 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/path-scurry": { "version": "1.11.1", @@ -9716,6 +9833,13 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", @@ -9743,7 +9867,8 @@ "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" }, "node_modules/picomatch": { "version": "2.3.1", @@ -9852,6 +9977,7 @@ "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" } @@ -9874,6 +10000,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { "nanoid": "^3.3.6", "picocolors": "^1.0.0", @@ -9888,6 +10015,7 @@ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8.0" } @@ -9962,13 +10090,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/pretty-format/node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true, - "license": "MIT" - }, "node_modules/process": { "version": "0.11.10", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", @@ -9998,12 +10119,20 @@ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", "dev": true, + "license": "MIT", "dependencies": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", "react-is": "^16.13.1" } }, + "node_modules/prop-types/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true, + "license": "MIT" + }, "node_modules/proxy-from-env": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz", @@ -10103,7 +10232,8 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/react": { "version": "19.1.0", @@ -10127,10 +10257,11 @@ } }, "node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "dev": true + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true, + "license": "MIT" }, "node_modules/redent": { "version": "3.0.0", @@ -10151,6 +10282,7 @@ "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", @@ -10173,6 +10305,7 @@ "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", @@ -10220,6 +10353,7 @@ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", "dev": true, + "license": "MIT", "dependencies": { "is-core-module": "^2.16.0", "path-parse": "^1.0.7", @@ -10273,6 +10407,7 @@ "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" } @@ -10301,18 +10436,12 @@ "node": ">=8" } }, - "node_modules/restore-cursor/node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true, - "license": "ISC" - }, "node_modules/reusify": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", "dev": true, + "license": "MIT", "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" @@ -10342,6 +10471,17 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/rimraf/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, "node_modules/rimraf/node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -10359,9 +10499,22 @@ }, "engines": { "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" } }, "node_modules/run-parallel": { @@ -10383,6 +10536,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "queue-microtask": "^1.2.2" } @@ -10402,6 +10556,7 @@ "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.2", @@ -10442,6 +10597,7 @@ "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", "dev": true, + "license": "MIT", "dependencies": { "es-errors": "^1.3.0", "isarray": "^2.0.5" @@ -10458,6 +10614,7 @@ "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", @@ -10497,10 +10654,11 @@ "license": "MIT" }, "node_modules/semver": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", - "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", "devOptional": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -10513,6 +10671,7 @@ "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", "dev": true, + "license": "MIT", "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", @@ -10530,6 +10689,7 @@ "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", "dev": true, + "license": "MIT", "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", @@ -10545,6 +10705,7 @@ "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", "dev": true, + "license": "MIT", "dependencies": { "dunder-proto": "^1.0.1", "es-errors": "^1.3.0", @@ -10623,6 +10784,7 @@ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", "dev": true, + "license": "MIT", "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.3", @@ -10642,6 +10804,7 @@ "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", "dev": true, + "license": "MIT", "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.3" @@ -10658,6 +10821,7 @@ "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", @@ -10676,6 +10840,7 @@ "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", @@ -10691,17 +10856,11 @@ } }, "node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true, - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } + "license": "ISC" }, "node_modules/simple-swizzle": { "version": "0.2.2", @@ -10713,6 +10872,13 @@ "is-arrayish": "^0.3.1" } }, + "node_modules/simple-swizzle/node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "license": "MIT", + "optional": true + }, "node_modules/sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", @@ -10759,6 +10925,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } @@ -10811,7 +10978,8 @@ "version": "0.0.5", "resolved": "https://registry.npmjs.org/stable-hash/-/stable-hash-0.0.5.tgz", "integrity": "sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/stack-utils": { "version": "2.0.6", @@ -10859,21 +11027,18 @@ } }, "node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "license": "MIT", "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, "node_modules/string-width-cjs": { @@ -10899,40 +11064,19 @@ "dev": true, "license": "MIT" }, - "node_modules/string-width/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/string-width/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "node_modules/string-width/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } + "license": "MIT" }, "node_modules/string.prototype.includes": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz", "integrity": "sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -10947,6 +11091,7 @@ "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz", "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", @@ -10974,6 +11119,7 @@ "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", "dev": true, + "license": "MIT", "dependencies": { "define-properties": "^1.1.3", "es-abstract": "^1.17.5" @@ -10984,6 +11130,7 @@ "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.2", @@ -11005,6 +11152,7 @@ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.2", @@ -11023,6 +11171,7 @@ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -11063,12 +11212,13 @@ } }, "node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", "dev": true, + "license": "MIT", "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/strip-final-newline": { @@ -11135,6 +11285,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -11147,6 +11298,7 @@ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -11162,13 +11314,13 @@ "license": "MIT" }, "node_modules/synckit": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.4.tgz", - "integrity": "sha512-Q/XQKRaJiLiFIBNN+mndW7S/RHxvwzuZS6ZwmRzUBqJBv/5QIKCEwkBC8GBf8EQJKYnaFs0wOZbKTXBPj8L9oQ==", + "version": "0.11.5", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.5.tgz", + "integrity": "sha512-frqvfWyDA5VPVdrWfH24uM6SI/O8NLpVbIIJxb8t/a3YGsp4AW9CYgSKC0OaSEfexnp7Y1pVh2Y6IHO8ggGDmA==", "dev": true, "license": "MIT", "dependencies": { - "@pkgr/core": "^0.2.3", + "@pkgr/core": "^0.2.4", "tslib": "^2.8.1" }, "engines": { @@ -11193,6 +11345,17 @@ "node": ">=8" } }, + "node_modules/test-exclude/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, "node_modules/test-exclude/node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -11215,6 +11378,19 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/test-exclude/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -11244,6 +11420,7 @@ "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.13.tgz", "integrity": "sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==", "dev": true, + "license": "MIT", "dependencies": { "fdir": "^6.4.4", "picomatch": "^4.0.2" @@ -11260,6 +11437,7 @@ "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.4.tgz", "integrity": "sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==", "dev": true, + "license": "MIT", "peerDependencies": { "picomatch": "^3 || ^4" }, @@ -11274,6 +11452,7 @@ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -11367,10 +11546,23 @@ "tree-kill": "cli.js" } }, + "node_modules/ts-api-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz", + "integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.12" + }, + "peerDependencies": { + "typescript": ">=4.8.4" + } + }, "node_modules/ts-jest": { - "version": "29.3.2", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.3.2.tgz", - "integrity": "sha512-bJJkrWc6PjFVz5g2DGCNUo8z7oFEYaz1xP1NpeDU7KNLMWPpEyV8Chbpkn8xjzgRDpQhnGMyvyldoL7h8JXyug==", + "version": "29.3.3", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.3.3.tgz", + "integrity": "sha512-y6jLm19SL4GroiBmHwFK4dSHUfDNmOrJbRfp6QmDIlI9p5tT5Q8ItccB4pTIslCIqOZuQnBwpTR0bQ5eUMYwkw==", "dev": true, "license": "MIT", "dependencies": { @@ -11381,8 +11573,8 @@ "json5": "^2.2.3", "lodash.memoize": "^4.1.2", "make-error": "^1.3.6", - "semver": "^7.7.1", - "type-fest": "^4.39.1", + "semver": "^7.7.2", + "type-fest": "^4.41.0", "yargs-parser": "^21.1.1" }, "bin": { @@ -11417,19 +11609,6 @@ } } }, - "node_modules/ts-jest/node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "license": "MIT", - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/ts-jest/node_modules/type-fest": { "version": "4.41.0", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz", @@ -11448,6 +11627,7 @@ "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", "dev": true, + "license": "MIT", "dependencies": { "@types/json5": "^0.0.29", "json5": "^1.0.2", @@ -11455,45 +11635,33 @@ "strip-bom": "^3.0.0" } }, - "node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" - }, - "node_modules/tslint-config-prettier": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/tslint-config-prettier/-/tslint-config-prettier-1.18.0.tgz", - "integrity": "sha512-xPw9PgNPLG3iKRxmK7DWr+Ea/SzrvfHtjFt5LBl61gk2UBG/DB9kCXRjv+xyIU1rUtnayLeMUVJBcMX8Z17nDg==", + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "dev": true, "license": "MIT", - "bin": { - "tslint-config-prettier-check": "bin/check.js" + "dependencies": { + "minimist": "^1.2.0" }, - "engines": { - "node": ">=4.0.0" + "bin": { + "json5": "lib/cli.js" } }, - "node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "node_modules/tsconfig-paths/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true, "license": "MIT", - "dependencies": { - "tslib": "^1.8.1" - }, "engines": { - "node": ">= 6" - }, - "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" + "node": ">=4" } }, - "node_modules/tsutils/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "license": "0BSD" }, "node_modules/tunnel-agent": { @@ -11521,6 +11689,7 @@ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1" }, @@ -11556,6 +11725,7 @@ "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", @@ -11570,6 +11740,7 @@ "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.8", "for-each": "^0.3.3", @@ -11589,6 +11760,7 @@ "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", "dev": true, + "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", @@ -11610,6 +11782,7 @@ "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.7", "for-each": "^0.3.3", @@ -11630,6 +11803,7 @@ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", "dev": true, + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -11643,6 +11817,7 @@ "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.3", "has-bigints": "^1.0.2", @@ -11660,7 +11835,8 @@ "version": "6.19.8", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/universalify": { "version": "2.0.1", @@ -11678,6 +11854,7 @@ "integrity": "sha512-BBKpaylOW8KbHsu378Zky/dGh4ckT/4NW/0SHRABdqRLcQJ2dAOjDo9g97p04sWflm0kqPqpUatxReNV/dqI5A==", "dev": true, "hasInstallScript": true, + "license": "MIT", "dependencies": { "napi-postinstall": "^0.2.2" }, @@ -11897,6 +12074,7 @@ "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", "dev": true, + "license": "MIT", "dependencies": { "is-bigint": "^1.1.0", "is-boolean-object": "^1.2.1", @@ -11916,6 +12094,7 @@ "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.2", "function.prototype.name": "^1.1.6", @@ -11943,6 +12122,7 @@ "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", "dev": true, + "license": "MIT", "dependencies": { "is-map": "^2.0.3", "is-set": "^2.0.3", @@ -11961,6 +12141,7 @@ "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz", "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==", "dev": true, + "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", @@ -11982,6 +12163,7 @@ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -12023,28 +12205,6 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/wrap-ansi-cjs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/wrap-ansi/node_modules/ansi-regex": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", @@ -12071,6 +12231,24 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/wrap-ansi/node_modules/strip-ansi": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", @@ -12108,13 +12286,6 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/write-file-atomic/node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true, - "license": "ISC" - }, "node_modules/ws": { "version": "8.18.2", "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.2.tgz", @@ -12200,28 +12371,6 @@ "node": ">=12" } }, - "node_modules/yargs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/yargs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/yauzl": { "version": "2.10.0", "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", @@ -12238,6 +12387,7 @@ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, diff --git a/ui/package.json b/ui/package.json index 0a41bd26..7c9dbf5c 100644 --- a/ui/package.json +++ b/ui/package.json @@ -26,14 +26,15 @@ "@types/node": "^20", "@types/react": "^19", "@types/react-dom": "^19", - "@typescript-eslint/eslint-plugin": "^5.43.0", - "@typescript-eslint/parser": "^5.43.0", + "@types/testing-library__jest-dom": "^5.14.9", + "@typescript-eslint/eslint-plugin": "^8.0.0", + "@typescript-eslint/parser": "^8.0.0", "cypress": "^13.13.3", "eslint": "^8.27.0", "eslint-config-next": "14.2.5", "eslint-config-prettier": "^8.5.0", "eslint-plugin-import": "^2.29.1", - "eslint-plugin-jest": "^27.1.5", + "eslint-plugin-jest": "^28.11.0", "eslint-plugin-jsx-a11y": "^6.6.1", "eslint-plugin-no-secrets": "^1.0.2", "eslint-plugin-prettier": "^5.4.0", @@ -47,8 +48,7 @@ "jest-transform-stub": "^2.0.0", "prettier": "^3.5.3", "ts-jest": "^29.2.4", - "tslint-config-prettier": "^1.18.0", - "typescript": "^5" + "typescript": "5" }, "lint-staged": { "*.js": "eslint --cache --fix", diff --git a/ui/tests/integration/page.test.tsx b/ui/src/tests/integration/page.test.tsx similarity index 98% rename from ui/tests/integration/page.test.tsx rename to ui/src/tests/integration/page.test.tsx index ef9a30af..37c6a7e0 100644 --- a/ui/tests/integration/page.test.tsx +++ b/ui/src/tests/integration/page.test.tsx @@ -6,4 +6,4 @@ describe('Home Page', () => { const { getByText } = render(); expect(getByText('GuideLLM')).toBeInTheDocument(); }); -}); \ No newline at end of file +}); diff --git a/ui/tests/unit/layout.test.tsx b/ui/src/tests/unit/layout.test.tsx similarity index 100% rename from ui/tests/unit/layout.test.tsx rename to ui/src/tests/unit/layout.test.tsx diff --git a/ui/src/types/jest-dom.d.ts b/ui/src/types/jest-dom.d.ts new file mode 100644 index 00000000..7b0828bf --- /dev/null +++ b/ui/src/types/jest-dom.d.ts @@ -0,0 +1 @@ +import '@testing-library/jest-dom'; diff --git a/ui/tsconfig.base.json b/ui/tsconfig.base.json new file mode 100644 index 00000000..ee45ceb1 --- /dev/null +++ b/ui/tsconfig.base.json @@ -0,0 +1,30 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "compilerOptions": { + /* --- language / emit --- */ + "target": "es5", + "lib": ["dom", "dom.iterable", "esnext"], + "module": "esnext", + "jsx": "preserve", + "incremental": true, + "noEmit": true, + + /* --- module resolution --- */ + "moduleResolution": "node", + "baseUrl": ".", + "paths": { + "@/*": ["src/*"] + }, + "resolveJsonModule": true, + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "plugins": [{ "name": "next" }], + + /* --- correctness / style --- */ + "strict": true, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true, + "noFallthroughCasesInSwitch": true + }, + "exclude": [".meta", ".next", "node_modules", ".vscode"] +} diff --git a/ui/tsconfig.cypress.json b/ui/tsconfig.cypress.json new file mode 100644 index 00000000..7b248ef8 --- /dev/null +++ b/ui/tsconfig.cypress.json @@ -0,0 +1,8 @@ +{ + "extends": "./tsconfig.base.json", + "compilerOptions": { + "types": ["cypress", "node"], + "noEmit": true + }, + "include": ["cypress.config.ts", "cypress/**/*.ts"] +} diff --git a/ui/tsconfig.json b/ui/tsconfig.json index 6e00d008..ef1c7a9a 100644 --- a/ui/tsconfig.json +++ b/ui/tsconfig.json @@ -1,41 +1,17 @@ { + "extends": "./tsconfig.base.json", "compilerOptions": { - "allowJs": true, - "allowSyntheticDefaultImports": true, - "baseUrl": ".", - "esModuleInterop": true, - "forceConsistentCasingInFileNames": true, - "incremental": true, - "isolatedModules": true, - "jsx": "preserve", - "lib": ["dom", "dom.iterable", "esnext"], - "module": "esnext", - "moduleResolution": "node", - "noEmit": true, - "noFallthroughCasesInSwitch": true, - "plugins": [ - { - "name": "next" - } + /* only runtime types here */ + "types": [ + "node" ], - "paths": { - "@/*": ["./src/*"] - }, - "resolveJsonModule": true, - "skipLibCheck": true, - "strict": true, - "target": "es5", - "types": ["jest", "@testing-library/jest-dom"] + "allowJs": true, + "isolatedModules": true }, "include": [ - "**/*.ts", - "**/*.tsx", - ".next/types/**/*.ts", - "cypress.config.ts", - "jest.setup.ts", "next-env.d.ts", - "src", - "jest.config.js" - ], - "exclude": [".meta/**/*", ".next/**/*", ".vscode", "node_modules"] + "src/**/*.ts", + "src/**/*.tsx", + ".next/types/**/*.ts" + ] } diff --git a/ui/tsconfig.test.json b/ui/tsconfig.test.json new file mode 100644 index 00000000..e59acafc --- /dev/null +++ b/ui/tsconfig.test.json @@ -0,0 +1,8 @@ +{ + "extends": "./tsconfig.base.json", + "compilerOptions": { + "types": ["jest", "@testing-library/jest-dom", "node"], + "noEmit": true + }, + "include": ["jest.setup.ts", "tests/**/*.ts?(x)", "src/**/*.ts?(x)"] +} From 472141b9fbfab14eee1a4a408bfdbd5ac7f946bd Mon Sep 17 00:00:00 2001 From: dalthecow Date: Wed, 14 May 2025 16:11:34 -0400 Subject: [PATCH 21/80] get things working --- .github/workflows/ui-development.yml | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ui-development.yml b/.github/workflows/ui-development.yml index 1cb68410..fbcabffe 100644 --- a/.github/workflows/ui-development.yml +++ b/.github/workflows/ui-development.yml @@ -56,7 +56,9 @@ jobs: npm ci - name: Run unit tests - run: make test-unit + run: | + cd ui + make test-unit integration-tests: permissions: @@ -72,7 +74,9 @@ jobs: npm ci - name: Run integration tests - run: make test-integration + run: | + cd ui + make test-integration e2e-tests: # Permissions needed to get ID token for OIDC auth @@ -96,8 +100,11 @@ jobs: - name: Start the Next.js app run: | + cd ui npx serve@latest out & npx wait-on http://localhost:3000 # Wait until the app is ready - name: Run Cypress tests - run: npx cypress run --headless + run: | + cd ui + npx cypress run --headless From d98b4113959d91db5f6dce742b8d7a9b0dd50d28 Mon Sep 17 00:00:00 2001 From: dalthecow Date: Wed, 14 May 2025 16:23:34 -0400 Subject: [PATCH 22/80] remove e2e testing from dev workflow since it is confirmed to work --- .github/workflows/ui-development.yml | 31 ---------------------------- 1 file changed, 31 deletions(-) diff --git a/.github/workflows/ui-development.yml b/.github/workflows/ui-development.yml index fbcabffe..50c42ecb 100644 --- a/.github/workflows/ui-development.yml +++ b/.github/workflows/ui-development.yml @@ -77,34 +77,3 @@ jobs: run: | cd ui make test-integration - - e2e-tests: - # Permissions needed to get ID token for OIDC auth - permissions: - contents: "read" - id-token: "write" - runs-on: ubuntu-latest - steps: - - name: Check out code - uses: actions/checkout@v3 - - - name: Install dependencies - run: | - cd ui - npm ci - - - name: Generate Build - run: | - cd ui - npm run build - - - name: Start the Next.js app - run: | - cd ui - npx serve@latest out & - npx wait-on http://localhost:3000 # Wait until the app is ready - - - name: Run Cypress tests - run: | - cd ui - npx cypress run --headless From 23ce95f20a7e1abf43272f9199c270212b422fbe Mon Sep 17 00:00:00 2001 From: dalthecow Date: Thu, 15 May 2025 10:49:38 -0400 Subject: [PATCH 23/80] clean readme, add developing doc --- ui/DEVELOPING.md | 33 +++++++++++++++++++++++++++++++++ ui/README.md | 37 +------------------------------------ 2 files changed, 34 insertions(+), 36 deletions(-) create mode 100644 ui/DEVELOPING.md diff --git a/ui/DEVELOPING.md b/ui/DEVELOPING.md new file mode 100644 index 00000000..02defbc6 --- /dev/null +++ b/ui/DEVELOPING.md @@ -0,0 +1,33 @@ +## Getting Started + +First, run the development server: + +```bash +npm run dev +``` + +Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. + +#### `npm run build` + +Builds the app for production to the `out` folder.\ + +#### `make test-unit` + +Run unit test once on your local terminal. + +#### `make test-integration` + +Run integration test once on your local terminal. + +#### `npx cypress run --headless` + +Run end to end tests against localhost:3000 + +#### `make style` + +Fix code styling issues. + +#### `make quality` + +Run quality eslint quality checks. diff --git a/ui/README.md b/ui/README.md index e215bc4c..6bb542b8 100644 --- a/ui/README.md +++ b/ui/README.md @@ -1,36 +1 @@ -This is a [Next.js](https://nextjs.org) project bootstrapped with [`create-next-app`](https://nextjs.org/docs/app/api-reference/cli/create-next-app). - -## Getting Started - -First, run the development server: - -```bash -npm run dev -# or -yarn dev -# or -pnpm dev -# or -bun dev -``` - -Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. - -You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file. - -This project uses [`next/font`](https://nextjs.org/docs/app/building-your-application/optimizing/fonts) to automatically optimize and load [Geist](https://vercel.com/font), a new font family for Vercel. - -## Learn More - -To learn more about Next.js, take a look at the following resources: - -- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. -- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. - -You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js) - your feedback and contributions are welcome! - -## Deploy on Vercel - -The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js. - -Check out our [Next.js deployment documentation](https://nextjs.org/docs/app/building-your-application/deploying) for more details. +# GuideLLM UI From a7b89f1b59685ea8c54fedb24adfb5a31033cf5d Mon Sep 17 00:00:00 2001 From: dalthecow Date: Mon, 19 May 2025 09:43:31 -0400 Subject: [PATCH 24/80] add initial app state for development with redux/theming set up --- .gitignore | 4 +- ui/.eslintrc.json | 21 +- ui/jest.config.js | 4 + ui/next.config.mjs | 32 + ui/package-lock.json | 4124 +++++++++++++---- ui/package.json | 16 +- ui/public/android-chrome-192x192.png | Bin 0 -> 8898 bytes ui/public/android-chrome-512x512.png | Bin 0 -> 25846 bytes ui/public/apple-touch-icon.png | Bin 0 -> 8007 bytes ui/public/favicon-16x16.png | Bin 0 -> 1057 bytes ui/public/favicon-192x192.png | Bin 0 -> 8898 bytes ui/public/favicon-32x32.png | Bin 0 -> 1802 bytes ui/public/favicon-512x512.png | Bin 0 -> 25846 bytes ui/public/favicon.ico | Bin 0 -> 24046 bytes ui/public/manifest.json | 25 + ui/src/app/@types/index.d.ts | 3 + .../app/assets/fonts/spezia/Spezia-Medium.otf | Bin 0 -> 82276 bytes .../assets/fonts/spezia/Spezia-Regular.otf | Bin 0 -> 81716 bytes .../assets/fonts/spezia/SpeziaMono-Medium.otf | Bin 0 -> 70244 bytes .../app/assets/fonts/spezia/spezia-medium.ttf | Bin 0 -> 115948 bytes .../fonts/spezia/spezia-mono-medium.ttf | Bin 0 -> 105344 bytes .../assets/fonts/spezia/spezia-regular.ttf | Bin 0 -> 115952 bytes ui/src/app/assets/icons/arrow-down.svg | 3 + ui/src/app/assets/icons/arrow-up.svg | 3 + ui/src/app/assets/icons/check-circle.svg | 3 + ui/src/app/assets/icons/expand.svg | 3 + ui/src/app/assets/icons/index.tsx | 10 + ui/src/app/assets/icons/info.svg | 3 + ui/src/app/assets/icons/nm-logo-with-name.svg | 9 + ui/src/app/assets/icons/open.svg | 3 + ui/src/app/assets/icons/warning-circle.svg | 3 + ui/src/app/globals.css | 30 + ui/src/app/layout.tsx | 20 +- ui/src/app/page.tsx | 75 +- ui/src/app/theme.ts | 572 +++ .../PageFooter/PageFooter.component.tsx | 33 + ui/src/lib/components/PageFooter/index.tsx | 1 + .../FullPageWithHeaderAndFooterLayout.tsx | 18 + .../lib/layouts/helpers/ContentCenterer.tsx | 44 + .../layouts/helpers/useCurrentBreakpoint.ts | 27 + ui/src/lib/store/index.ts | 22 + ui/src/lib/store/provider.tsx | 8 + ui/src/lib/utils/ColorHelper.ts | 39 + ui/src/lib/utils/Colors.ts | 67 + ui/src/lib/utils/SvgContainer.tsx | 7 + ui/src/tests/integration/page.test.tsx | 1 + ui/src/tests/unit/layout.test.tsx | 1 + ui/svg.d.ts | 7 + ui/tsconfig.base.json | 3 +- 49 files changed, 4388 insertions(+), 856 deletions(-) create mode 100644 ui/public/android-chrome-192x192.png create mode 100644 ui/public/android-chrome-512x512.png create mode 100644 ui/public/apple-touch-icon.png create mode 100644 ui/public/favicon-16x16.png create mode 100644 ui/public/favicon-192x192.png create mode 100644 ui/public/favicon-32x32.png create mode 100644 ui/public/favicon-512x512.png create mode 100644 ui/public/favicon.ico create mode 100644 ui/public/manifest.json create mode 100644 ui/src/app/@types/index.d.ts create mode 100644 ui/src/app/assets/fonts/spezia/Spezia-Medium.otf create mode 100644 ui/src/app/assets/fonts/spezia/Spezia-Regular.otf create mode 100644 ui/src/app/assets/fonts/spezia/SpeziaMono-Medium.otf create mode 100644 ui/src/app/assets/fonts/spezia/spezia-medium.ttf create mode 100644 ui/src/app/assets/fonts/spezia/spezia-mono-medium.ttf create mode 100644 ui/src/app/assets/fonts/spezia/spezia-regular.ttf create mode 100644 ui/src/app/assets/icons/arrow-down.svg create mode 100644 ui/src/app/assets/icons/arrow-up.svg create mode 100644 ui/src/app/assets/icons/check-circle.svg create mode 100644 ui/src/app/assets/icons/expand.svg create mode 100644 ui/src/app/assets/icons/index.tsx create mode 100644 ui/src/app/assets/icons/info.svg create mode 100644 ui/src/app/assets/icons/nm-logo-with-name.svg create mode 100644 ui/src/app/assets/icons/open.svg create mode 100644 ui/src/app/assets/icons/warning-circle.svg create mode 100644 ui/src/app/globals.css create mode 100644 ui/src/app/theme.ts create mode 100644 ui/src/lib/components/PageFooter/PageFooter.component.tsx create mode 100644 ui/src/lib/components/PageFooter/index.tsx create mode 100644 ui/src/lib/layouts/FullPageWithHeaderAndFooterLayout.tsx create mode 100644 ui/src/lib/layouts/helpers/ContentCenterer.tsx create mode 100644 ui/src/lib/layouts/helpers/useCurrentBreakpoint.ts create mode 100644 ui/src/lib/store/index.ts create mode 100644 ui/src/lib/store/provider.tsx create mode 100644 ui/src/lib/utils/ColorHelper.ts create mode 100644 ui/src/lib/utils/Colors.ts create mode 100644 ui/src/lib/utils/SvgContainer.tsx create mode 100644 ui/svg.d.ts diff --git a/.gitignore b/.gitignore index f3d7367b..f6194b24 100644 --- a/.gitignore +++ b/.gitignore @@ -178,4 +178,6 @@ cython_debug/ # Project specific files *.json *.yaml -!ui/**/*.json \ No newline at end of file + +# Turn off UI related ignores, defer to ui/.gitignore +!ui/** \ No newline at end of file diff --git a/ui/.eslintrc.json b/ui/.eslintrc.json index f3968cf7..e1b46682 100644 --- a/ui/.eslintrc.json +++ b/ui/.eslintrc.json @@ -39,8 +39,25 @@ "import/order": [ "error", { - "groups": [["builtin", "external", "internal"]], - "newlines-between": "always" + "groups": [ + ["builtin", "external"], + ["internal", "parent", "sibling", "index"] + ], + "newlines-between": "always-and-inside-groups", + "pathGroups": [ + { + "pattern": "{@,assets,classes,components,hooks,pages,store,tests,types,utils}/**", + "group": "internal", + "position": "before" + }, + { + "pattern": "{.,..}/**", + "group": "internal", + "position": "after" + } + ], + "pathGroupsExcludedImportTypes": ["builtin"], + "alphabetize": { "order": "asc", "caseInsensitive": true } } ], "import/no-extraneous-dependencies": [ diff --git a/ui/jest.config.js b/ui/jest.config.js index 0ece32a0..f05bde8b 100644 --- a/ui/jest.config.js +++ b/ui/jest.config.js @@ -11,7 +11,11 @@ const customJestConfig = { coverageReporters: ['json-summary'], moduleFileExtensions: ['ts', 'tsx', 'js'], moduleNameMapper: { + '^.+\\.(svg)$': '/__mocks__/svg.js', '^@/(.*)$': '/src/$1', + '\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$': + '/__mocks__/fileMock.js', + '\\.(css|less|scss|sass)$': '/__mocks__/styleMock.js', }, setupFilesAfterEnv: ['/jest.setup.ts'], testEnvironment: 'jest-environment-jsdom', diff --git a/ui/next.config.mjs b/ui/next.config.mjs index bf221d35..0f54b125 100644 --- a/ui/next.config.mjs +++ b/ui/next.config.mjs @@ -1,6 +1,38 @@ /** @type {import('next').NextConfig} */ const nextConfig = { output: 'export', + webpack(config) { + // Grab the existing rule that handles SVG imports + const fileLoaderRule = config.module.rules.find((rule) => rule.test?.test?.('.svg')); + + config.module.rules.push( + // Reapply the existing rule, but only for svg imports ending in ?url + { + ...fileLoaderRule, + test: /\.svg$/i, + resourceQuery: /url/, // *.svg?url + }, + // Convert all other *.svg imports to React components + { + test: /\.svg$/i, + issuer: fileLoaderRule.issuer, + resourceQuery: { not: [...fileLoaderRule.resourceQuery.not, /url/] }, // exclude if *.svg?url + use: ['@svgr/webpack'], + }, + { + test: /\.(woff|woff2|eot|ttf|otf)$/, + type: 'asset/resource', + generator: { + filename: 'static/fonts/[name][ext]', + }, + } + ); + + // Modify the file loader rule to ignore *.svg, since we have it handled now. + fileLoaderRule.exclude = /\.svg$/i; + + return config; + }, }; export default nextConfig; diff --git a/ui/package-lock.json b/ui/package-lock.json index 97948e1b..969d7647 100644 --- a/ui/package-lock.json +++ b/ui/package-lock.json @@ -8,11 +8,20 @@ "name": "guidellm", "version": "0.1.0", "dependencies": { - "next": "15.3.2", - "react": "^19.0.0", - "react-dom": "^19.0.0" + "@emotion/cache": "^11.13.1", + "@emotion/react": "^11.14.0", + "@emotion/styled": "^11.14.0", + "@mui/material": "^5.11.7", + "@mui/material-nextjs": "^5.16.6", + "@reduxjs/toolkit": "^2.2.7", + "next": "14.2.5", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-redux": "^9.1.2" }, "devDependencies": { + "@mui/types": "^7.2.14", + "@svgr/webpack": "^8.1.0", "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^16.0.0", "@testing-library/user-event": "^13.5.0", @@ -70,7 +79,6 @@ "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", - "dev": true, "license": "MIT", "dependencies": { "@babel/helper-validator-identifier": "^7.27.1", @@ -122,21 +130,17 @@ "url": "https://opencollective.com/babel" } }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "node_modules/@babel/core/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } + "license": "MIT" }, "node_modules/@babel/generator": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.1.tgz", "integrity": "sha512-UnJfnIpc/+JO0/+KRVQNGU+y5taA5vCbwN8+azkX6beii/ZF+enZJSOKo11ZSzGJjlNfJHfQtmQT8H+9TXPG2w==", - "dev": true, "license": "MIT", "dependencies": { "@babel/parser": "^7.27.1", @@ -149,6 +153,19 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.1.tgz", + "integrity": "sha512-WnuuDILl9oOBbKnb4L+DyODx7iC47XfzmNCpTttFsSp6hTG7XZxu60+4IO+2/hPfcGOoKbFiwoI/+zwARbNQow==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-compilation-targets": { "version": "7.27.2", "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", @@ -166,21 +183,81 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.27.1.tgz", + "integrity": "sha512-QwGAmuvM17btKU5VqXfb+Giw4JcN0hjuufz3DYnpeVDvZLAObloM77bhMXiqry3Iio+Ai4phVRDwl6WU10+r5A==", "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-member-expression-to-functions": "^7.27.1", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/traverse": "^7.27.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.27.1.tgz", + "integrity": "sha512-uVDC72XVf8UbrH5qQTc18Agb8emwjTiZrQE11Nv3CuBEZmVvTwwE9CBUEvHku06gQCAyYf8Nv6ja1IN+6LMbxQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "regexpu-core": "^6.2.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.4.tgz", + "integrity": "sha512-jljfR1rGnXXNWnmQg2K3+bvhkxB51Rl32QRaOTuwwjviGrHzIbSc8+x9CpraDtbT7mfyjXObULP4w/adunNwAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.27.1.tgz", + "integrity": "sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", - "dev": true, "license": "MIT", "dependencies": { "@babel/traverse": "^7.27.1", @@ -208,6 +285,19 @@ "@babel/core": "^7.0.0" } }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz", + "integrity": "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-plugin-utils": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", @@ -218,11 +308,60 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.27.1.tgz", + "integrity": "sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-wrap-function": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.27.1.tgz", + "integrity": "sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.27.1", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz", + "integrity": "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-string-parser": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", - "dev": true, "license": "MIT", "engines": { "node": ">=6.9.0" @@ -232,7 +371,6 @@ "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", - "dev": true, "license": "MIT", "engines": { "node": ">=6.9.0" @@ -248,6 +386,21 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.27.1.tgz", + "integrity": "sha512-NFJK2sHUvrjo8wAU/nQTWU890/zB2jj0qBcCbZbbf+005cAsv6tMjXz31fBign6M5ov1o0Bllu+9nbqkfsjjJQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.27.1", + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helpers": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.1.tgz", @@ -266,7 +419,6 @@ "version": "7.27.2", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.2.tgz", "integrity": "sha512-QYLs8299NA7WM/bZAdp+CviYYkVoYXlDW2rzliy3chxd1PQjej7JORuMJDJXJUb9g0TT+B99EwaVLKmX+sPXWw==", - "dev": true, "license": "MIT", "dependencies": { "@babel/types": "^7.27.1" @@ -278,6 +430,103 @@ "node": ">=6.0.0" } }, + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.27.1.tgz", + "integrity": "sha512-QPG3C9cCVRQLxAVwmefEmwdTanECuUBMQZ/ym5kiw3XKCGA7qkuQLcjWWHcrD/GKbn/WmJwaezfuuAOcyKlRPA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.27.1.tgz", + "integrity": "sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.27.1.tgz", + "integrity": "sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.27.1.tgz", + "integrity": "sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/plugin-transform-optional-chaining": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.27.1.tgz", + "integrity": "sha512-6BpaYGDavZqkI6yT+KSPdpZFfpnd68UKXbcjI9pJ13pvHhPrCKWOOLp+ysvMeA+DxnhuPpgIaRpxRxo5A9t5jw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-syntax-async-generators": { "version": "7.8.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", @@ -333,6 +582,22 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.27.1.tgz", + "integrity": "sha512-UT/Jrhw57xg4ILHLFnzFpPDlMbcdEicaAtjPQpbj9wa8T4r5KVWCimHcL/460g8Ht0DMxDyjsLgiWSkVjnwPFg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-syntax-import-attributes": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz", @@ -517,712 +782,1596 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/runtime": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.1.tgz", - "integrity": "sha512-1x3D2xEk2fRo3PAhwQwu5UubzgiVWSXTBfWpVd2Mx2AzRqJuDJCsgaDVZ7HB5iGzDW1Hl1sWN2mFyKjmR9uAog==", + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", "dev": true, "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/template": { - "version": "7.27.2", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", - "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.27.1.tgz", + "integrity": "sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/parser": "^7.27.2", - "@babel/types": "^7.27.1" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/traverse": { + "node_modules/@babel/plugin-transform-async-generator-functions": { "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.1.tgz", - "integrity": "sha512-ZCYtZciz1IWJB4U61UPu4KEaqyfj+r5T1Q5mqPo+IBpcG9kHv30Z0aD8LXPgC1trYa6rK0orRyAhqUgk4MjmEg==", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.27.1.tgz", + "integrity": "sha512-eST9RrwlpaoJBDHShc+DS2SG4ATTi2MYNb4OxYkf3n+7eb49LWpnS+HSpVfW4x927qQwgk8A2hGNVaajAEw0EA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.27.1", - "@babel/parser": "^7.27.1", - "@babel/template": "^7.27.1", - "@babel/types": "^7.27.1", - "debug": "^4.3.1", - "globals": "^11.1.0" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-remap-async-to-generator": "^7.27.1", + "@babel/traverse": "^7.27.1" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/traverse/node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.27.1.tgz", + "integrity": "sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA==", "dev": true, "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-remap-async-to-generator": "^7.27.1" + }, "engines": { - "node": ">=4" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/types": { + "node_modules/@babel/plugin-transform-block-scoped-functions": { "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.1.tgz", - "integrity": "sha512-+EzkxvLNfiUeKMgy/3luqfsCWFRXLb7U6wNQTk60tovuckwB15B191tJWvpp4HjiQWdJkCxO3Wbvc6jlk3Xb2Q==", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.27.1.tgz", + "integrity": "sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.27.1", - "@babel/helper-validator-identifier": "^7.27.1" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@colors/colors": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", - "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.27.1.tgz", + "integrity": "sha512-QEcFlMl9nGTgh1rn2nIeU5bkfb9BAjaQcWbiP4LvKxUot52ABcTkpcyJ7f2Q2U2RuQ84BNLgts3jRme2dTx6Fw==", "dev": true, "license": "MIT", - "optional": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, "engines": { - "node": ">=0.1.90" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@cypress/request": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/@cypress/request/-/request-3.0.8.tgz", - "integrity": "sha512-h0NFgh1mJmm1nr4jCwkGHwKneVYKghUyWe6TMNrk0B9zsjAJxpg8C4/+BAcmLgCPa1vj1V8rNUaILl+zYRUWBQ==", + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.27.1.tgz", + "integrity": "sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA==", "dev": true, - "license": "Apache-2.0", + "license": "MIT", "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~4.0.0", - "http-signature": "~1.4.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "performance-now": "^2.1.0", - "qs": "6.14.0", - "safe-buffer": "^5.1.2", - "tough-cookie": "^5.0.0", - "tunnel-agent": "^0.6.0", - "uuid": "^8.3.2" + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { - "node": ">= 6" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@cypress/xvfb": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz", - "integrity": "sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==", + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.27.1.tgz", + "integrity": "sha512-s734HmYU78MVzZ++joYM+NkJusItbdRcbm+AGRgJCt3iA+yux0QpD9cBVdz3tKyrjVYWRl7j0mHSmv4lhV0aoA==", "dev": true, "license": "MIT", "dependencies": { - "debug": "^3.1.0", - "lodash.once": "^4.1.1" + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" } }, - "node_modules/@cypress/xvfb/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "node_modules/@babel/plugin-transform-classes": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.27.1.tgz", + "integrity": "sha512-7iLhfFAubmpeJe/Wo2TVuDrykh/zlWXLzPNdL0Jqn/Xu8R3QQ8h9ff8FQoISZOsw74/HFqFI7NX63HN7QFIHKA==", "dev": true, "license": "MIT", "dependencies": { - "ms": "^2.1.1" + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-compilation-targets": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1", + "@babel/traverse": "^7.27.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@emnapi/core": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.4.3.tgz", - "integrity": "sha512-4m62DuCE07lw01soJwPiBGC0nAww0Q+RY70VZ+n49yDIO13yyinhbWCeNnaob0lakDtWQzSdtNWzJeOJt2ma+g==", + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.27.1.tgz", + "integrity": "sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw==", "dev": true, "license": "MIT", - "optional": true, "dependencies": { - "@emnapi/wasi-threads": "1.0.2", - "tslib": "^2.4.0" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/template": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@emnapi/runtime": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.4.3.tgz", - "integrity": "sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==", + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.27.1.tgz", + "integrity": "sha512-ttDCqhfvpE9emVkXbPD8vyxxh4TWYACVybGkDj+oReOGwnp066ITEivDlLwe0b1R0+evJ13IXQuLNB5w1fhC5Q==", + "dev": true, "license": "MIT", - "optional": true, "dependencies": { - "tslib": "^2.4.0" + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@emnapi/wasi-threads": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.0.2.tgz", - "integrity": "sha512-5n3nTJblwRi8LlXkJ9eBzu+kZR8Yxcc7ubakyQTFzPMtIhFpUBRbsnc2Dv88IZDIbCDlBiWrknhB4Lsz7mg6BA==", + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.27.1.tgz", + "integrity": "sha512-gEbkDVGRvjj7+T1ivxrfgygpT7GUd4vmODtYpbs0gZATdkX8/iSnOtZSxiZnsgm1YjTgjI6VKBGSJJevkrclzw==", "dev": true, "license": "MIT", - "optional": true, "dependencies": { - "tslib": "^2.4.0" + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz", - "integrity": "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==", + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.27.1.tgz", + "integrity": "sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q==", "dev": true, "license": "MIT", "dependencies": { - "eslint-visitor-keys": "^3.4.3" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "node": ">=6.9.0" }, "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@eslint-community/regexpp": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", - "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.27.1.tgz", + "integrity": "sha512-hkGcueTEzuhB30B3eJCbCYeCaaEQOmQR0AdvzpD4LoN0GXMWzzGSuRrxR2xTnCrvNbVwK9N6/jQ92GSLfiZWoQ==", "dev": true, "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.27.1.tgz", + "integrity": "sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A==", "dev": true, "license": "MIT", "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=6.9.0" }, - "funding": { - "url": "https://opencollective.com/eslint" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.27.1.tgz", + "integrity": "sha512-uspvXnhHvGKf2r4VVtBpeFnuDWsJLQ6MF6lGJLC89jBR1uoVeqM416AZtTuhTezOfgHicpJQmoD5YUakO/YmXQ==", "dev": true, "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@eslint/eslintrc/node_modules/ignore": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.27.1.tgz", + "integrity": "sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==", "dev": true, "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, "engines": { - "node": ">= 4" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@eslint/eslintrc/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.27.1.tgz", + "integrity": "sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "brace-expansion": "^1.1.7" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" }, "engines": { - "node": "*" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@eslint/js": { - "version": "8.57.1", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", - "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.27.1.tgz", + "integrity": "sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==", "dev": true, "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", - "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", - "deprecated": "Use @eslint/config-array instead", + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.27.1.tgz", + "integrity": "sha512-6WVLVJiTjqcQauBhn1LkICsR2H+zm62I3h9faTDKt1qP4jn2o72tSvqMwtGFKGTpojce0gJs+76eZ2uCHRZh0Q==", "dev": true, - "license": "Apache-2.0", + "license": "MIT", "dependencies": { - "@humanwhocodes/object-schema": "^2.0.3", - "debug": "^4.3.1", - "minimatch": "^3.0.5" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { - "node": ">=10.10.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "node_modules/@babel/plugin-transform-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.27.1.tgz", + "integrity": "sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==", "dev": true, "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.27.1.tgz", + "integrity": "sha512-SJvDs5dXxiae4FbSL1aBJlG4wvl594N6YEVVn9e3JGulwioy6z3oPjx/sQBO3Y4NwUu5HNix6KJ3wBZoewcdbw==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "brace-expansion": "^1.1.7" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { - "node": "*" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.27.1.tgz", + "integrity": "sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ==", "dev": true, - "license": "Apache-2.0", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, "engines": { - "node": ">=12.22" + "node": ">=6.9.0" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", - "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", - "deprecated": "Use @eslint/object-schema instead", + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.27.1.tgz", + "integrity": "sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA==", "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/@img/sharp-darwin-arm64": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.1.tgz", - "integrity": "sha512-pn44xgBtgpEbZsu+lWf2KNb6OAf70X68k+yk69Ic2Xz11zHR/w24/U49XT7AeRwJ0Px+mhALhU5LPci1Aymk7A==", - "cpu": [ - "arm64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, - "funding": { - "url": "https://opencollective.com/libvips" + "engines": { + "node": ">=6.9.0" }, - "optionalDependencies": { - "@img/sharp-libvips-darwin-arm64": "1.1.0" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@img/sharp-darwin-x64": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.1.tgz", - "integrity": "sha512-VfuYgG2r8BpYiOUN+BfYeFo69nP/MIwAtSJ7/Zpxc5QF3KS22z8Pvg3FkrSFJBPNQ7mmcUcYQFBmEQp7eu1F8Q==", - "cpu": [ - "x64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "darwin" - ], + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.27.1.tgz", + "integrity": "sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">=6.9.0" }, - "funding": { - "url": "https://opencollective.com/libvips" + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.27.1.tgz", + "integrity": "sha512-w5N1XzsRbc0PQStASMksmUeqECuzKuTJer7kFagK8AXgpCMkeDMO5S+aaFb7A51ZYDF7XI34qsTX+fkHiIm5yA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.27.1" }, - "optionalDependencies": { - "@img/sharp-libvips-darwin-x64": "1.1.0" + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@img/sharp-libvips-darwin-arm64": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.1.0.tgz", - "integrity": "sha512-HZ/JUmPwrJSoM4DIQPv/BfNh9yrOA8tlBbqbLz4JZ5uew2+o22Ik+tHQJcih7QJuSa0zo5coHTfD5J8inqj9DA==", - "cpu": [ - "arm64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "darwin" - ], - "funding": { - "url": "https://opencollective.com/libvips" + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.27.1.tgz", + "integrity": "sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@img/sharp-libvips-darwin-x64": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.1.0.tgz", - "integrity": "sha512-Xzc2ToEmHN+hfvsl9wja0RlnXEgpKNmftriQp6XzY/RaSfwD9th+MSh0WQKzUreLKKINb3afirxW7A0fz2YWuQ==", - "cpu": [ - "x64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "darwin" - ], - "funding": { - "url": "https://opencollective.com/libvips" + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.27.1.tgz", + "integrity": "sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@img/sharp-libvips-linux-arm": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.1.0.tgz", - "integrity": "sha512-s8BAd0lwUIvYCJyRdFqvsj+BJIpDBSxs6ivrOPm/R7piTs5UIwY5OjXrP2bqXC9/moGsyRa37eYWYCOGVXxVrA==", - "cpu": [ - "arm" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.27.1.tgz", + "integrity": "sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@img/sharp-libvips-linux-arm64": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.1.0.tgz", - "integrity": "sha512-IVfGJa7gjChDET1dK9SekxFFdflarnUB8PwW8aGwEoF3oAsSDuNUTYS+SKDOyOJxQyDC1aPFMuRYLoDInyV9Ew==", - "cpu": [ - "arm64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.27.1.tgz", + "integrity": "sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@img/sharp-libvips-linux-ppc64": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.1.0.tgz", - "integrity": "sha512-tiXxFZFbhnkWE2LA8oQj7KYR+bWBkiV2nilRldT7bqoEZ4HiDOcePr9wVDAZPi/Id5fT1oY9iGnDq20cwUz8lQ==", - "cpu": [ - "ppc64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.27.1.tgz", + "integrity": "sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@img/sharp-libvips-linux-s390x": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.1.0.tgz", - "integrity": "sha512-xukSwvhguw7COyzvmjydRb3x/09+21HykyapcZchiCUkTThEQEOMtBj9UhkaBRLuBrgLFzQ2wbxdeCCJW/jgJA==", - "cpu": [ - "s390x" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.27.2.tgz", + "integrity": "sha512-AIUHD7xJ1mCrj3uPozvtngY3s0xpv7Nu7DoUSnzNY6Xam1Cy4rUznR//pvMHOhQ4AvbCexhbqXCtpxGHOGOO6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-transform-destructuring": "^7.27.1", + "@babel/plugin-transform-parameters": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@img/sharp-libvips-linux-x64": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.1.0.tgz", - "integrity": "sha512-yRj2+reB8iMg9W5sULM3S74jVS7zqSzHG3Ol/twnAAkAhnGQnpjj6e4ayUz7V+FpKypwgs82xbRdYtchTTUB+Q==", - "cpu": [ - "x64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.27.1.tgz", + "integrity": "sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@img/sharp-libvips-linuxmusl-arm64": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.1.0.tgz", - "integrity": "sha512-jYZdG+whg0MDK+q2COKbYidaqW/WTz0cc1E+tMAusiDygrM4ypmSCjOJPmFTvHHJ8j/6cAGyeDWZOsK06tP33w==", - "cpu": [ - "arm64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.27.1.tgz", + "integrity": "sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.27.1.tgz", + "integrity": "sha512-BQmKPPIuc8EkZgNKsv0X4bPmOoayeu4F1YCwx2/CfmDSXDbp7GnzlUH+/ul5VGfRg1AoFPsrIThlEBj2xb4CAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.1.tgz", + "integrity": "sha512-018KRk76HWKeZ5l4oTj2zPpSh+NbGdt0st5S6x0pga6HgrjBOJb24mMDHorFopOOd6YHkLgOZ+zaCjZGPO4aKg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.27.1.tgz", + "integrity": "sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.27.1.tgz", + "integrity": "sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.27.1.tgz", + "integrity": "sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-constant-elements": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.27.1.tgz", + "integrity": "sha512-edoidOjl/ZxvYo4lSBOQGDSyToYVkTAwyVoa2tkuYTSmjrB1+uAedoL5iROVLXkxH+vRgA7uP4tMg2pUJpZ3Ug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.27.1.tgz", + "integrity": "sha512-p9+Vl3yuHPmkirRrg021XiP+EETmPMQTLr6Ayjj85RLNEbb3Eya/4VI0vAdzQG9SEAl2Lnt7fy5lZyMzjYoZQQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.27.1.tgz", + "integrity": "sha512-2KH4LWGSrJIkVf5tSiBFYuXDAoWRq2MMwgivCf+93dd0GQi8RXLjKA/0EvRnVV5G0hrHczsquXuD01L8s6dmBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-syntax-jsx": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-development": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.27.1.tgz", + "integrity": "sha512-ykDdF5yI4f1WrAolLqeF3hmYU12j9ntLQl/AOG1HAS21jxyg1Q0/J/tpREuYLfatGdGmXp/3yS0ZA76kOlVq9Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/plugin-transform-react-jsx": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-pure-annotations": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.27.1.tgz", + "integrity": "sha512-JfuinvDOsD9FVMTHpzA/pBLisxpv1aSf+OIV8lgH3MuWrks19R27e6a6DipIg4aX1Zm9Wpb04p8wljfKrVSnPA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.27.1.tgz", + "integrity": "sha512-B19lbbL7PMrKr52BNPjCqg1IyNUIjTcxKj8uX9zHO+PmWN93s19NDr/f69mIkEp2x9nmDJ08a7lgHaTTzvW7mw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regexp-modifiers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.27.1.tgz", + "integrity": "sha512-TtEciroaiODtXvLZv4rmfMhkCv8jx3wgKpL68PuiPh2M4fvz5jhsA7697N1gMvkvr/JTF13DrFYyEbY9U7cVPA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.27.1.tgz", + "integrity": "sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz", + "integrity": "sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.27.1.tgz", + "integrity": "sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.27.1.tgz", + "integrity": "sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.27.1.tgz", + "integrity": "sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.27.1.tgz", + "integrity": "sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.27.1.tgz", + "integrity": "sha512-Q5sT5+O4QUebHdbwKedFBEwRLb02zJ7r4A5Gg2hUoLuU3FjdMcyqcywqUrLCaDsFCxzokf7u9kuy7qz51YUuAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/plugin-syntax-typescript": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.27.1.tgz", + "integrity": "sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.27.1.tgz", + "integrity": "sha512-uW20S39PnaTImxp39O5qFlHLS9LJEmANjMG7SxIhap8rCHqu0Ik+tLEPX5DKmHn6CsWQ7j3lix2tFOa5YtL12Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.27.1.tgz", + "integrity": "sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.27.1.tgz", + "integrity": "sha512-EtkOujbc4cgvb0mlpQefi4NTPBzhSIevblFevACNLUspmrALgmEBdL/XfnyyITfd8fKBZrZys92zOWcik7j9Tw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.27.2.tgz", + "integrity": "sha512-Ma4zSuYSlGNRlCLO+EAzLnCmJK2vdstgv+n7aUP+/IKZrOfWHOJVdSJtuub8RzHTj3ahD37k5OKJWvzf16TQyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.27.2", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-option": "^7.27.1", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.27.1", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.27.1", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.27.1", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.27.1", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.27.1", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-import-assertions": "^7.27.1", + "@babel/plugin-syntax-import-attributes": "^7.27.1", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.27.1", + "@babel/plugin-transform-async-generator-functions": "^7.27.1", + "@babel/plugin-transform-async-to-generator": "^7.27.1", + "@babel/plugin-transform-block-scoped-functions": "^7.27.1", + "@babel/plugin-transform-block-scoping": "^7.27.1", + "@babel/plugin-transform-class-properties": "^7.27.1", + "@babel/plugin-transform-class-static-block": "^7.27.1", + "@babel/plugin-transform-classes": "^7.27.1", + "@babel/plugin-transform-computed-properties": "^7.27.1", + "@babel/plugin-transform-destructuring": "^7.27.1", + "@babel/plugin-transform-dotall-regex": "^7.27.1", + "@babel/plugin-transform-duplicate-keys": "^7.27.1", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.27.1", + "@babel/plugin-transform-dynamic-import": "^7.27.1", + "@babel/plugin-transform-exponentiation-operator": "^7.27.1", + "@babel/plugin-transform-export-namespace-from": "^7.27.1", + "@babel/plugin-transform-for-of": "^7.27.1", + "@babel/plugin-transform-function-name": "^7.27.1", + "@babel/plugin-transform-json-strings": "^7.27.1", + "@babel/plugin-transform-literals": "^7.27.1", + "@babel/plugin-transform-logical-assignment-operators": "^7.27.1", + "@babel/plugin-transform-member-expression-literals": "^7.27.1", + "@babel/plugin-transform-modules-amd": "^7.27.1", + "@babel/plugin-transform-modules-commonjs": "^7.27.1", + "@babel/plugin-transform-modules-systemjs": "^7.27.1", + "@babel/plugin-transform-modules-umd": "^7.27.1", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.27.1", + "@babel/plugin-transform-new-target": "^7.27.1", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.27.1", + "@babel/plugin-transform-numeric-separator": "^7.27.1", + "@babel/plugin-transform-object-rest-spread": "^7.27.2", + "@babel/plugin-transform-object-super": "^7.27.1", + "@babel/plugin-transform-optional-catch-binding": "^7.27.1", + "@babel/plugin-transform-optional-chaining": "^7.27.1", + "@babel/plugin-transform-parameters": "^7.27.1", + "@babel/plugin-transform-private-methods": "^7.27.1", + "@babel/plugin-transform-private-property-in-object": "^7.27.1", + "@babel/plugin-transform-property-literals": "^7.27.1", + "@babel/plugin-transform-regenerator": "^7.27.1", + "@babel/plugin-transform-regexp-modifiers": "^7.27.1", + "@babel/plugin-transform-reserved-words": "^7.27.1", + "@babel/plugin-transform-shorthand-properties": "^7.27.1", + "@babel/plugin-transform-spread": "^7.27.1", + "@babel/plugin-transform-sticky-regex": "^7.27.1", + "@babel/plugin-transform-template-literals": "^7.27.1", + "@babel/plugin-transform-typeof-symbol": "^7.27.1", + "@babel/plugin-transform-unicode-escapes": "^7.27.1", + "@babel/plugin-transform-unicode-property-regex": "^7.27.1", + "@babel/plugin-transform-unicode-regex": "^7.27.1", + "@babel/plugin-transform-unicode-sets-regex": "^7.27.1", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.11.0", + "babel-plugin-polyfill-regenerator": "^0.6.1", + "core-js-compat": "^3.40.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/preset-react": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.27.1.tgz", + "integrity": "sha512-oJHWh2gLhU9dW9HHr42q0cI0/iHHXTLGe39qvpAZZzagHy0MzYLCnCVV0symeRvzmjHyVU7mw2K06E6u/JwbhA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-option": "^7.27.1", + "@babel/plugin-transform-react-display-name": "^7.27.1", + "@babel/plugin-transform-react-jsx": "^7.27.1", + "@babel/plugin-transform-react-jsx-development": "^7.27.1", + "@babel/plugin-transform-react-pure-annotations": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-typescript": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.27.1.tgz", + "integrity": "sha512-l7WfQfX0WK4M0v2RudjuQK4u99BS6yLHYEmdtVPP7lKV013zr9DygFuWNlnbvQ9LR+LS0Egz/XAvGx5U9MX0fQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-option": "^7.27.1", + "@babel/plugin-syntax-jsx": "^7.27.1", + "@babel/plugin-transform-modules-commonjs": "^7.27.1", + "@babel/plugin-transform-typescript": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.1.tgz", + "integrity": "sha512-1x3D2xEk2fRo3PAhwQwu5UubzgiVWSXTBfWpVd2Mx2AzRqJuDJCsgaDVZ7HB5iGzDW1Hl1sWN2mFyKjmR9uAog==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.1.tgz", + "integrity": "sha512-ZCYtZciz1IWJB4U61UPu4KEaqyfj+r5T1Q5mqPo+IBpcG9kHv30Z0aD8LXPgC1trYa6rK0orRyAhqUgk4MjmEg==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.27.1", + "@babel/parser": "^7.27.1", + "@babel/template": "^7.27.1", + "@babel/types": "^7.27.1", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.1.tgz", + "integrity": "sha512-+EzkxvLNfiUeKMgy/3luqfsCWFRXLb7U6wNQTk60tovuckwB15B191tJWvpp4HjiQWdJkCxO3Wbvc6jlk3Xb2Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@cypress/request": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@cypress/request/-/request-3.0.8.tgz", + "integrity": "sha512-h0NFgh1mJmm1nr4jCwkGHwKneVYKghUyWe6TMNrk0B9zsjAJxpg8C4/+BAcmLgCPa1vj1V8rNUaILl+zYRUWBQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~4.0.0", + "http-signature": "~1.4.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "performance-now": "^2.1.0", + "qs": "6.14.0", + "safe-buffer": "^5.1.2", + "tough-cookie": "^5.0.0", + "tunnel-agent": "^0.6.0", + "uuid": "^8.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@cypress/xvfb": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz", + "integrity": "sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.1.0", + "lodash.once": "^4.1.1" } }, - "node_modules/@img/sharp-libvips-linuxmusl-x64": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.1.0.tgz", - "integrity": "sha512-wK7SBdwrAiycjXdkPnGCPLjYb9lD4l6Ze2gSdAGVZrEL05AOUJESWU2lhlC+Ffn5/G+VKuSm6zzbQSzFX/P65A==", - "cpu": [ - "x64" - ], - "license": "LGPL-3.0-or-later", + "node_modules/@cypress/xvfb/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/@emnapi/core": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.4.3.tgz", + "integrity": "sha512-4m62DuCE07lw01soJwPiBGC0nAww0Q+RY70VZ+n49yDIO13yyinhbWCeNnaob0lakDtWQzSdtNWzJeOJt2ma+g==", + "dev": true, + "license": "MIT", "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" + "dependencies": { + "@emnapi/wasi-threads": "1.0.2", + "tslib": "^2.4.0" } }, - "node_modules/@img/sharp-linux-arm": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.1.tgz", - "integrity": "sha512-anKiszvACti2sGy9CirTlNyk7BjjZPiML1jt2ZkTdcvpLU1YH6CXwRAZCA2UmRXnhiIftXQ7+Oh62Ji25W72jA==", - "cpu": [ - "arm" - ], - "license": "Apache-2.0", + "node_modules/@emnapi/runtime": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.4.3.tgz", + "integrity": "sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==", + "dev": true, + "license": "MIT", "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/wasi-threads": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.0.2.tgz", + "integrity": "sha512-5n3nTJblwRi8LlXkJ9eBzu+kZR8Yxcc7ubakyQTFzPMtIhFpUBRbsnc2Dv88IZDIbCDlBiWrknhB4Lsz7mg6BA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emotion/babel-plugin": { + "version": "11.13.5", + "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.13.5.tgz", + "integrity": "sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/runtime": "^7.18.3", + "@emotion/hash": "^0.9.2", + "@emotion/memoize": "^0.9.0", + "@emotion/serialize": "^1.3.3", + "babel-plugin-macros": "^3.1.0", + "convert-source-map": "^1.5.0", + "escape-string-regexp": "^4.0.0", + "find-root": "^1.1.0", + "source-map": "^0.5.7", + "stylis": "4.2.0" + } + }, + "node_modules/@emotion/cache": { + "version": "11.14.0", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.14.0.tgz", + "integrity": "sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA==", + "license": "MIT", + "dependencies": { + "@emotion/memoize": "^0.9.0", + "@emotion/sheet": "^1.4.0", + "@emotion/utils": "^1.4.2", + "@emotion/weak-memoize": "^0.4.0", + "stylis": "4.2.0" + } + }, + "node_modules/@emotion/hash": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.2.tgz", + "integrity": "sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==", + "license": "MIT" + }, + "node_modules/@emotion/is-prop-valid": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.3.1.tgz", + "integrity": "sha512-/ACwoqx7XQi9knQs/G0qKvv5teDMhD7bXYns9N/wM8ah8iNb8jZ2uNO0YOgiq2o2poIvVtJS2YALasQuMSQ7Kw==", + "license": "MIT", + "dependencies": { + "@emotion/memoize": "^0.9.0" + } + }, + "node_modules/@emotion/memoize": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.9.0.tgz", + "integrity": "sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==", + "license": "MIT" + }, + "node_modules/@emotion/react": { + "version": "11.14.0", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.14.0.tgz", + "integrity": "sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.13.5", + "@emotion/cache": "^11.14.0", + "@emotion/serialize": "^1.3.3", + "@emotion/use-insertion-effect-with-fallbacks": "^1.2.0", + "@emotion/utils": "^1.4.2", + "@emotion/weak-memoize": "^0.4.0", + "hoist-non-react-statics": "^3.3.1" }, - "funding": { - "url": "https://opencollective.com/libvips" + "peerDependencies": { + "react": ">=16.8.0" }, - "optionalDependencies": { - "@img/sharp-libvips-linux-arm": "1.1.0" + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@img/sharp-linux-arm64": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.1.tgz", - "integrity": "sha512-kX2c+vbvaXC6vly1RDf/IWNXxrlxLNpBVWkdpRq5Ka7OOKj6nr66etKy2IENf6FtOgklkg9ZdGpEu9kwdlcwOQ==", - "cpu": [ - "arm64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], + "node_modules/@emotion/serialize": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.3.3.tgz", + "integrity": "sha512-EISGqt7sSNWHGI76hC7x1CksiXPahbxEOrC5RjmFRJTqLyEK9/9hZvBbiYn70dw4wuwMKiEMCUlR6ZXTSWQqxA==", + "license": "MIT", + "dependencies": { + "@emotion/hash": "^0.9.2", + "@emotion/memoize": "^0.9.0", + "@emotion/unitless": "^0.10.0", + "@emotion/utils": "^1.4.2", + "csstype": "^3.0.2" + } + }, + "node_modules/@emotion/sheet": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.4.0.tgz", + "integrity": "sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==", + "license": "MIT" + }, + "node_modules/@emotion/styled": { + "version": "11.14.0", + "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.14.0.tgz", + "integrity": "sha512-XxfOnXFffatap2IyCeJyNov3kiDQWoR08gPUQxvbL7fxKryGBKUZUkG6Hz48DZwVrJSVh9sJboyV1Ds4OW6SgA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.13.5", + "@emotion/is-prop-valid": "^1.3.0", + "@emotion/serialize": "^1.3.3", + "@emotion/use-insertion-effect-with-fallbacks": "^1.2.0", + "@emotion/utils": "^1.4.2" + }, + "peerDependencies": { + "@emotion/react": "^11.0.0-rc.0", + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@emotion/unitless": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.10.0.tgz", + "integrity": "sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==", + "license": "MIT" + }, + "node_modules/@emotion/use-insertion-effect-with-fallbacks": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.2.0.tgz", + "integrity": "sha512-yJMtVdH59sxi/aVJBpk9FQq+OR8ll5GT8oWd57UpeaKEVGab41JWaCFA7FRLoMLloOZF/c/wsPoe+bfGmRKgDg==", + "license": "MIT", + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/@emotion/utils": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.4.2.tgz", + "integrity": "sha512-3vLclRofFziIa3J2wDh9jjbkUz9qk5Vi3IZ/FSTKViB0k+ef0fPV7dYrUIugbgupYDx7v9ud/SjrtEP8Y4xLoA==", + "license": "MIT" + }, + "node_modules/@emotion/weak-memoize": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.4.0.tgz", + "integrity": "sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==", + "license": "MIT" + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz", + "integrity": "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "url": "https://opencollective.com/libvips" + "url": "https://opencollective.com/eslint" }, - "optionalDependencies": { - "@img/sharp-libvips-linux-arm64": "1.1.0" + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, - "node_modules/@img/sharp-linux-s390x": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.1.tgz", - "integrity": "sha512-7s0KX2tI9mZI2buRipKIw2X1ufdTeaRgwmRabt5bi9chYfhur+/C1OXg3TKg/eag1W+6CCWLVmSauV1owmRPxA==", - "cpu": [ - "s390x" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], + "node_modules/@eslint-community/regexpp": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-s390x": "1.1.0" + "url": "https://opencollective.com/eslint" } }, - "node_modules/@img/sharp-linux-x64": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.1.tgz", - "integrity": "sha512-wExv7SH9nmoBW3Wr2gvQopX1k8q2g5V5Iag8Zk6AVENsjwd+3adjwxtp3Dcu2QhOXr8W9NusBU6XcQUohBZ5MA==", - "cpu": [ - "x64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], + "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">=8" }, "funding": { - "url": "https://opencollective.com/libvips" + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" }, - "optionalDependencies": { - "@img/sharp-libvips-linux-x64": "1.1.0" + "engines": { + "node": "*" } }, - "node_modules/@img/sharp-linuxmusl-arm64": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.1.tgz", - "integrity": "sha512-DfvyxzHxw4WGdPiTF0SOHnm11Xv4aQexvqhRDAoD00MzHekAj9a/jADXeXYCDFH/DzYruwHbXU7uz+H+nWmSOQ==", - "cpu": [ - "arm64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">=10" }, "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linuxmusl-arm64": "1.1.0" + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", + "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/@img/sharp-linuxmusl-x64": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.1.tgz", - "integrity": "sha512-pax/kTR407vNb9qaSIiWVnQplPcGU8LRIJpDT5o8PdAx5aAA7AS3X9PS8Isw1/WfqgQorPotjrZL3Pqh6C5EBg==", - "cpu": [ - "x64" - ], + "node_modules/@humanwhocodes/config-array": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", + "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", + "deprecated": "Use @eslint/config-array instead", + "dev": true, "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.3", + "debug": "^4.3.1", + "minimatch": "^3.0.5" }, - "optionalDependencies": { - "@img/sharp-libvips-linuxmusl-x64": "1.1.0" + "engines": { + "node": ">=10.10.0" } }, - "node_modules/@img/sharp-wasm32": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.1.tgz", - "integrity": "sha512-YDybQnYrLQfEpzGOQe7OKcyLUCML4YOXl428gOOzBgN6Gw0rv8dpsJ7PqTHxBnXnwXr8S1mYFSLSa727tpz0xg==", - "cpu": [ - "wasm32" - ], - "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", - "optional": true, + "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", "dependencies": { - "@emnapi/runtime": "^1.4.0" - }, - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/@img/sharp-win32-ia32": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.1.tgz", - "integrity": "sha512-WKf/NAZITnonBf3U1LfdjoMgNO5JYRSlhovhRhMxXVdvWYveM4kM3L8m35onYIdh75cOMCo1BexgVQcCDzyoWw==", - "cpu": [ - "ia32" - ], - "license": "Apache-2.0 AND LGPL-3.0-or-later", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" }, - "funding": { - "url": "https://opencollective.com/libvips" + "engines": { + "node": "*" } }, - "node_modules/@img/sharp-win32-x64": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.1.tgz", - "integrity": "sha512-hw1iIAHpNE8q3uMIRCgGOeDoz9KtFNarFLQclLxr/LK1VBkj8nby18RjFvr6aP7USRYAjTZW6yisnBWMX571Tw==", - "cpu": [ - "x64" - ], - "license": "Apache-2.0 AND LGPL-3.0-or-later", - "optional": true, - "os": [ - "win32" - ], + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">=12.22" }, "funding": { - "url": "https://opencollective.com/libvips" + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", + "dev": true, + "license": "BSD-3-Clause" + }, "node_modules/@isaacs/cliui": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", @@ -1315,6 +2464,16 @@ "sprintf-js": "~1.0.2" } }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", @@ -1776,6 +2935,13 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/@jest/transform/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, "node_modules/@jest/types": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", @@ -1798,7 +2964,6 @@ "version": "0.3.8", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", - "dev": true, "license": "MIT", "dependencies": { "@jridgewell/set-array": "^1.2.1", @@ -1813,7 +2978,6 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "dev": true, "license": "MIT", "engines": { "node": ">=6.0.0" @@ -1823,28 +2987,304 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@mui/core-downloads-tracker": { + "version": "5.17.1", + "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.17.1.tgz", + "integrity": "sha512-OcZj+cs6EfUD39IoPBOgN61zf1XFVY+imsGoBDwXeSq2UHJZE3N59zzBOVjclck91Ne3e9gudONOeILvHCIhUA==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + } + }, + "node_modules/@mui/material": { + "version": "5.17.1", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.17.1.tgz", + "integrity": "sha512-2B33kQf+GmPnrvXXweWAx+crbiUEsxCdCN979QDYnlH9ox4pd+0/IBriWLV+l6ORoBF60w39cWjFnJYGFdzXcw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@mui/core-downloads-tracker": "^5.17.1", + "@mui/system": "^5.17.1", + "@mui/types": "~7.2.15", + "@mui/utils": "^5.17.1", + "@popperjs/core": "^2.11.8", + "@types/react-transition-group": "^4.4.10", + "clsx": "^2.1.0", + "csstype": "^3.1.3", + "prop-types": "^15.8.1", + "react-is": "^19.0.0", + "react-transition-group": "^4.4.5" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@emotion/react": "^11.5.0", + "@emotion/styled": "^11.3.0", + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + }, + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/material-nextjs": { + "version": "5.16.14", + "resolved": "https://registry.npmjs.org/@mui/material-nextjs/-/material-nextjs-5.16.14.tgz", + "integrity": "sha512-kh/sun4FNvmCW1yhUPaBeuycvgJVlHwsQDkC5OHZHGjkz1T6RkmZ7R66xgf3ZHYdEJH8scH1T9qvPDxrVS/F4g==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.9" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@emotion/cache": "^11.11.0", + "@emotion/server": "^11.11.0", + "@mui/material": "^5.0.0", + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "next": "^13.0.0 || ^14.0.0 || ^15.0.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@emotion/cache": { + "optional": true + }, + "@emotion/server": { + "optional": true + }, + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/material/node_modules/@mui/types": { + "version": "7.2.24", + "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.24.tgz", + "integrity": "sha512-3c8tRt/CbWZ+pEg7QpSwbdxOk36EfmhbKf6AGZsD1EcLDLTSZoxxJ86FVtcjxvjuhdyBiWKSTGZFaXCnidO2kw==", + "license": "MIT", + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/private-theming": { + "version": "5.17.1", + "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.17.1.tgz", + "integrity": "sha512-XMxU0NTYcKqdsG8LRmSoxERPXwMbp16sIXPcLVgLGII/bVNagX0xaheWAwFv8+zDK7tI3ajllkuD3GZZE++ICQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@mui/utils": "^5.17.1", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/styled-engine": { + "version": "5.16.14", + "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.16.14.tgz", + "integrity": "sha512-UAiMPZABZ7p8mUW4akDV6O7N3+4DatStpXMZwPlt+H/dA0lt67qawN021MNND+4QTpjaiMYxbhKZeQcyWCbuKw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@emotion/cache": "^11.13.5", + "csstype": "^3.1.3", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@emotion/react": "^11.4.1", + "@emotion/styled": "^11.3.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + } + } + }, + "node_modules/@mui/system": { + "version": "5.17.1", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.17.1.tgz", + "integrity": "sha512-aJrmGfQpyF0U4D4xYwA6ueVtQcEMebET43CUmKMP7e7iFh3sMIF3sBR0l8Urb4pqx1CBjHAaWgB0ojpND4Q3Jg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@mui/private-theming": "^5.17.1", + "@mui/styled-engine": "^5.16.14", + "@mui/types": "~7.2.15", + "@mui/utils": "^5.17.1", + "clsx": "^2.1.0", + "csstype": "^3.1.3", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@emotion/react": "^11.5.0", + "@emotion/styled": "^11.3.0", + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + }, + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/system/node_modules/@mui/types": { + "version": "7.2.24", + "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.24.tgz", + "integrity": "sha512-3c8tRt/CbWZ+pEg7QpSwbdxOk36EfmhbKf6AGZsD1EcLDLTSZoxxJ86FVtcjxvjuhdyBiWKSTGZFaXCnidO2kw==", + "license": "MIT", + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/types": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.4.2.tgz", + "integrity": "sha512-edRc5JcLPsrlNFYyTPxds+d5oUovuUxnnDtpJUbP6WMeV4+6eaX/mqai1ZIWT62lCOe0nlrON0s9HDiv5en5bA==", "dev": true, "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.27.1" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/utils": { + "version": "5.17.1", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.17.1.tgz", + "integrity": "sha512-jEZ8FTqInt2WzxDV8bhImWBqeQRD99c/id/fq83H0ER9tFl+sfZlaAoCdznGvbSQQ9ividMxqSV2c7cC1vBcQg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@mui/types": "~7.2.15", + "@types/prop-types": "^15.7.12", + "clsx": "^2.1.1", + "prop-types": "^15.8.1", + "react-is": "^19.0.0" + }, "engines": { - "node": ">=6.0.0" + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dev": true, + "node_modules/@mui/utils/node_modules/@mui/types": { + "version": "7.2.24", + "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.24.tgz", + "integrity": "sha512-3c8tRt/CbWZ+pEg7QpSwbdxOk36EfmhbKf6AGZsD1EcLDLTSZoxxJ86FVtcjxvjuhdyBiWKSTGZFaXCnidO2kw==", "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, "node_modules/@napi-rs/wasm-runtime": { @@ -1861,9 +3301,9 @@ } }, "node_modules/@next/env": { - "version": "15.3.2", - "resolved": "https://registry.npmjs.org/@next/env/-/env-15.3.2.tgz", - "integrity": "sha512-xURk++7P7qR9JG1jJtLzPzf0qEvqCN0A/T3DXf8IPMKo9/6FfjxtEffRJIIew/bIL4T3C2jLLqBor8B/zVlx6g==", + "version": "14.2.5", + "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.5.tgz", + "integrity": "sha512-/zZGkrTOsraVfYjGP8uM0p6r0BDT6xWpkjdVbcz66PJVSpwXX3yNiRycxAuDfBKGWBrZBXRuK/YVlkNgxHGwmA==", "license": "MIT" }, "node_modules/@next/eslint-plugin-next": { @@ -1877,9 +3317,9 @@ } }, "node_modules/@next/swc-darwin-arm64": { - "version": "15.3.2", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.3.2.tgz", - "integrity": "sha512-2DR6kY/OGcokbnCsjHpNeQblqCZ85/1j6njYSkzRdpLn5At7OkSdmk7WyAmB9G0k25+VgqVZ/u356OSoQZ3z0g==", + "version": "14.2.5", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.5.tgz", + "integrity": "sha512-/9zVxJ+K9lrzSGli1///ujyRfon/ZneeZ+v4ptpiPoOU+GKZnm8Wj8ELWU1Pm7GHltYRBklmXMTUqM/DqQ99FQ==", "cpu": [ "arm64" ], @@ -1893,9 +3333,9 @@ } }, "node_modules/@next/swc-darwin-x64": { - "version": "15.3.2", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.3.2.tgz", - "integrity": "sha512-ro/fdqaZWL6k1S/5CLv1I0DaZfDVJkWNaUU3un8Lg6m0YENWlDulmIWzV96Iou2wEYyEsZq51mwV8+XQXqMp3w==", + "version": "14.2.5", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.5.tgz", + "integrity": "sha512-vXHOPCwfDe9qLDuq7U1OYM2wUY+KQ4Ex6ozwsKxp26BlJ6XXbHleOUldenM67JRyBfVjv371oneEvYd3H2gNSA==", "cpu": [ "x64" ], @@ -1909,9 +3349,9 @@ } }, "node_modules/@next/swc-linux-arm64-gnu": { - "version": "15.3.2", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.3.2.tgz", - "integrity": "sha512-covwwtZYhlbRWK2HlYX9835qXum4xYZ3E2Mra1mdQ+0ICGoMiw1+nVAn4d9Bo7R3JqSmK1grMq/va+0cdh7bJA==", + "version": "14.2.5", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.5.tgz", + "integrity": "sha512-vlhB8wI+lj8q1ExFW8lbWutA4M2ZazQNvMWuEDqZcuJJc78iUnLdPPunBPX8rC4IgT6lIx/adB+Cwrl99MzNaA==", "cpu": [ "arm64" ], @@ -1925,9 +3365,9 @@ } }, "node_modules/@next/swc-linux-arm64-musl": { - "version": "15.3.2", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.3.2.tgz", - "integrity": "sha512-KQkMEillvlW5Qk5mtGA/3Yz0/tzpNlSw6/3/ttsV1lNtMuOHcGii3zVeXZyi4EJmmLDKYcTcByV2wVsOhDt/zg==", + "version": "14.2.5", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.5.tgz", + "integrity": "sha512-NpDB9NUR2t0hXzJJwQSGu1IAOYybsfeB+LxpGsXrRIb7QOrYmidJz3shzY8cM6+rO4Aojuef0N/PEaX18pi9OA==", "cpu": [ "arm64" ], @@ -1941,9 +3381,9 @@ } }, "node_modules/@next/swc-linux-x64-gnu": { - "version": "15.3.2", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.3.2.tgz", - "integrity": "sha512-uRBo6THWei0chz+Y5j37qzx+BtoDRFIkDzZjlpCItBRXyMPIg079eIkOCl3aqr2tkxL4HFyJ4GHDes7W8HuAUg==", + "version": "14.2.5", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.5.tgz", + "integrity": "sha512-8XFikMSxWleYNryWIjiCX+gU201YS+erTUidKdyOVYi5qUQo/gRxv/3N1oZFCgqpesN6FPeqGM72Zve+nReVXQ==", "cpu": [ "x64" ], @@ -1957,9 +3397,9 @@ } }, "node_modules/@next/swc-linux-x64-musl": { - "version": "15.3.2", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.3.2.tgz", - "integrity": "sha512-+uxFlPuCNx/T9PdMClOqeE8USKzj8tVz37KflT3Kdbx/LOlZBRI2yxuIcmx1mPNK8DwSOMNCr4ureSet7eyC0w==", + "version": "14.2.5", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.5.tgz", + "integrity": "sha512-6QLwi7RaYiQDcRDSU/os40r5o06b5ue7Jsk5JgdRBGGp8l37RZEh9JsLSM8QF0YDsgcosSeHjglgqi25+m04IQ==", "cpu": [ "x64" ], @@ -1973,9 +3413,9 @@ } }, "node_modules/@next/swc-win32-arm64-msvc": { - "version": "15.3.2", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.3.2.tgz", - "integrity": "sha512-LLTKmaI5cfD8dVzh5Vt7+OMo+AIOClEdIU/TSKbXXT2iScUTSxOGoBhfuv+FU8R9MLmrkIL1e2fBMkEEjYAtPQ==", + "version": "14.2.5", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.5.tgz", + "integrity": "sha512-1GpG2VhbspO+aYoMOQPQiqc/tG3LzmsdBH0LhnDS3JrtDx2QmzXe0B6mSZZiN3Bq7IOMXxv1nlsjzoS1+9mzZw==", "cpu": [ "arm64" ], @@ -1988,10 +3428,26 @@ "node": ">= 10" } }, + "node_modules/@next/swc-win32-ia32-msvc": { + "version": "14.2.5", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.5.tgz", + "integrity": "sha512-Igh9ZlxwvCDsu6438FXlQTHlRno4gFpJzqPjSIBZooD22tKeI4fE/YMRoHVJHmrQ2P5YL1DoZ0qaOKkbeFWeMg==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, "node_modules/@next/swc-win32-x64-msvc": { - "version": "15.3.2", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.3.2.tgz", - "integrity": "sha512-aW5B8wOPioJ4mBdMDXkt5f3j8pUr9W8AnlX0Df35uRWNT1Y6RIybxjnSUe+PhM+M1bwgyY8PHLmXZC6zT1o5tA==", + "version": "14.2.5", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.5.tgz", + "integrity": "sha512-tEQ7oinq1/CjSG9uSTerca3v4AZ+dFa+4Yu6ihaG8Ud8ddqLQgFGcnwYls13H5X5CPDPZJdYxyeMui6muOLd4g==", "cpu": [ "x64" ], @@ -2076,6 +3532,42 @@ "url": "https://opencollective.com/pkgr" } }, + "node_modules/@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/@reduxjs/toolkit": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.8.2.tgz", + "integrity": "sha512-MYlOhQ0sLdw4ud48FoC5w0dH9VfWQjtCjreKwYTT3l+r427qYC5Y8PihNutepr8XrNaBUDQo9khWUwQxZaqt5A==", + "license": "MIT", + "dependencies": { + "@standard-schema/spec": "^1.0.0", + "@standard-schema/utils": "^0.3.0", + "immer": "^10.0.3", + "redux": "^5.0.1", + "redux-thunk": "^3.1.0", + "reselect": "^5.1.0" + }, + "peerDependencies": { + "react": "^16.9.0 || ^17.0.0 || ^18 || ^19", + "react-redux": "^7.2.1 || ^8.1.3 || ^9.0.0" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "react-redux": { + "optional": true + } + } + }, "node_modules/@rtsao/scc": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", @@ -2114,7 +3606,290 @@ "dev": true, "license": "BSD-3-Clause", "dependencies": { - "@sinonjs/commons": "^3.0.0" + "@sinonjs/commons": "^3.0.0" + } + }, + "node_modules/@standard-schema/spec": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.0.0.tgz", + "integrity": "sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==", + "license": "MIT" + }, + "node_modules/@standard-schema/utils": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@standard-schema/utils/-/utils-0.3.0.tgz", + "integrity": "sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==", + "license": "MIT" + }, + "node_modules/@svgr/babel-plugin-add-jsx-attribute": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz", + "integrity": "sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz", + "integrity": "sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz", + "integrity": "sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz", + "integrity": "sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-svg-dynamic-title": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz", + "integrity": "sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-svg-em-dimensions": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz", + "integrity": "sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-transform-react-native-svg": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.1.0.tgz", + "integrity": "sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-transform-svg-component": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz", + "integrity": "sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-preset": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-8.1.0.tgz", + "integrity": "sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@svgr/babel-plugin-add-jsx-attribute": "8.0.0", + "@svgr/babel-plugin-remove-jsx-attribute": "8.0.0", + "@svgr/babel-plugin-remove-jsx-empty-expression": "8.0.0", + "@svgr/babel-plugin-replace-jsx-attribute-value": "8.0.0", + "@svgr/babel-plugin-svg-dynamic-title": "8.0.0", + "@svgr/babel-plugin-svg-em-dimensions": "8.0.0", + "@svgr/babel-plugin-transform-react-native-svg": "8.1.0", + "@svgr/babel-plugin-transform-svg-component": "8.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/core": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz", + "integrity": "sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.21.3", + "@svgr/babel-preset": "8.1.0", + "camelcase": "^6.2.0", + "cosmiconfig": "^8.1.3", + "snake-case": "^3.0.4" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/hast-util-to-babel-ast": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz", + "integrity": "sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.21.3", + "entities": "^4.4.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/plugin-jsx": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-8.1.0.tgz", + "integrity": "sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.21.3", + "@svgr/babel-preset": "8.1.0", + "@svgr/hast-util-to-babel-ast": "8.0.0", + "svg-parser": "^2.0.4" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@svgr/core": "*" + } + }, + "node_modules/@svgr/plugin-svgo": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-8.1.0.tgz", + "integrity": "sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==", + "dev": true, + "license": "MIT", + "dependencies": { + "cosmiconfig": "^8.1.3", + "deepmerge": "^4.3.1", + "svgo": "^3.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@svgr/core": "*" + } + }, + "node_modules/@svgr/webpack": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-8.1.0.tgz", + "integrity": "sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.21.3", + "@babel/plugin-transform-react-constant-elements": "^7.21.3", + "@babel/preset-env": "^7.20.2", + "@babel/preset-react": "^7.18.6", + "@babel/preset-typescript": "^7.21.0", + "@svgr/core": "8.1.0", + "@svgr/plugin-jsx": "8.1.0", + "@svgr/plugin-svgo": "8.1.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" } }, "node_modules/@swc/counter": { @@ -2124,12 +3899,13 @@ "license": "Apache-2.0" }, "node_modules/@swc/helpers": { - "version": "0.5.15", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz", - "integrity": "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==", + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.5.tgz", + "integrity": "sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==", "license": "Apache-2.0", "dependencies": { - "tslib": "^2.8.0" + "@swc/counter": "^0.1.3", + "tslib": "^2.4.0" } }, "node_modules/@testing-library/dom": { @@ -2245,6 +4021,16 @@ "node": ">= 10" } }, + "node_modules/@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/@tybys/wasm-util": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.9.0.tgz", @@ -2386,11 +4172,22 @@ "undici-types": "~6.19.2" } }, + "node_modules/@types/parse-json": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", + "license": "MIT" + }, + "node_modules/@types/prop-types": { + "version": "15.7.14", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.14.tgz", + "integrity": "sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==", + "license": "MIT" + }, "node_modules/@types/react": { "version": "19.1.4", "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.4.tgz", "integrity": "sha512-EB1yiiYdvySuIITtD5lhW4yPyJ31RkJkkDw794LaQYrxCSaQV/47y5o1FMC4zF9ZyjUjzJMZwbovEnT5yHTW6g==", - "dev": true, "license": "MIT", "dependencies": { "csstype": "^3.0.2" @@ -2406,6 +4203,15 @@ "@types/react": "^19.0.0" } }, + "node_modules/@types/react-transition-group": { + "version": "4.4.12", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.12.tgz", + "integrity": "sha512-8TV6R3h2j7a91c+1DXdJi3Syo69zzIZbz7Lg5tORM5LEJG7X/E6a1V3drRyBRZq7/utz7A+c4OgYLiLcYGHG6w==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*" + } + }, "node_modules/@types/sinonjs__fake-timers": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz", @@ -2444,6 +4250,12 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/use-sync-external-store": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.6.tgz", + "integrity": "sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==", + "license": "MIT" + }, "node_modules/@types/yargs": { "version": "17.0.33", "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", @@ -2610,6 +4422,19 @@ "typescript": ">=4.8.4 <5.9.0" } }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@typescript-eslint/utils": { "version": "8.32.1", "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.32.1.tgz", @@ -3038,19 +4863,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ansi-escapes/node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -3477,16 +5289,6 @@ "node": ">=8" } }, - "node_modules/babel-plugin-istanbul/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/babel-plugin-jest-hoist": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", @@ -3503,6 +5305,79 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/babel-plugin-macros": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", + "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.5", + "cosmiconfig": "^7.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">=10", + "npm": ">=6" + } + }, + "node_modules/babel-plugin-macros/node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "license": "MIT", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.13", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.13.tgz", + "integrity": "sha512-3sX/eOms8kd3q2KZ6DAhKPc0dgm525Gqq5NtWKZ7QYYZEv57OQ54KtblzJzH1lQF/eQxO8KjWGIK9IPUJNus5g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.6.4", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.11.1.tgz", + "integrity": "sha512-yGCqvBT4rwMczo28xkH/noxJ6MZ4nJfkVYdoDaC/utLtWrXxv27HVrzAeSbqR8SxDsp46n0YF47EbHoixy6rXQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.3", + "core-js-compat": "^3.40.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.4.tgz", + "integrity": "sha512-7gD3pRadPrbjhjLyxebmx/WrFYcuSjZ0XbdUujQMZ/fcE9oeewk2U/7PCvez84UeuK3oSjmPZ0Ch0dlupQvGzw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.4" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, "node_modules/babel-preset-current-node-syntax": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.1.0.tgz", @@ -3599,6 +5474,13 @@ "dev": true, "license": "MIT" }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true, + "license": "ISC" + }, "node_modules/brace-expansion": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", @@ -3795,20 +5677,22 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, "license": "MIT", "engines": { - "node": ">=6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/caniuse-lite": { @@ -3993,6 +5877,15 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", @@ -4011,25 +5904,11 @@ "dev": true, "license": "MIT" }, - "node_modules/color": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", - "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", - "license": "MIT", - "optional": true, - "dependencies": { - "color-convert": "^2.0.1", - "color-string": "^1.9.0" - }, - "engines": { - "node": ">=12.5.0" - } - }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "color-name": "~1.1.4" @@ -4042,20 +5921,9 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "devOptional": true, + "dev": true, "license": "MIT" }, - "node_modules/color-string": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", - "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", - "license": "MIT", - "optional": true, - "dependencies": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, "node_modules/colorette": { "version": "2.0.20", "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", @@ -4104,12 +5972,25 @@ "license": "MIT" }, "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true, + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", "license": "MIT" }, + "node_modules/core-js-compat": { + "version": "3.42.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.42.0.tgz", + "integrity": "sha512-bQasjMfyDGyaeWKBIu33lHh9qlSR0MFE/Nmc6nMjf/iU9b3rSMdAYz1Baxrv4lPdGUsTqZudHA4jIGSJy0SWZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.24.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, "node_modules/core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", @@ -4117,6 +5998,33 @@ "dev": true, "license": "MIT" }, + "node_modules/cosmiconfig": { + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, "node_modules/create-jest": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", @@ -4154,6 +6062,50 @@ "node": ">= 8" } }, + "node_modules/css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, "node_modules/css.escape": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", @@ -4161,6 +6113,42 @@ "dev": true, "license": "MIT" }, + "node_modules/csso": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", + "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "css-tree": "~2.2.0" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", + "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.28", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.28", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", + "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", + "dev": true, + "license": "CC0-1.0" + }, "node_modules/cssom": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", @@ -4192,7 +6180,6 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", - "dev": true, "license": "MIT" }, "node_modules/cypress": { @@ -4254,6 +6241,19 @@ "node": "^16.0.0 || ^18.0.0 || >=20.0.0" } }, + "node_modules/cypress/node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/cypress/node_modules/supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", @@ -4370,7 +6370,6 @@ "version": "4.4.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", - "dev": true, "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -4479,16 +6478,6 @@ "node": ">=6" } }, - "node_modules/detect-libc": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz", - "integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==", - "license": "Apache-2.0", - "optional": true, - "engines": { - "node": ">=8" - } - }, "node_modules/detect-newline": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", @@ -4529,18 +6518,56 @@ "dev": true, "license": "Apache-2.0", "dependencies": { - "esutils": "^2.0.2" + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom-accessibility-api": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", + "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==", + "dev": true, + "license": "MIT" + }, + "node_modules/dom-helpers": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", + "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" + } + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" }, - "engines": { - "node": ">=6.0.0" + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" } }, - "node_modules/dom-accessibility-api": { - "version": "0.5.16", - "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", - "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==", + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", "dev": true, - "license": "MIT" + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" }, "node_modules/domexception": { "version": "4.0.0", @@ -4556,6 +6583,48 @@ "node": ">=12" } }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, "node_modules/dunder-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", @@ -4606,9 +6675,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.152", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.152.tgz", - "integrity": "sha512-xBOfg/EBaIlVsHipHl2VdTPJRSvErNUaqW8ejTq5OlOlIYx1wOllCHsAvAIrr55jD1IYEfdR86miUEt8H5IeJg==", + "version": "1.5.155", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.155.tgz", + "integrity": "sha512-ps5KcGGmwL8VaeJlvlDlu4fORQpv3+GIcF5I3f9tUKUlJ/wsysh6HU8P5L1XWRYeXfA0oJd4PyM8ds8zTFf6Ng==", "dev": true, "license": "ISC" }, @@ -4657,9 +6726,9 @@ } }, "node_modules/entities": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.0.tgz", - "integrity": "sha512-aKstq2TDOndCn4diEyp9Uq/Flu2i1GlLkc6XIDQSDMuaFE3OPW5OphLCyQ5SpSJZTb4reN+kTcYru5yIfXoRPw==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", "dev": true, "license": "BSD-2-Clause", "engines": { @@ -4673,7 +6742,6 @@ "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, "license": "MIT", "dependencies": { "is-arrayish": "^0.2.1" @@ -4867,7 +6935,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, "license": "MIT", "engines": { "node": ">=10" @@ -4898,6 +6965,17 @@ "source-map": "~0.6.1" } }, + "node_modules/escodegen/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/eslint": { "version": "8.57.1", "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", @@ -5119,6 +7197,19 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/eslint-config-next/node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/eslint-config-next/node_modules/ts-api-utils": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.3.tgz", @@ -5311,16 +7402,6 @@ "node": "*" } }, - "node_modules/eslint-plugin-import/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/eslint-plugin-jest": { "version": "28.11.0", "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-28.11.0.tgz", @@ -5557,16 +7638,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/eslint-plugin-react/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/eslint-scope": { "version": "7.2.2", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", @@ -5608,6 +7679,22 @@ "concat-map": "0.0.1" } }, + "node_modules/eslint/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/eslint/node_modules/ignore": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", @@ -5631,6 +7718,19 @@ "node": "*" } }, + "node_modules/eslint/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/espree": { "version": "9.6.1", "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", @@ -6057,6 +8157,12 @@ "node": ">=8" } }, + "node_modules/find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", + "license": "MIT" + }, "node_modules/find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -6210,7 +8316,6 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true, "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" @@ -6436,19 +8541,12 @@ } }, "node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "dev": true, + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "license": "MIT", - "dependencies": { - "type-fest": "^0.20.2" - }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, "node_modules/globalthis": { @@ -6516,7 +8614,6 @@ "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true, "license": "ISC" }, "node_modules/graphemer": { @@ -6611,7 +8708,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "dev": true, "license": "MIT", "dependencies": { "function-bind": "^1.1.2" @@ -6620,6 +8716,21 @@ "node": ">= 0.4" } }, + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "license": "BSD-3-Clause", + "dependencies": { + "react-is": "^16.7.0" + } + }, + "node_modules/hoist-non-react-statics/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" + }, "node_modules/html-encoding-sniffer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", @@ -6754,11 +8865,20 @@ "node": ">= 4" } }, + "node_modules/immer": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/immer/-/immer-10.1.1.tgz", + "integrity": "sha512-s2MPrmjovJcoMaHtx6K11Ra7oD05NT97w1IC5zpMkT6Atjr7H8LjaDd81iIxUYpMKSRRNMJE703M1Fhr/TctHw==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, "node_modules/import-fresh": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", - "dev": true, "license": "MIT", "dependencies": { "parent-module": "^1.0.0", @@ -6877,7 +8997,6 @@ "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true, "license": "MIT" }, "node_modules/is-async-function": { @@ -6943,6 +9062,19 @@ "semver": "^7.7.1" } }, + "node_modules/is-bun-module/node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/is-callable": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", @@ -6960,7 +9092,6 @@ "version": "2.16.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", - "dev": true, "license": "MIT", "dependencies": { "hasown": "^2.0.2" @@ -7385,6 +9516,19 @@ "node": ">=10" } }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/istanbul-lib-report": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", @@ -7415,6 +9559,16 @@ "node": ">=10" } }, + "node_modules/istanbul-lib-source-maps/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/istanbul-reports": { "version": "3.1.7", "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", @@ -8519,6 +10673,19 @@ "dev": true, "license": "MIT" }, + "node_modules/jest-snapshot/node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/jest-transform-stub": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/jest-transform-stub/-/jest-transform-stub-2.0.0.tgz", @@ -8591,19 +10758,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-validate/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/jest-validate/node_modules/pretty-format": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", @@ -8682,7 +10836,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true, "license": "MIT" }, "node_modules/js-yaml": { @@ -8781,7 +10934,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", - "dev": true, "license": "MIT", "bin": { "jsesc": "bin/jsesc" @@ -8801,7 +10953,6 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true, "license": "MIT" }, "node_modules/json-schema": { @@ -8968,7 +11119,6 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true, "license": "MIT" }, "node_modules/listr2": { @@ -9040,6 +11190,13 @@ "dev": true, "license": "MIT" }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true, + "license": "MIT" + }, "node_modules/lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", @@ -9134,7 +11291,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, "license": "MIT", "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" @@ -9143,6 +11299,16 @@ "loose-envify": "cli.js" } }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" + } + }, "node_modules/lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", @@ -9180,6 +11346,19 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/make-dir/node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/make-error": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", @@ -9207,6 +11386,13 @@ "node": ">= 0.4" } }, + "node_modules/mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "dev": true, + "license": "CC0-1.0" + }, "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", @@ -9342,7 +11528,6 @@ "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, "license": "MIT" }, "node_modules/nanoid": { @@ -9387,42 +11572,41 @@ "license": "MIT" }, "node_modules/next": { - "version": "15.3.2", - "resolved": "https://registry.npmjs.org/next/-/next-15.3.2.tgz", - "integrity": "sha512-CA3BatMyHkxZ48sgOCLdVHjFU36N7TF1HhqAHLFOkV6buwZnvMI84Cug8xD56B9mCuKrqXnLn94417GrZ/jjCQ==", + "version": "14.2.5", + "resolved": "https://registry.npmjs.org/next/-/next-14.2.5.tgz", + "integrity": "sha512-0f8aRfBVL+mpzfBjYfQuLWh2WyAwtJXCRfkPF4UJ5qd2YwrHczsrSzXU4tRMV0OAxR8ZJZWPFn6uhSC56UTsLA==", "license": "MIT", "dependencies": { - "@next/env": "15.3.2", - "@swc/counter": "0.1.3", - "@swc/helpers": "0.5.15", + "@next/env": "14.2.5", + "@swc/helpers": "0.5.5", "busboy": "1.6.0", "caniuse-lite": "^1.0.30001579", + "graceful-fs": "^4.2.11", "postcss": "8.4.31", - "styled-jsx": "5.1.6" + "styled-jsx": "5.1.1" }, "bin": { "next": "dist/bin/next" }, "engines": { - "node": "^18.18.0 || ^19.8.0 || >= 20.0.0" + "node": ">=18.17.0" }, "optionalDependencies": { - "@next/swc-darwin-arm64": "15.3.2", - "@next/swc-darwin-x64": "15.3.2", - "@next/swc-linux-arm64-gnu": "15.3.2", - "@next/swc-linux-arm64-musl": "15.3.2", - "@next/swc-linux-x64-gnu": "15.3.2", - "@next/swc-linux-x64-musl": "15.3.2", - "@next/swc-win32-arm64-msvc": "15.3.2", - "@next/swc-win32-x64-msvc": "15.3.2", - "sharp": "^0.34.1" + "@next/swc-darwin-arm64": "14.2.5", + "@next/swc-darwin-x64": "14.2.5", + "@next/swc-linux-arm64-gnu": "14.2.5", + "@next/swc-linux-arm64-musl": "14.2.5", + "@next/swc-linux-x64-gnu": "14.2.5", + "@next/swc-linux-x64-musl": "14.2.5", + "@next/swc-win32-arm64-msvc": "14.2.5", + "@next/swc-win32-ia32-msvc": "14.2.5", + "@next/swc-win32-x64-msvc": "14.2.5" }, "peerDependencies": { "@opentelemetry/api": "^1.1.0", "@playwright/test": "^1.41.2", - "babel-plugin-react-compiler": "*", - "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", - "react-dom": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", + "react": "^18.2.0", + "react-dom": "^18.2.0", "sass": "^1.3.0" }, "peerDependenciesMeta": { @@ -9432,14 +11616,22 @@ "@playwright/test": { "optional": true }, - "babel-plugin-react-compiler": { - "optional": true - }, "sass": { "optional": true } } }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dev": true, + "license": "MIT", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, "node_modules/node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", @@ -9477,6 +11669,19 @@ "node": ">=8" } }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, "node_modules/nwsapi": { "version": "2.2.20", "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.20.tgz", @@ -9488,7 +11693,6 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -9738,7 +11942,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, "license": "MIT", "dependencies": { "callsites": "^3.0.0" @@ -9751,7 +11954,6 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, "license": "MIT", "dependencies": { "@babel/code-frame": "^7.0.0", @@ -9779,6 +11981,19 @@ "url": "https://github.com/inikulin/parse5?sponsor=1" } }, + "node_modules/parse5/node_modules/entities": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.0.tgz", + "integrity": "sha512-aKstq2TDOndCn4diEyp9Uq/Flu2i1GlLkc6XIDQSDMuaFE3OPW5OphLCyQ5SpSJZTb4reN+kTcYru5yIfXoRPw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -9813,7 +12028,6 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true, "license": "MIT" }, "node_modules/path-scurry": { @@ -9844,7 +12058,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -10090,6 +12303,13 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/pretty-format/node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true, + "license": "MIT" + }, "node_modules/process": { "version": "0.11.10", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", @@ -10118,7 +12338,6 @@ "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "dev": true, "license": "MIT", "dependencies": { "loose-envify": "^1.4.0", @@ -10130,7 +12349,6 @@ "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "dev": true, "license": "MIT" }, "node_modules/proxy-from-env": { @@ -10236,33 +12454,75 @@ "license": "MIT" }, "node_modules/react": { - "version": "19.1.0", - "resolved": "https://registry.npmjs.org/react/-/react-19.1.0.tgz", - "integrity": "sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + }, "engines": { "node": ">=0.10.0" } }, "node_modules/react-dom": { - "version": "19.1.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.0.tgz", - "integrity": "sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", "license": "MIT", "dependencies": { - "scheduler": "^0.26.0" + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" }, "peerDependencies": { - "react": "^19.1.0" + "react": "^18.3.1" } }, "node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true, + "version": "19.1.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.1.0.tgz", + "integrity": "sha512-Oe56aUPnkHyyDxxkvqtd7KkdQP5uIUfHxd5XTb3wE9d/kRnZLmKbDB0GWk919tdQ+mxxPtG6EAs6RMT6i1qtHg==", "license": "MIT" }, + "node_modules/react-redux": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-9.2.0.tgz", + "integrity": "sha512-ROY9fvHhwOD9ySfrF0wmvu//bKCQ6AeZZq1nJNtbDC+kk5DuSuNX/n6YWYF/SYy7bSba4D4FSz8DJeKY/S/r+g==", + "license": "MIT", + "dependencies": { + "@types/use-sync-external-store": "^0.0.6", + "use-sync-external-store": "^1.4.0" + }, + "peerDependencies": { + "@types/react": "^18.2.25 || ^19", + "react": "^18.0 || ^19", + "redux": "^5.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "redux": { + "optional": true + } + } + }, + "node_modules/react-transition-group": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", + "license": "BSD-3-Clause", + "dependencies": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + }, + "peerDependencies": { + "react": ">=16.6.0", + "react-dom": ">=16.6.0" + } + }, "node_modules/redent": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", @@ -10277,6 +12537,21 @@ "node": ">=8" } }, + "node_modules/redux": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz", + "integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==", + "license": "MIT" + }, + "node_modules/redux-thunk": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-3.1.0.tgz", + "integrity": "sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==", + "license": "MIT", + "peerDependencies": { + "redux": "^5.0.0" + } + }, "node_modules/reflect.getprototypeof": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", @@ -10300,6 +12575,26 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true, + "license": "MIT" + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz", + "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==", + "dev": true, + "license": "MIT", + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/regexp.prototype.flags": { "version": "1.5.4", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", @@ -10321,6 +12616,57 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/regexpu-core": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.2.0.tgz", + "integrity": "sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==", + "dev": true, + "license": "MIT", + "dependencies": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.2.0", + "regjsgen": "^0.8.0", + "regjsparser": "^0.12.0", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/regjsparser": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.12.0.tgz", + "integrity": "sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "jsesc": "~3.0.2" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/request-progress": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-3.0.0.tgz", @@ -10348,11 +12694,16 @@ "dev": true, "license": "MIT" }, + "node_modules/reselect": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-5.1.1.tgz", + "integrity": "sha512-K/BG6eIky/SBpzfHZv/dd+9JBFiS4SWV7FIujVyJRux6e45+73RaUHXLmIR1f7WOMaQ0U1km6qwklRQxpJJY0w==", + "license": "MIT" + }, "node_modules/resolve": { "version": "1.22.10", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", - "dev": true, "license": "MIT", "dependencies": { "is-core-module": "^2.16.0", @@ -10396,7 +12747,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, "license": "MIT", "engines": { "node": ">=4" @@ -10648,22 +12998,22 @@ } }, "node_modules/scheduler": { - "version": "0.26.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz", - "integrity": "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==", - "license": "MIT" + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + } }, "node_modules/semver": { - "version": "7.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", - "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", - "devOptional": true, + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, "license": "ISC", "bin": { "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" } }, "node_modules/set-function-length": { @@ -10715,47 +13065,6 @@ "node": ">= 0.4" } }, - "node_modules/sharp": { - "version": "0.34.1", - "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.1.tgz", - "integrity": "sha512-1j0w61+eVxu7DawFJtnfYcvSv6qPFvfTaqzTQ2BLknVhHTwGS8sc63ZBF4rzkWMBVKybo4S5OBtDdZahh2A1xg==", - "hasInstallScript": true, - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "color": "^4.2.3", - "detect-libc": "^2.0.3", - "semver": "^7.7.1" - }, - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-darwin-arm64": "0.34.1", - "@img/sharp-darwin-x64": "0.34.1", - "@img/sharp-libvips-darwin-arm64": "1.1.0", - "@img/sharp-libvips-darwin-x64": "1.1.0", - "@img/sharp-libvips-linux-arm": "1.1.0", - "@img/sharp-libvips-linux-arm64": "1.1.0", - "@img/sharp-libvips-linux-ppc64": "1.1.0", - "@img/sharp-libvips-linux-s390x": "1.1.0", - "@img/sharp-libvips-linux-x64": "1.1.0", - "@img/sharp-libvips-linuxmusl-arm64": "1.1.0", - "@img/sharp-libvips-linuxmusl-x64": "1.1.0", - "@img/sharp-linux-arm": "0.34.1", - "@img/sharp-linux-arm64": "0.34.1", - "@img/sharp-linux-s390x": "0.34.1", - "@img/sharp-linux-x64": "0.34.1", - "@img/sharp-linuxmusl-arm64": "0.34.1", - "@img/sharp-linuxmusl-x64": "0.34.1", - "@img/sharp-wasm32": "0.34.1", - "@img/sharp-win32-ia32": "0.34.1", - "@img/sharp-win32-x64": "0.34.1" - } - }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -10862,23 +13171,6 @@ "dev": true, "license": "ISC" }, - "node_modules/simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", - "license": "MIT", - "optional": true, - "dependencies": { - "is-arrayish": "^0.3.1" - } - }, - "node_modules/simple-swizzle/node_modules/is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", - "license": "MIT", - "optional": true - }, "node_modules/sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", @@ -10911,11 +13203,21 @@ "node": ">=8" } }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "node_modules/snake-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", + "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", "dev": true, + "license": "MIT", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" @@ -10941,6 +13243,16 @@ "source-map": "^0.6.0" } }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -11258,9 +13570,9 @@ } }, "node_modules/styled-jsx": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.6.tgz", - "integrity": "sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.1.tgz", + "integrity": "sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==", "license": "MIT", "dependencies": { "client-only": "0.0.1" @@ -11269,7 +13581,7 @@ "node": ">= 12.0.0" }, "peerDependencies": { - "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0" + "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0" }, "peerDependenciesMeta": { "@babel/core": { @@ -11280,6 +13592,12 @@ } } }, + "node_modules/stylis": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", + "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==", + "license": "MIT" + }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -11297,7 +13615,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -11306,6 +13623,49 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/svg-parser": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", + "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/svgo": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz", + "integrity": "sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==", + "dev": true, + "license": "MIT", + "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.0.0" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/svgo" + } + }, + "node_modules/svgo/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, "node_modules/symbol-tree": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", @@ -11609,6 +13969,19 @@ } } }, + "node_modules/ts-jest/node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/ts-jest/node_modules/type-fest": { "version": "4.41.0", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz", @@ -11708,9 +14081,9 @@ } }, "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true, "license": "(MIT OR CC0-1.0)", "engines": { @@ -11838,6 +14211,50 @@ "dev": true, "license": "MIT" }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", + "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz", + "integrity": "sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/universalify": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", @@ -11943,6 +14360,15 @@ "requires-port": "^1.0.0" } }, + "node_modules/use-sync-external-store": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.5.0.tgz", + "integrity": "sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, "node_modules/uuid": { "version": "8.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", @@ -11968,6 +14394,13 @@ "node": ">=10.12.0" } }, + "node_modules/v8-to-istanbul/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, "node_modules/verror": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", @@ -12342,6 +14775,15 @@ "dev": true, "license": "ISC" }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "license": "ISC", + "engines": { + "node": ">= 6" + } + }, "node_modules/yargs": { "version": "17.7.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", diff --git a/ui/package.json b/ui/package.json index 7c9dbf5c..ddc93d1a 100644 --- a/ui/package.json +++ b/ui/package.json @@ -1,7 +1,6 @@ { "name": "guidellm", "version": "0.1.0", - "private": true, "scripts": { "dev": "next dev", "build": "next build", @@ -14,11 +13,20 @@ "test:integration": "jest --passWithNoTests tests/integration" }, "dependencies": { - "next": "15.3.2", - "react": "^19.0.0", - "react-dom": "^19.0.0" + "@emotion/cache": "^11.13.1", + "@emotion/react": "^11.14.0", + "@emotion/styled": "^11.14.0", + "@mui/material": "^5.11.7", + "@mui/material-nextjs": "^5.16.6", + "@reduxjs/toolkit": "^2.2.7", + "next": "14.2.5", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-redux": "^9.1.2" }, "devDependencies": { + "@mui/types": "^7.2.14", + "@svgr/webpack": "^8.1.0", "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^16.0.0", "@testing-library/user-event": "^13.5.0", diff --git a/ui/public/android-chrome-192x192.png b/ui/public/android-chrome-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..6694fc06c836542133ef967482ece157c18b2137 GIT binary patch literal 8898 zcmY*f1yI~j*UjSY1-8%v#amp9(*iB-R@~jCI4tf(i@Q4%C|)lq{HVNag9-qkAWJbZMJX{c zN(U! z5s~>&Er&DX9|zElit@m6N;F?cQ_FkC7Rm5u84PA4!S^TqtzI#$ZV*LQ&QXkL#5B9~ zQgNLT6OG?v8bNGP!o5K1m%a=d+I4~U6MX2QZj||b_Fw0#623?fD9$|zTqM`_LGYI) zS;lQRbp=Ct?{2R#oo?)1++jq&eFi2ArXZ(Lk;-K+zR{0~K54SLyi$Ax{LgA~#okn# zKZZOa>(r}icZBXSd-!}zQxCa9V>{m@QGN&tcq`4&Q`9a!A@w6R57rdpH*qbqr97a9 zK;4h;ZrhkP`o(>b`ia>*cLFoB8~7vMeBlmiOWX zE#Zth5e?xMOmzd3<3l1%(5$*mtC~fnt*sP7`QL?aOLoDj(0rR#n$}2q5?(i()@}dAv#U{c@bT`%s`PCC?JKIx!HjZ)oYt9B#EGm z2(#*T+)i@fEou2x+SD#kvuqZwUf7=RAc$WL7>5mhCN)U*(^>lrb$Qv%2I2AE(Ig$3 z2KxMr+tXceU;wwZ@b@L=N#xQsVnMb5=SQ+EL1Jwb(m1!$qR=!dd5$Kw8G{BSVI!@aRdDPH_E z{s9pA+&NLw2D$gp!Asj^^{r+1#A2gj9rWa=hk!9bG#UM@$F-VK8AU7QxYARx4ZcXx z@n2)4$0I>AhJ3sU-Oq>HQ!FKB3VaVOE=%gIvDlbS zokj_q{MqR-60q6tCUdGskUdo27WyJ#=gobS78nK!3eCqs(+L2}x2m1)Vg7i(fP-BH z>5Kh!Wk0QTO?7uuUKv;e+AyYA$L*C;sU=EH(RLB%IfwV5tVr1(g%Ljgv|69|D9_hb zj*oA0!wE7Cwl)t*UxVBMRA8H>!~BQBzQb7w*r#HjPo8dda(>^=AXz#k(3>t2yT{7^*+t-rdYU~l?AU`re>-GV}PbaKn?I6<5eX~LXyD1=PTifWJFX}H-7 zg&F�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�SSbUI^-)!O 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 literal 0 HcmV?d00001 diff --git a/ui/public/android-chrome-512x512.png b/ui/public/android-chrome-512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..70918355ac33d8b7526ac9a42b0c2e74759fdf34 GIT binary patch literal 25846 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 A?EnA( literal 0 HcmV?d00001 diff --git a/ui/public/apple-touch-icon.png b/ui/public/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..06b386349eb72388afbfeca121e46aab4e4ade8f GIT binary patch literal 8007 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 BSX2N2 literal 0 HcmV?d00001 diff --git a/ui/public/favicon-16x16.png b/ui/public/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..0573eede4c93b2f3144dbb884cea39dfba0ad1e5 GIT binary patch literal 1057 zcmV++1m63JP)EX>4Tx04R}tkv&MmKpe$i(~2S$K|6?uWT;LSL`5963Pq?8YK2xEOfLO`CJjl7 zi=*ILaPVWX>fqw6tAnc`2!4RLx;QDiNQwVT3N2zhIPS;0dyl(!fKV?p%?gbJnr@q^ zL|n{dSH;d(gfNUg!~mID#+)Q2;XA(W5#Z}xjA!|u`*ZZDIg0@Sk$9FFrcJy-JiTcf zocD<%tSGC*=fqx##3oC_`sJTqdZQ}e_TVzJQ1N*lAHsS!^RM^#Oyd?Dkp z%6W^kR<5$okXuz#^6)L4<-TN+`pozDm$Zv5=zuxQ~C(^-JVZ$W;O( z#{w$QAiI9>Klt6Pm7kpOlEQJI(i|qi@Or{kK5(n%7%%AEysMnz~Bf00)P_ zXo0fVecs*G-rK)tn*IF%WQTI0wpf;L00075Nkl#cg1J;zXBEdvk0`nmi~W+l zde@40GWiO~M(FTbQ}y3E??-0y2DUUWGq~3fsRTyclpZp+zvQydw_rE$5oJSi%G2ek z*s=LHuN2ibA26b?5vfGv!Dw`_DH{2B)XFKZ3}$3z?U^?}^H@CgH49;-2z!lxdBPoj z*HO5&X{o)W>KRG@5xAOuePmS@k zBHBJ09k?5xoVXy<{U|u*$B1Kq1JaToC|he;rV;oGG(;nx4#lEFRYQHf1BuCrn*ugy z)6d<^G>Fern%oHT9N4}vPAeuD0-811;Wm#7<3G<%3RmPtrA~ b`CokpT&3Z*ay)g000000NkvXXu0mjf%n|Yn literal 0 HcmV?d00001 diff --git a/ui/public/favicon-192x192.png b/ui/public/favicon-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..6694fc06c836542133ef967482ece157c18b2137 GIT binary patch literal 8898 zcmY*f1yI~j*UjSY1-8%v#amp9(*iB-R@~jCI4tf(i@Q4%C|)lq{HVNag9-qkAWJbZMJX{c zN(U! z5s~>&Er&DX9|zElit@m6N;F?cQ_FkC7Rm5u84PA4!S^TqtzI#$ZV*LQ&QXkL#5B9~ zQgNLT6OG?v8bNGP!o5K1m%a=d+I4~U6MX2QZj||b_Fw0#623?fD9$|zTqM`_LGYI) zS;lQRbp=Ct?{2R#oo?)1++jq&eFi2ArXZ(Lk;-K+zR{0~K54SLyi$Ax{LgA~#okn# zKZZOa>(r}icZBXSd-!}zQxCa9V>{m@QGN&tcq`4&Q`9a!A@w6R57rdpH*qbqr97a9 zK;4h;ZrhkP`o(>b`ia>*cLFoB8~7vMeBlmiOWX zE#Zth5e?xMOmzd3<3l1%(5$*mtC~fnt*sP7`QL?aOLoDj(0rR#n$}2q5?(i()@}dAv#U{c@bT`%s`PCC?JKIx!HjZ)oYt9B#EGm z2(#*T+)i@fEou2x+SD#kvuqZwUf7=RAc$WL7>5mhCN)U*(^>lrb$Qv%2I2AE(Ig$3 z2KxMr+tXceU;wwZ@b@L=N#xQsVnMb5=SQ+EL1Jwb(m1!$qR=!dd5$Kw8G{BSVI!@aRdDPH_E z{s9pA+&NLw2D$gp!Asj^^{r+1#A2gj9rWa=hk!9bG#UM@$F-VK8AU7QxYARx4ZcXx z@n2)4$0I>AhJ3sU-Oq>HQ!FKB3VaVOE=%gIvDlbS zokj_q{MqR-60q6tCUdGskUdo27WyJ#=gobS78nK!3eCqs(+L2}x2m1)Vg7i(fP-BH z>5Kh!Wk0QTO?7uuUKv;e+AyYA$L*C;sU=EH(RLB%IfwV5tVr1(g%Ljgv|69|D9_hb zj*oA0!wE7Cwl)t*UxVBMRA8H>!~BQBzQb7w*r#HjPo8dda(>^=AXz#k(3>t2yT{7^*+t-rdYU~l?AU`re>-GV}PbaKn?I6<5eX~LXyD1=PTifWJFX}H-7 zg&F�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�SSbUI^-)!O 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 literal 0 HcmV?d00001 diff --git a/ui/public/favicon-32x32.png b/ui/public/favicon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..155c09304061fa8b9c9f222a98991707ebca4f87 GIT binary patch literal 1802 zcmV+l2le=gP)EX>4Tx04R}tkv&MmKpe$i(~2S$K|6?uWT;LSL`5963Pq?8YK2xEOfLO`CJjl7 zi=*ILaPVWX>fqw6tAnc`2!4RLx;QDiNQwVT3N2zhIPS;0dyl(!fKV?p%?gbJnr@q^ zL|n{dSH;d(gfNUg!~mID#+)Q2;XA(W5#Z}xjA!|u`*ZZDIg0@Sk$9FFrcJy-JiTcf zocD<%tSGC*=fqx##3oC_`sJTqdZQ}e_TVzJQ1N*lAHsS!^RM^#Oyd?Dkp z%6W^kR<5$okXuz#^6)L4<-TN+`pozDm$Zv5=zuxQ~C(^-JVZ$W;O( z#{w$QAiI9>Klt6Pm7kpOlEQJI(i|qi@Or{kK5(n%7%%AEysMnz~Bf00)P_ zXo0fVecs*G-rK)tn*IF%WQTI0wpf;L000F+Nklz1 zh+G6|bx~8X#iF&+M3BaUuxhAQpRh@ztx?3*M6v0E0@~Q7FSOA%eQ4r^2UM2U2Cb>4 z6cQ7~O9T~V*9E!M!s-gMGp7%LogJ`?ifK2#Zf|W8g3SISlcprj zQu_UA%s6JaXd=)avpx3*q&dPy>wIc<@d9{F7XT{Og&Y9x1GK^AX?m~y_U)a_(zgPH z2oN8Y*#H(VxFTmn!C z9XbN2SPn})6*(p05EH)xpxaK)_1i8k0S@c&LM9$L6q@Wkvgm=r<#42C5`YdBxM(>^7;Qafr2E z#7Kq9B+go=#bqeHmW2SmGrk=J+G9>x@gq{!hI5a!gc*efTisw@>-IFQyL1CC1zDX6A zM`9f;0(vQIi?Y<(V&bcqLWi)!kJ= z*k?#72~a=;YC-g+;ZC}rQ6DYG_Dh6RF#a%fh=sw&x;(eGxSi#v&5F7kj8z7pS3yWu zW=O?BBEX8Py7VI^dLMvK-(g_-HPRNJr9AR20#ISJL*U&Z_7%q!>f15c%G%&pp@b;& zCPv3!8Wvv$3-CYlU_eSlr@N_+HIWA3rcN;qpbB~V%x@+qPx~0e>kJ^lK(?93)d|8$ zV&sEpfpV$x16x#bzDYvOFaRT@09brRXd3D}+}9Jh-!z|rQ-MFxT6j&Tqil(_AS_|P zZ7`b1Oy@y#)hfrf$yr6G3HTnM$R|Z05I}Dd0c2sKqxU+l?{xb*mIJ)k&@Hb4+z>6t zh4@31IRI)6rXy4!UO*}U@a7XsoIu07AmTbdRx@u3>FPP=a+Ysr&`N;4x?we$S^OeT zno*!cb}uE+-r)?Hg3XQL0D6Ydu-s7>d4E8K^Ska*a^E=c8j1>!9%h05?a&el!o!Fllyv)#G-S+Up)1W+43OYv9qJ^fVw`HRTtf`BMS>Y*6J9_|q4afIebMc5 zmSqmsh4yc2{|f=2uL~x;JFo?fPR0@d0Ki>cb^;RS>-K}7Mc5SNPXAM<V4FHJQ{QoZ230<;_?XPCtC=X@b*H7k zEL1On_V@c9?n1M(?|IW=%ii`DX((|`xV6N5P4xq~01X?I%a!#37p=>;MZn>ZLhO0T sV_h55vo>0Q5@DW|y9o}5g#U~D4U&funj}-FRR91007*qoM6N<$f-#y@8~^|S literal 0 HcmV?d00001 diff --git a/ui/public/favicon-512x512.png b/ui/public/favicon-512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..70918355ac33d8b7526ac9a42b0c2e74759fdf34 GIT binary patch literal 25846 zcmb@uWmuG5_da~h&|T7<3JB7mw9<$uAuV0fB@H8jQqm|Q5=zH_ba!{j2na)mq;w6u z*LdI0^Zfqb-{bH&@B?$r-fORYuJb(Cx`=rCM41Sm4j%vjB2^UyEdYRm|Ahj$*x-*N zpUDdVfP~sVdh}HF(IXaDcNZIbM{5AM6CW5atioGt!FbS0uWMK@R3KWW6ZmA%oyNhrDA~MAwy2Z{Q zKMDeg_xV7ZtI;Sg)nrefb{fH6e5a^$z0;D*B>PD;`?Z~ z8hypr0y0f9WnGQD0M_O2{k~BZ&*9~3(&q#n_XDjzZHc^#Yi0YuA|D#Uqjskww^?me z^?Te`RBdeV=&|~WRx!mO@qXZi^$$aLKwrAO6 zp9ZwqE~vSj^Lm-BB_0{7M=?Q~W?Q?w)U{7w1B_-1eQ_Go$srrj1*8kuF04#v2g1nB;%=Q<5 zGo2q*H!WL(_Y*@Ep2|NJf>i!o(%^zYGV&*RtU{!0+Rv26rhNPZCqGElR@c0*K~?!? zRaHO#3Vmr*#7eswkH_Ow`IU{tnyWy!fQ>evWRxwI!^39y0wup)B_p3up((U=m={|t z?6Bi;a@sH~<9+it8TmK;_V%#Re<`#dEw^cf??7klN-2*&Vipw=u3e zO`pQ~l@R3jv6m7T{OYk!>Q& zg~4{E{7qE9nmQ&7y=ub8h#TMHaS?>>te##V%fE}w-MV4$;ic*N{-HknpD&=Ph2K=T zZs&!t0Wzx20t2Ju^3Wmc?miX{TDytxYnoUQF^HLJ0{F<<>yA#h4E#vo41xRU{@}(` zFy>bmjNXehPbZ77kqTDlhN>y(ExDo;DPLGP&|>60Fzff4L_ZndhIm}#^faQx9fr+Z zm>@j2cKY3Z6;js(29Tk5Qf)5L&Fr-W;>KW`Z6Oj29t9h4E8zokiZ!GKYI&r0hP=Uk z&o5ph(#+wV`p-&Q$ujVBvw_}T5}(K2jF^Mc?Xo|JMu%)FzrS$44+hQ+^)6yu6H8ki zxRpfX7jO!N-jKlLn@+rGPd{B^BSW1A>Q{(wVah*UzG!Q_wGeXcwfb9z@-ZzWGxk)I zH7baJr8M@T<0PM+o2`Gxt2#<7dD6~fW^6SXN`^D2S$o8lEEVlR3DBWm#VI`MvWW?^H&G)NMvHcX17R$HW0wuSsJmv1!k_VS#-VW5cDr^ zUbtYyiIoMV1!mwAt3cvD&@&7eE{PMS=KiLm(T{g+fVbzqm3FVe4`DgV-O9@WxQG@q z><98fF#g%tRTDF5KDk`|1;LVD#A0ks*o*kt=V00x-9I6 z`$xEWHI{I5c$cx@wl505^izcA7z|+7Zr!9Aq&|1Z9@>i1#JX$&dWo1E?D|ZB+TpgA zcX&D!v3@RCX@N48=+FoC{GlQn+OdOA-+^YX&%6(~k z2|`!`3bst~&C0DXfKjY9dP_d9)4WPRg?{g*-fRE!_2K2>stYFv#-EMlXS5?=D3&fr z2-e=Y>Kt6?cQAe_-~@&VZE8<%^QL?+%OHtxWDP4hg%WR9Aev% zWeD;iIPF|~jJhjWaJknn0tv1=*qpd&@>Io$>9K3MUinRxn67He;}F2qhI*0ioGH72 z>o!ojK+HBM%C2#**M|y|l@k}+Bt7ukeFM55>b7T90N{)Lh*Vyc#a5{Fw4IxGQJ< z&E26nW@+rx8wB=W!W}}@3?8|tlC(t#uA2KiGwkP%A7i#ufXU->hgUIZf8}=>RI72n0O;%0e(T@atdD4rVEgU|`nQ`A+@>diN zdY+X!rEbxHzyU^Hh#QGj#k)sNI8u&UQ(oaxm8R~jAPBglYA||}Li4}K$?R#%`(w$; zyM~(^-Vm(O1GU-w@4Bd{?~GD91w7LFcPVGlnpmO@7I~}GBa_R0Vgks!i8p!{0pwHa z&ZWWC*$+uEd&mgu-2+w$Xu|tf_T=uqa{JX^R)rC_%O}$Z4H`1b(8<(``xb^J?|SQ- z&0VR!@&t7t?e?@Q1CCs+=#=p#FW?vp+_@u2=y4kS`rH;M&&F;dAS;P<==1eC{~oL+ z24cbSorAOf(nN0*F&}YR3?Jg^XKGr!lKE>EEB7WTW)_Lb4GPFr6Jt=OmP`I# zEWSnT#Ux?z7bG0)`x+p|ch2?T7={|{oZ+GK$;M!@xr8GPG2@Ci-I>U$D~nzg7tFis zE28=r@zn^Wujff{Ih5}|h$7a%BR2b4OoaziUP4PrlUG`>U<}0)pk2NwK@QxbOGrLm zK6%@JW?ocZO7~-jkEv%N8R%9cVo<(KgZS*EL81zNkQ5=yVqbCBxXD9fXRXwDfgN9V zN?d=W*9Qi>uSKA&paE8^BMEq2?s z)+c3Dk1P3tpOmxWw%fAqU3}TOfV@bG+0AeyLjIWZzb>Oz{rohbJb8r+@YTAvPQ-HG zP#;|o3U)3oAA{V|{f)s}8$O7{9WM_n*#+-hNjGV+5-FBC($Gnp$BXTPcxv+`3juvf zFKe%xDZ!N@dha#U4tfEe1>cr^`V`?yaFveF=u3gPx2eL2aCrwlbK}L0FQ(tEa>-1J z>7l`ooHGwK)p#&jSB-B1fo9HW6={UaX8?djH%{Nja~FlC+^zCrP{qCxAS3#*K+&Us zA0qJ7L>2*&P#cd=g(IIsT%WoRYl_Fr9MZ$!$#jw=*v~nB!HdcY%ww${frW?w193ci z5AYLc?BWEFSgm}b-f4tB$u!qKMjMoUVPFiYv2(ZdxBx(Igea}V-p*_Rv!H4Dr~2UG zvQrk9Y8cCr%ac2X0*3EiF$?p@Ifid}hl0zKr?7o5LUG{^*!D}fzTkz)iT=qyeV#d< z;EBeItdAzLV^=Y2sqYK<(T~-j(`2#cPI;i~y~lJRjIGz}I^IN$~uyig54_Unq^pUSRkJtV*^uDtgrMBb)2hB4&lVsWn5pG=T122{#54mJ3bc z@iQ2R5@|gfn>A^1lhJ+vwW?U>aq#P{dmTN*+m@rtI9R|LCNL{HgzsqDWS5u_bvNby zU^qPq#(2H^o#R~ppYMO_xPV{ZMr%d=0V|@6rd2S3sAo(`0g)e!h~)&DuW4^C3Sya& zlKthCwiN^erO(}SK0n_T>Z!xW(;=Ep>W)aF`D3EVD(=$=u4J;|n!$7$pG}Gja#Jy$%6U7R>>%RU2v zvNyOMLn;#l2}I~rlNdZ+zZ|)pdkLhSao%jMjZlDDN82%aFUX^71o?~&+Ss*B!vGa{ z(w(%tfqlj$OjoZ5BF;%&kh(CHumE_wRS=~oCc$lk^1HQ{JsBW%q{IR#J@!)F_qF@AoAE<$+ocnrM?^`;S~~ z0|+%CbXL>`(HnzlVXrXN1SkdS9=?)@%(5D3Mr|n#7t`b{^>EFCB!>S1k=*BK>38xp zN{&?-&Vg<;+F^0U5P6eh?E*u(B5^*34Q!8v4isg-37-6EOOF8a`pc zuHj^wQ$Q_olXo~$j|%*LfAx{O({<$sFmlnA;|%3YWeDL%!QZt{THj$BQ^vk!`Ut{2 zn$?)Pr4O7^lWPawtGm|3hm|t|N=$9czSGGotwx%YO$BWCX?-g^$X8xs3K(=39_qjt z`0nDGE?m&IgaxeKh2KP(1gkPDZcsu1ph5KOK(#nRs$lI&YKAjI)w(!f!n-`>OFC9q z`yuV!N9M~s5Ol6rFMW0fb5K-aGXr8(zy>#(q>*Af2HA?@-`fiHAx*dCg?rGN6 zo-kzeFs&z&&~s>(u6gSb<@tmMhOGk~9gT#1cg6BgL*-nc)z z5)aI>emc6$uoRGDr)_C=?qO@ofnR!~?PJSe$x@>Bdh15w-f{ii}DeLc?x}bn|?@iCt0R7LomsMh<@C40LeNFI~v08V3Ct0I-?_ z?BJf?4@8SvL4Xln>h1vefOo;Cw(j; z=ey(L`F6XIsQ;OZVch`3IuFNF(OZGJcLG>B-}0W{P9u*i6%P&CywI3%OzcB`hu=i& z*E(kv_91tUafouoa5S!QY^^UJ05=GHFudO}-cV&$Y4!2AdNKB<^H0NSvIlR zNl=(Qc&-|@;HmVOm(jU)!x`vGAaX-xtX_EKB1r`hug`rWq?*f#k9M3NW%NwgB-{&H zk9fdY)H*l6(3g4R|Ob1XeEBxp2x z5MHtr^Fi_D^VhM*L{q{-Of1vM0|i&}o}W2?Rvw^B1mfNi0U|@(ArwyQO;Isnio;C} z0HcbnM2w4ux<#$3|L_tZ^_T20eKx;4rMDv8e3A|>u^Xxd;+h8Lf3U14Dux1JekRMo zd&s3*IFwACl0_DTvtU;j%h2O&(|mV~%1=v+HQxhuMkMFKi9Rny=Y1a&^?41HLyfXB z9za_5q+)Qv$RX&Qg!0b>*R2dk&N@7~^k3RB?0@wktMxk#yrm0H`e6^$hp=-=#H91{ z-xu;Ix0;@hz016_#4J7X)K!U})_3g+{9nW;35OBa-N*Zu&*Z0zBNKKgd9|5u;!v~T%(TbtGTzkaIIABPhe+ z*Wk?p?3=NbjIDdHZgoSU<{2Lx8J_|m;p4}78RRryCf%5^ z4>rG}o&f>bgrY;MAeZ?~MA?R;ktRC+cw+#P#(i4IULZc#;oO<)r>*sOH^KUFq)`B4 zs}~SMH~NXoudc;8@Ux3S-$(aIwdCSXsr~WDFKeTxBRe3=b!FmIx@xKd<@>z?QkmTg z>E`mT>@l8CSB#q%MIhupc`kaMr?#~K-IpQL>U;C|6mZk^ON7~SDoU|CoWB&l_ zD0zK8G!tu?@kX7uQM|uuok{mb859^tLna|-Kff^h(9Q4GVD3xI(Z8M6q3x4xTMOkbW z697EPmKzxPss?m&4E}>)(GS+8GexSQb55}+6RoipiOrBmR=18qGW60bR0cjDibhpl zLeg%ps+gc@82kL3$1;~|uiLl{Z^^d`no-P? zS6eMsqd!1WO?JCmQ?g#DXw>l2(}U>>duB-F*eCm6$TFd7*mr%j^T3 z^CP){o>C^o9-bj3BH?iV!15*ulq=L15nCA#bj9bH{V-C3iOu4YmPaw=c$yQ3u_q?d zzn1UaiI|@+yGQ0!Poq!+sPx|P)Tf7?v$1D2Z495Pf9z&W^OWx*jV*N)q!|)AmyEf& zgqx17>@k_9Icz_8#h4Pzop@s|y&W#4Xzc=Xvxv;i3{rW%rcp>$u<>8q`!?pb&Awmt z$1Y!9D=Q|gJ#zCgNKD;1=wsMl8l;qNH(VEJdj*~f65x8$!$i1y%quv5fQ);_YV+35 zx^lmU$c_I)(Y_su2!-zo#m+SWB_-n}-=~jHi}zcI0aYaiMd*SekKS2B5A}L^m-=cQ zH#Ae+CswrHs^@pAEN_I2O;EktWI7V?EQwZCKB!a;5M;~p=A=YJe$*E89jIKhx@@nT z)gKBbQ{S+JjoA-gpT<#(hWd=*(Z1 zW%LH>s(xPq$Y;SDC9zygr2~qWpwW%3QlwNMadVf5@%~h$PVO{dgbpN5!j`7;sb=-t zz2DE5E)F9PKlyOOv~w8PfTWJrND=LZ-yrs#-XVjWzt(QEQ+T=a^QQ|_ihJdLmT+PI z)x)TB88=i6N1^?cX#YHTCe)AxvlkjKS8l)q)SLXpApDNjZP^^4R^evo+ta8q2+`mr zQQ?sp>iv}brn0k{8AAvAKBYFuyEUGmy+uQOv#&`VGLTI9XATX_2Sgvcwxq*yf;h*- zOMY3$cuAD)8c08c(FE=XLfIS%dF8C1%v9tj>!%qj1bSh;coACn$o$^|=NJ8}|T$Ncbe zQfvQ9=&+?#7N)fbaAJtf6x(;|@jug@WcRyJp%IP1Bsge+P~Za~q1ev~HDi%lI~AO$ zk~Dm&`-M)q9%1?`7qRF$iDVS(1rCrm@ASsJ*ZR=G8M;Xdk?LxnF1+RNkrC4Ncmz9j(k zN9VVBBZz2}@@41oW&a4vQjVE#tz=wFVwl5&smW_a)g$3Iw7Y>*nw`gzdVtD6t@r&A z*Rk%jb}Y3g@3(^L{&-Eef9Y#==MGzD!Pcv78q)=xNE?>gpxDyN$kq|GZHge7H1e}) zF6=Wsy%-TW;e27?8us{_IOvWlPNwF@-_BJ@q4u(jA@%;v%9=;MuqA%yEFC-Q&yw`S zfTrd9kMVa`+}D1xZOz22DUN_R++2*o0?l+OU`|N(O)N~TJZh}djwn_J2tR5`XmUW$ z;IvMLQ>Og2|F_LW$epze8e=vI!TZA$UYC^8F2ihU{16qY*C))7rzdnPMsv*-ORW!v zgx~_ITWl-C; zP`St-Jp!(;w1mabr(3`lWIMaexHjLmzO;~gH{|e+;L=_RnvdtzgMn#;D$rXUcrPtu z9or=I6s2Ar|GDPwZeAIX-n+1t*>u6yeE?L)0~^ZUUEi1gN8ZXmnQ>oA48S2~(6;%PJs0?ekr&G|M$7H0HoPwYkeUH>uo-B73oFh;Gf`ofT`!q3PZYQJeGTOjWG zCB3G|riuARpZR&n&a!E|D8;bAUx@fFpdVxHmAloVx7l!gRkt2zJx7w@`>lllc;|t>@6huoEqGDFrRar_l~RUAvk%MNzlvqAxpwZy^m_ zjvt8Jp!4JG;zs%X2T$Tns~m<(3`Vsn*5k)d-8*_WbExyfgBEfqC5MKGT|zeWKo2*v z(-(|G#bzF+QV}jFjV~!vFo0|BF4yR-Qt?D7H{04*Uw9BMo$vV$;K63{Os3~WK(L8c zRw##@tWG^Y%RK>-&@MnIn<2)3d+$G;2gNgrNUG>p-%oI16FD@6>7zarRHpO}1rEC8 z!No3R@$t_H79Ic`ShP=jd4aB40N#I+EGuPUXrCKNATXQC1U1KpIcX91NMF4pGvWg; zbr#!|Y$|nAat!=1TRVIB*qga`P*3z6txjlZX`ca{Lg(r@avPSSN^+U(#+TllWB*gg zS`zLL&b}2`2jRrOOS*g2|0j9Ge4iZXQ4zeDKNcRV@h*m+SJVc{KL85kWiUQ_M5@{H zMl{>6@_VEe#mW89!dHHR|B2vLMl23k|C%|w{x{&&F)1c<7)=+`lZoo~>peHlzG55RWw>|&*J9?JHE^1p}qv-^Y z92A{^I|{3fRY}T#9WI-LZIT3PnlF9Dp=b_*s1pr)lp=@`x^Zki%JrLgm=VLYRclOv*wr zp4Hp<(HEZUmxnr?NRSNq7YiRUz>56Sid{G0Ei&_;Hg!eM8ydS5{j{R`S2C8!mjrPt8)KA&7wc)5?Ouv*`X*BE0H#qL_S_!r7B(bxxLFBqkb$1vlgD2Qi)vvp zYxO;RCZBPqEiS;KQX_v}$Q7*j!t8DOr!6Q=Johnq>}3)Y}~eonK?d70><; zTUA?BNf(Q_r^ImtPuS4r_0sHa&Vc9;8)#gUxd=|wbR83nLr7zio(*1oOlvPcSNmEc zzOAnCnSa-SIxY!h9*2av@4L_L=W$2O8-5B8+oB?$U;y@_wv+=u%D?b}BZK3?byy#O zTN2pMXa2LBPA~3MD6Wf%I9z+eS<3nK+Q}ORjfrdAuN7Kj$3|4aw(F_& zc}WVVV3$hHF!}LSh$n!}&$$;(Q~v7lv*|xPA-88f)cj6M!!&!7)b5u3<}9d#UO)O* zW`bp)w~U*=axw3g6zSaC$@9n+Q@H7mm5dLjQWNh*+)&_yv_csPQybWgzuA1A0*m?k zZ!(Sat)g1^x93;&ZBucVl5>Oe>qFDp4-6hR-om)#eZ50B=Ka@vP%R_=tz*9T?)kAv}7y@USZi%78ZMR@&; zjZVvZVFGrk2D>(Is}HiRbcx2o3Y# z6a7AHz*dd#f6Ohv9+tiw_VFvT%U#7#Y&Nh_1I}M$_8$v_CKX{KD<63CWQP3-n{}pT zmMsJAK`&hNFKz9e-m<2yl+(*z)X@Ft`fw~{jNdLc#LZAvJ>BrXewBwDcDXBNWuG2^ z@o^cqvU{1g^eK6uL+xy|NDxVM5#XtIp8@+Yl;gHITBj7$hX#w>^HZ0N^JNMT`jKHQ zdskTV$I9Nx#T)F+9ielACZTkY@V^3XSPN)IuiD0iOK0oKwNwWXy(DS)O6)K}E&QH% zj`k7Id7aJNmt&4Cy~1y;$H}}4)=rBnTV?eje9lFWH$7X12hPwdAuFs+0QX(Ts-eYA z{n&(>rViP!Xb~r|xiu>oLXDf@T@d?sW@6J9$0F4kZ4d>8rRnH$#S&2`%O z;?(-XH=5}OB)|lucCzleGx}$$BAG7Sl%1GD;8}OhsB$B(1E6&a`+4@K8C@4C-6rKe z4E|DyjEK)bfJWhBU5}t)C;4ha8+v== z!7i)W2f{~LvGx3J^?y!}z~kCZ<@z7BB`ukX>D!e-IaiZ9>BI{X1n z0mT&x=KG^oF)!|0X+%;?6YE2SFMe`a>yZ-HOI>PSF$>&iGQW?n!8@9ZaUHVc37XH0 zs8H(GKryimCM|OPoP&^Ref}mlx$!6Yc~-erm(PNNh>nxs2==}vSk-8->_+J3TLY~1 zMn~hKMG-neS%{wA7UP!Gz6?Saw}?-!O>BuRER2A>=uqlfz1EMZTziU0&FTb(gg+bl zzyF!!crpE2Gkuew=b^e7v{#nx2VUc&L8R`Fb2V8`fd>W4G5~dN8F@Aai^OZT0ky^r z?!x^-+cHZgEy~N!78m~(TOyQ`juJ!Cf&lJu=@9xPk9*n?i_GtH)*}G70tIb zwHyWPV4H3slvwVTTzdAyvlQ8xo=}%PJGj5jkJ@bmkPK&T2n#F{%pLw~hvhdCgLgp* zwgqG}F5P_f3=8%P+VAAJy@%o29L=WuhaaMf{Y2$Ea*m%7Sgcq>-nH=ST;?@0e)`lR zKgE)K?5SwQD+tUxhl!Y;QBI7e1YCo{s#j;bXp4=yBxCExz@iMRrG{gX!&{1pH}Z&) zzVOG_G4w-3xx4+A`%^lT2Veoc#{6g zBRKX*tl9<3n>A^GHFxDJ<4{ct7u@tr9HCju%4Bay47^3$5X!A*>l4o?fS1^++U%K| zqsCB_+Sk}mU{~mPaSnjTYe^&w!7-sGr6Nr^7Z1x@j**Y1=cLsTzx=B;pCI3=S<}LYJZ0I;%yT_lbv)z1k3LLb7=!J}sa`mU-gv+yX3$gE(ReQ`WEq8c z7~dFIlxzw)8rG?g|FH)L1K)Ayx}ilzOxiQI50PhIjObpaeEFg+f5cnxmc0S;A7aSu zI;x#x;}fNxuz)M4opTmL7f!Tv0fr*5LuIHu{p76wM`b|G+lC>P<-A84^XkQ_c<@0xw6kw5^>5HbqDJ7p~A zQrg2Tlfq#t6E+h9w;_$sBNrQQAGCc7W9JnxA09)^AFpHgM1sz`Y#b)+F7%e)qyNf= zmnY&#wDo%Q<{?xUWRCe{f*mS$_v#N(sKdl%(Epm-DlMzD(m^+GH-V#jCn^O_<|(<) zK#F>V12Ug#uBEZ=FoghG7z#W<={z?fVQF-ELT#4MEk}90H|c@1Kc$3ua%U$R%R?um`Gx_^wRl=&L13L9fDjW@A~SM!e98 zY)@hj6xVw9Z0bYw)=jV2y`1#!8cPy{8Udc_(>ntG0R>qT-SHDt(b{a#89H_w+w}rM zKjXs1&c!xy`i9s*{PXL@7*EvswUp)Q_mSh;YZ2~G7$!H!hYg&J$~-{0wlxvZlj^X? z@s*p!o0-Yt5+-@`Ohm1pSj#hy^Iykc0d-HJ7qolxq9 z=qz32UXUYYprjy?Om zeW!P|*Xv!!l8!St^PmL+&7^+6Xu{mxUL|jF6)W+mVb{EHzZi*>nDU-5qoj^=Bq$j- z_N0To0-;$2XHn)KT8CPHe3h|<#57At>M(%II=iRW29W_xyM&-~5{#`+9U)x#{=SI{ zQUX0L7`ZTaPrTW=o5EIzg@nRZ%c3?RxSbo~Kl16P$1g$5RH9ZsPS@TJ+Mo7xm7q{LLxFhh>8qt9e~P#AtN% z3l^BS*)+MIK0SS|0SsgV!>%a2#KS}<)^m6D2Y^^OOt-4ko7NK>*26(x{cFJhGiY*| zx8$L~hL+$E2N)%r9VoD;Ce6^}mc58)6iYQvw=4Ed0|DEh>UEG8)x=tGf}VFB&vFAP zR=4GVhUb&p@53B0fWAn#*BwYLu@!3s|K(Hp>~V@Gkkt0wRYO#mKWv-BmRg&L+G&uRN3Z;> zuwv&AvB%zm2jp%t2%)@$6HWZmvOZr;Ac2 z-L@-m0uBvWe1V?|#KJe6d1a2x|Jt{?4xoJt<6d=5y}OR5`owwk@QQkdQiut!>JyhH z_Tq>Ztoap+b-Eaw1+ECMnpCVc%6J@_2Zk$dI5Y>eUzb8c$RBlKrHpm^O`Qcm=Rbh5 zBTL~Hs6gbZ6|RizYJ9gZCxDCh*)4h|H?p0_QGjdEZL^(wue`0Cc`@~$q*TNvcq%8re>XjSpHiVE!9rqOepqNJ;&@l; zhWk~Q$hY^$gQ?rJ?wBCo8U*v55f-FcT(?U?m0*kUlYhD_%n@4S7m$PCj%XJB<)lQ{ zg0oblcy`}i?Hrq;#Csj<>XjmTaO`1)aU$eO;~@A9-Xb|(`Otk)03v6$2{5opcGR?F zQ#`qC_Qk4$Y8)s$J?p26J)X<9a(N|8?nfHR&CdK%jm^HS;2ZwIoxBc4CWL^}p zTLBo*bHIZETmU;hdvSCc?1Q{gwq4UPpf=;>H0jm%M$`G13UdDeShdAQ-?wd)&MsD* zjlwbCIW54U*)<70*4HbvEbx|K0zkD*FSAOBi~zxhxuFK&aIn5=#p0h5v$|9p(IXF< z=r>s#C0WVZn;e7OqE+!9+xfCn#cB5Fkr0!UF|I3~mD|E?W7#2c1X2?d)(AcOjV2Z~ zacS+XVtsG<7?d+b|7iu3ltlPcy0Ma(Vo%@ckBGLeouWU#F51SoQ+jk--o5^)I!R{Z zV(iN-qrEYAT^zBTTA6UbrF!^QqE!npI|_jx+)757uMGCf^YF7U;i2MFhN1g!(P|pD z2?4={@bgKciX)!%7W7NRE$NpRNaJ8|pF)_5K=!S2Qy7%yqkUiC$a}C~%)!Z)St4lh z>eUmgxPX!E$7<1M@Vq#%N6*++|Mk7g5rgO#i@nCK==QvZfCg!Nm zfSPmfpJWYf^5B0g2Bb%283W6z)bI~gq}>X2hO>I5p5C@bviPxO zggDcIrQaDiw()NNY)2r?&Hfk@wvT7Q=S8L;(Fc^qJN^tI7?kZZXu0{G$e&O1bqSi_ zl%<>6oyV?-#E?uA5!e-NeBIScRKJ4@&eh8dE*wG{g)@z1?NVu->X}O6KY2S|f;se| z1a_%}SzNb_(ytxHiK~3KQ^6&?{I)76$)zngKOEV_d6a5jH*98Br_&LiL}Tb~qU7wF z#MnkYHhTELoLufRcJx-PSiglWT8;TFgNOfv%7+*xoj`1K_7-agOViv}PW9;IZD54m zL>G8E31G<-I>I{irWtC^%?Hd4 zy%qiu?5Nfh7*n@W@rMR5?<#=)qvjC<->*{zrkRXzG0M~M_UnU2N<;=7RIVCY{bpxT zF?dJFPKb<-gI>&+dZ8!%80R_qcJX;rEGOl4r)S;B^`Vv%&7!1b;=|$6*2EBRv?8 zoKSECu+g)Pi|8C56GdaB<4>hN$&T2d-<<|EF;B^)$cUs%9Nkf9Pbnb+EI;X*izKIv52Xc0-Z1bve%!o| z5E*)(zPXxL5I+A8CUdusWRVIC^r{4d=*MK+Vzw0Lv2Mx>N#s^#EdX@Yn~+$P?S_z{~cK zE`0Y8gy?l_-Z>ur*62_sO!G)0lAy(X#a1)yu)pMY?=&&IMpWr>M;hkBCmC>>X5e#p z==I7*rDn;bbn^i|_6!i9-kk+HS9ug=YcZ#md{v6&VPz#r0ktkS8A_ThtC*r}nf8Zm zII^W+?bgH+sBQnk9LRvx)+}pl0Rk~d6Ge`8ZNIr(4;+I=o`-w6@u z?xj9_0#E>JyemU^`q5cGZ<2zGlSaVyooSF-_x$miO1M{h2n~`9`4rzR`RR-;pvpsG z-iiSEn*@&3)_ZGane$EEhIz;D-c4VX~^6j^_Ef&(ufi0m|F9Cyuu|Dj-+d{fm_^fG0M& z>vQL?>jIgIszl9|K09A@ej-P89HUcB(HdD%Y!wP4uwDoUZ?L%Z*5FwLcs*^D3HB2k z8LzwizYh;?0t1n5{;m+?f@qJvtYxil|=IOo`9cax~oh zxzizgQ5j1^4|$xxy41*8^xB$ifovH6wy^O%I^QltAue)E>r{FCj1cxB(c&j-s^Ak3 z`w?IKfykuJV6U!uh04vPbT5c1clg9x9DJf|r>7S9452+Wt;!Loodf%fig;qVy*T2f zOClGu?~zy`j73{B^@NY1qjz%3!Yt+VSO2w{q&vYfoyup7yC4lx^E0}R<3@05X-VgD z@#dnE#84PwX>}(YP~lV~9P;B2Y-gCoxrS4U`dco}n2k`iFA-icLG#-WmtIp^uKjYa zj3iL06h|4<7$*XbXaoK+S5W6ZHkIXX9cjwlcVJfN=Gs>e)W?j%z@(Ea_q^cakOl7nFKrB~S+x+O$ zq)F#lu(OL<4r5V>Y+sD4#$85}bx8ilkm;`%<+xY*J$f$(^2{>AXq}2}$D0*F1BIj~ z9)oCvX1?_b^2ajwB_0&g80aTgC^sUyJ+?UzJhbHOhO}S zxhM!$LyM_>5lEhj>Sa}8av*R~hOzJVBqUeb#Rr8bsQtybID^ASpe^U49cfGOkDM~j z%wC=Sk46|rx$*on@%CBttE`FVD|3U<@`PZFr%+$7yP)yr`a|{y{rPL0X95!^+H0@i z1#^RQ7gm6#3b!NcJ5_(Ky!MA69=)0Iir^d9 zf-kthBCj`zzzBMz;$SUc=;TT3jOliawG%IN%qgzJ+L0`9u<@_Imzlrnp!AR=L;x$a zCYymc5rE-*IEgOQ=xk1k-9eI!dKRSM0$F+rfM!{^Si|8JWY$s~)Ivj|$sj{paiwjz zrCFb85e`P=*|Y&8xeo8b;rKy&2q-qW>>UivZ3r+LQH|Vhv9b-AE@iT$D z4)`plVG_e+q^P^>F0W#~2zv0}W#0Ug%!iQU1y)ojL6@?+1{$Y9XXsVh0>z(!fzn$# z-V0(yLEDgibZD1xy^W_x0QRn3s%1~g?d!P6EZ^ViFn|gcY>Lm47nEy()InW;y#;dT z!(`r9!0dx4Ff4!jY4R?SNEVAk=k5aIP*l44s1gni@K0`1wf38ECs&P22q=KHD#Y?DTGJrEv& z)Ee@btCuJXI5?o`2PZY!8LtsVjasB*nZ@dKk{xZD7ybN74LnZJi30nyeTYw+ zzTQE9tgDrsOCEQ&dl7uHmjSma`HuvX&VFekSI$?dhOWRnTEw?E+MCZCz-Ki0KiNst zyu`Hgq`90Ss7~w}3>NrDe>m-7S58WqvHDg!vN}>k^L`)E7xy#VjNobaMps(2z4Pr^ zq~QMF@x&IqGkEr?$F2-0Cx~-8M-#TjZx7O1dM|ugoHczYB#0MH#r=kFBr8Id+UXxD zcKw6WpTbE)9(23nlKk#`y7o5#&||?I&>*%x@ZcE!2&d{gP6={<8Wr1Ej&edK2v?)I zm#x*X*(mt-ZP&Kh9gLy$_VTc&6@r9l5x~`q+j^-*JlkYfib&(z;sTsi;o#iK&4V}Q zR&GB*FM-fb)yFsCxmwM!cN7uFZ0XxEYi>%6C&6=B>=X@iJ=0|g?IxBG0fyoARBok5p0jtn;p@*(|a5J_MlC| z2y`E(Ae8UNbv@Qj9lG%lW@)Aax3c%UVLr&Tv<|%5Y=GY%Dlb>{_t?T&&${wLc8HSy=z9#E z(!{B@F$v-NwEm}?QVaYaYsL;oP95y8DgfEz7@=*HN`TYoP;Lia(wqY^FPzTe4KlLBHrld;K3wOAOsh9EjaS? zV}O{ntlgzs1=!$28mOcb^;!sizB66njm$uUXaQU8G}DZQA-u0spFKxno4es70@z>! zFv-9_zp*gMaXUGUrxxw>d~gQaBDcZIeb{SId^j*I+}~2b5#---`KOx8bY!f3{H=^< z&U_Ix(?}S^cs3w3SWxFjL5QRt{|x2UU>g4x)Nxs&{0t8qvwHZ$@k99ALcX;qj_EVLsg>JFO1=_qKumE7@tu*os4XszD! zxa6^(8>Fv#lt*KE0=O

X;`6>T@ty0;UAsFyP#^1cV8*!2w_1;Tp*k@UIBG0gXZV z6M{1JKSP>U3_i|BmE#n;oqO}-enZi>N6eJI=`0iQaxwyKxx_FQ!19w%)8et|zqp1z z@=;+hSvioMU?)17ho|MK>KWQesuacYpTgqEVG6u4=KAP~j#@i)BJn8sKX!UaMr;$B z&Tnp{VVgxHf!Ee>a1rFZJTGkB*ysvvmZE^hd#h(hX>&!v#j~UkFyTmvBgh}A!_~ot z=FD)WQHQrzPkR*-d&3XNP0AW^`+wy?c&MT0fGAn361OrE573AL3k14fH<+CrLsVaL z25rFTX%{_Kn8E_)lZAc?O&D8jRJyHHVlC@*{+E)1-pG5I-{6bbVCdk087)J*tsBE@ zBhOOgiI|)6;aA&YD|d3p=Nv+@R+_xJ%H#XZ2lv&M{)1Y(nn+yOFy;UgA(*P69o>qV zJahCugy5jkEA096&K*XRFQ3*S;(AK-=@im$H zn{DjuBPtvSv*LS0YqboZg;UX0!2*6b$t^v8L+r)ir)Q~oYys;Z-ZFw3T?e*H2^l2_ z-i8@r!obQw%^a8XwI$%I|I_Z^BHTu_evaDo1WNmX%CN-g_QUBgYkAJGzvyI%7hbCL z|5f(o@ldu=|M%EKMG9H6Z^^!sC6#?EvLx%+g+$iDh%99td)Bf>$ewi+#$&Is@3JOj zry=~V@jUPQdH?ixkuGzg& z&$Uu>^W>YV@|PdQtl1M9^M`y(4$itCstO(*M=OD*ggdbv=N>DWz7pSy*ET|E0<{GD zCeZQ*-7xa&VM`5KkG7bdgDT{bYqT%XRCk^?k<0DrMX6eI#yDU^L-DDDegIw6X_fhydH!I z`OTSLr#_BZ;Ke{&QYz8cHxFq|)$EtK@NNjS5V#gtZ#W|8X|svvF0K+FWX{Azfh}fB zd{ratVQ+2Y$sdKJW5$Z*ynd334sguf=?Zg6Y?4Q8Wn-=;F_-@zFC->BXgcmZKyQ@7 zk{QSXO746ne%|}hjKo^wWrfJ3QD7K~0=&9Gab{$3P3EzW zrS|hL2jEn>qlxtnfTJ?GCn4y=5&d9?z+r(gWyxSueEzL(JB@F=i;%+BnT1UP7E;aq zC7oCO&x1{9A~j6l*$;6N^YgkAJ$mnIvck^`fr_9@(hj<%Z!rmYhqEyIeU_0Oyh{a? zNEl))2&wU`xb6-p9X;%}9WBc7t=0`X2z^hS`zZ8(-ApoJ-l;ZZvrY>vCkA3QA>yUf z@+vJFpNy~R6G|r;CnYRwFrG{`Gd>mIqT9l^#A*vHL3P1|0=(|Qx#;!+{-GK^wSj^= zAa7rsbZ?|rX&1oP?{6}rfJX(D9B8x9PXs$V#&<4Qo*>w+pz62`0?S6w#_&Xz082bW zH~Uk>=C%ypK0Ph5eWr3LO^e&=OQl$sT^Oe@B~g#$N>zmo6KlKH6-l3Po4%@ap5TB_ zHhsUfJ*sLOCZ*@br%A=Sgj++^LpkAZ%92B9+(}qS8YkJADCtW$FJVX)?rH`UotYbR zR(-+nd?;>QJFe%fXxQ`ma9kSn=;Rk2&%k4277R&Z<#d{?qE~I+#Rq{Ll7UACuUW<nAKAyzT>R~5gtkH3=#rfD55ra z56ctfS(X=wC0l>y>1y@TOsZz}pges02-n9P(t$X=(lym{6D(UPQ4^VtaN)F2)W>Ro z!N)(#5i$c3;&o40x_jJSsJ^c6Cl>W;$-7MqU4>ZRd+l```nm3yq8u06M1`}HAE_3N z65BLxru?O_-Qy;PsNuX&=U(B}{Z82E`lg$_)OXj?Q$wtR*Pf+9C}&mC58R2o{z`R# zWa5=L)A|bOchcHeH(tn+7>fAxMXR#ys2^uIp~4UxpeTV0^bNSX`yPF1X-TRqu>4QG znbGyM$IOh{Fo+nEet+fLWXt#nF1qqaz>#QKvHNI^d%!i5rMu*CKZ(4)UlQJXXy6ae z<%6WvV4r$n&?P&Eee7Y=k0TRQa)OE_Hv@dr*}G+^|^!#WM(f zA%~vbA`y)|TQFV`z3=w=NvdFp{^~5lTe^O-rQu^auWPlQ6445eKTn{QWWKfC0mJv$ zO&IFzC$b-Y6xUW+8zUwdWOcsb=HQC6GPcObf8yN;@2x?3=|f5|h`oEwMAEnpeQJG! z`)U!5?F+ZN`aSZ618=gaFeFhnaz=77nS$eVguY*X9Cm)TF+DfvM213b_NS&6h}7^4 zudKiPmiG^mTk0OszsmZ6IG1-N2#uQ=#87 ztICmYl!4}{Y)3q3Hbfg9V~^XZQ>(f~ssf!n){=fyqmRSh)R$?Xc@v$_Wl2xbv0Lmc z(40^PVrRIOPJSC|P-E-+z`HDKWW4aim7ez1uhs=*usa{DS+h1~acv-}csseG_*%j` zDr{U}+QRW@TmAo_4eQawY)PCW`G#ht)!kU`Xx?95O2%!k0V?}?X?;L{lrlYXAX~I> z-`T1O5$MrrDUyx8Cwge8cQbWS|sw{P*#bQS& z@q7A52tTlfXphr^Im^;cVReqD4d3TNvwTRAAfWgAe}d z;;LNw5E5#xyIIlckuW>ofXs;v+Q`7FO&{@j&}LD0uc5zHAl24r zJPK6ZDAyGKgT4s+p*> zYlt#uk8agy<%I9`ge{LWda5@GMhWoR$g!Z@1`_sUH%WP+q6Xau?DV-;;?$cyK3_$s zJF9WDo{UapizA$7;lPdmc_l2FGd9~?|Fe@J`jHSnFku54*N`^)9lw-~9c~xrdS;7zxV-fd4T zNKS8)&EQ>Xn2Z*YQk&R4K9j9X38B=3ki6HQC7`QYJhGx@Sfg9Ds<8tMZy*1b2{8W~ z3S^1fSodU-)2>{Q;CY$E1%_)#jR6N0GbEw$7+~b_)|Z)PXSC0-OJV5tJjegwZwW^Y zu=ia6=1jM_x3gbm+dG{{&BWnxXFTmw;B)=8UOmaVrAPi6rVY!EC8qQXZ9#^>j$2a^ zTF(PT$pW@fDLPX(;ciz)iHRI5<2RfgT7;f%cb9;Qia&tEF7sl7eVw@u1CXDrQ+1c%<4IXw0MV6HMJbFO zPz)V4F^EGuBGmk>Y>fZpojywT-GP+=7e4@+4d{U*Y}(yioBG0s1<5h_mo&wrSzap+OZ;J#)n9OS#5#wM8HgDTK< z4iD~^TFdE^E(I-y;K0ik2DfOX#Kna&?$DAoL&iPdr@o(EOt@Y=8`JW~d_a3z*w0KU z?cV>-NTzaMd5iW z>M~fep_kMChl(D*rta%U5?qB0U~PPH4B~U#7K~k^+4diC*BptuvKA8mUQAf2HkXYF zKRegu+&4TExny%?HojWz2_0450ORa|j-xB?yYwS3eDs4Z1-1UH?+VT9Dc!r|PGtA8 z<|sU@AemG*lkqG;B;c;V<*lPdc#rVYb^^;ZaPMY6VRN4L4Y5P-CIbAAiN3` zNAFjCl7{-#j~aFZCV)BVv(kRz-JLN~9!~ZUJ~FcSWaPRQ4_SQ|6L>!=t^w9I*ZaQr_wph2WWKJ!@}68iWZhcf4h zhGM5}XeDl=-S&rMT(afA5(6WVDEc2F7*eh&m$jP~TkZV6d<(Yue$Z6gW{o@;Qz9V0S zs7Q?geqVpt%PgnV6<*OeumaZ7L1S&#mN;G~bp`krppu#5_8Y(uS<@u99e%KCS73at zHS~M>?&0zH$rx{k6a1Xbns`X$XG@6JOnDqN{khN{96}4hKg(Wi{j($bp~ZN-Ke0Me zoS???uq7Z?-R{bRIXE%$4HUbS8rF-<-Cuq?#P|YtJ+Y$tqzkkL1;rGkAsuZTj0ox8%tgQr=zFM5fE#I`E5KQVDE*GAQtPupQ zd=PZanl*FGlH$c|Ty>Z@a$69RCQ0PBY@#ePYZ^?iE;YeSv32oKLYuiPHBf%i z9xNCzcZgbavA~eOU=>vxM*{Ykip^YiXE+{lQjd9S5&!Qec=|#r8i{6RW_!X(ZTXZO zqN|1##SBAWMf7Ln>TU@nz>y%yuB!IWg9{xfryN%PZx*CmExpb z2tuEhG$PtHd0cBSQ=BSfc=P@)nyPbqt^^Sb0_a7ibcdLBaDc1G@9ytRp|SV|6%l26 z>4#wiP>!S_!HD3@YJJx@%8`a66lMt2_H?ieYlb+%WdfFwhe@DNM#D5AY85j}Jvw=ts-5XTp2({ff>>#rOf3aGZ zz<{d3SYj~q&&wR4E<%n#i4gU3%g|@V;Nl2#m@p*)0hKQp!w*Sc3BwW%%{xIHp&-8S zDn%5;s*stkrsM@bwgm`;5L3W8&fJm0F{_Y;0CyPiKSPlYN8TKv*<2U#H`U;Wk*bhc zbpIy;5R4qUq@@c{^$jDne%*2QRNx4GaAIMbEF=a=GlZ-za{o7*^##jNVW0yllm8@c zWN7_&lDFrRK=-bm3x?z^C;1$C4KuoAjUO+8dF+}=v=vF>m!K=EOb@mrVqQaOpz@B8 zMNquWq&nd>jP#WdBxE_Y*P#hm5j<2FpbyDgMuHGmHulRD2Sx+7UW-SnOGrfd^E|yK z41%IIHIz0h&HfeSeHREo)AYvz>Wz{3?T&~G_WVWNF~rNK3P^&1>eDG1n59-!43$DG z^;ZzNmD<4uvR#APzTbijzB(b(jjf`BUV$}${bqekg4N8XXJ-4$biNf2fXgwFlzz~b z@=t1``oFW6{@$S$%KSXc;F0j(!h0-bw~^&L#G-y7|B3s26Y=Gog53oogmyn)0S{Uk zom-do#K&%(tx90CnM4?r{CNen}~xZpx4@p5rKmQWk6? zY<*tJ7-78PNn$FXvF3IN8eVCB6e({myYF&+n)|~&cIgHJ%XJ-V2w7~~?71VTZe+a5 zJb&)&nETmaN=ds@iwiB=_G%MK4ASojED`%ugpdKc4y!qvQS^g?(?iH{?h|qAn)b&! zYMfWRC(#xwbNISsdF7>`O)S^?HP`(vTy{!*n zCfK|Pa%3q>&5veUPmj3y1(IykiCFj{)Z#v;#c&?hQ(cjVfvNJ0ewUpOdXy(*&fu9q z5nV9~upw;>i{mVZo6LA5D8}^)pvdoq#%}i<(h%qckYGQkBAo5i-nTD&%SFlqFXH}p z*M~&n^sFuD1YQxe#QhQ~9>i0xEg~`fhdhpY&?U#?TurGPJ|s08TsMtNhVL^TQ>#P6 z8+avWrDyP@NvhjkiJYmS?vKBH$>-U|d?qkehUo`BBrn9HjZ0qT3z&@-p+g3hm7)== zzQ7!1mo?l;jTZ&iYq2+09K5cY^d(jE?*vK4z}c%)Zrgs8Z>-LL!yggMApXZ;zAmu- zwl>xe8(~1~vr=?}bln!^h<>7=iQNq~+Es`Xsk>H};p=XtdAJ!tSY&qB`8QKh&nTV~ z&x=4uUXb%-vzo<4PYfffd(qxC53+Fe1uen%Eog4+F#@Mh2X@F^HA zb<2iF%+jpOi3hf%?%!$Dzd^=5Hju z*1cj5JDc_$=Dj&+dMN?5D|+Nu#dJ1hUA9Ks+~joG9g54Vo9>WnLYzE8f%{BYeLOW1 z84W1+OqGFDf3?cze_*unOwVJdHhR@0(va)(HCu{Ss{Dy66QoceWWFNCMag;+uM90?dmo$PWMc`ed%X%-oM=hS;mKOzgW&<`+b_`<(waG`r(eob5~;M zZ|KAJbyY53)#c54(Cf7e4%l_tlr;XmJD_boU^C`qDf=3eb)a77A-8ZafmZakDFczy zO~t{yO0??rcv*V2`@VlWY|iI0FQE8>I3rEJZ0Vc*j3Z+O)@8dSwvCGJ?NwqkrlN7` zA0KKBaxM8-5IhnW-RO|#$$ZfLLIH@2L9GbBIFVhsrOv39%bsY{JAGf#%Z_g{Qw9|@ zM^u>$^7Yc5QQee1kC|Mh+i)fiFSgO~0++*!G^EIF;p&C}f3ucTW&UH`JZg5hWY?%~ z$J3S4Uz=n8d1t*BoR0CPB`<{|#AwBoOp^-!k>36Kb-6!q9-?ZuKh8;SNE^LpU4NOg-*&Fc#CB=n5D_uXMi=(FuXIzk&)GS$!h56<4$mYM?ncrXCBhK zKoXcqzZ1q|)=T!oU3x~$FUPpLFm`xjN@olm2MP|Q>q)4Yr4xB;lk1rly)UNUm;MfK zhvmGFnjsNPJL3ebm#MCFMB0e9%1mlC|92*Q|8AznpFWc5A-8T!wxBDIOa|fZ@rf~9 zWOAR$9V)WPO8-M=u|!dP^tSvN^XE*tY{lHf0H5B%HQA&c)0QOjqvd-SEm+~dm*o|U zI+U*be*Y3{V~W?XNx0beZ@S6V<6HowRrC`X9PQ z4^+B-+g^_2+-`OK=^05doP83TzH>U0E-F5Z5n2EKJmdwcyi+bm| zR72#Zio@5TV3YoW(_U_vP6fpJ@P4cIN8uL1ls&I|flG>0{ms5h4Z>3G z9}0#@M)905QYP03m0S`aB#hY`!c{E1U801BU2~*xdDi)ksI1bB*~KcW1PCI$fd3x> zLkBW3@+A*lSG-QbM9<6%%jMXBj%K`pz?|8A!czpK_@F7F96>rd?A=i!-BGQoqGZgKdyV^B{jluV$!v1&=BP$+RafDW((Vvb1iicAR^?T$1!>j-ByM4a;Z%gE6%o@dY`3>oV zkA%9<=8IS$OeqoIs$++nmmFyhg2cPZC%|1w_A_lKyR&0fWOAF5nsYrLo4r;Kgs3d3 z|H&gj&rQ+~E=Vu2Tn6u*ETt9w2$zyoG1Qe2ISz^Mn=aqd(}ar5RQ!4vCJq1b8XkhA z$Xi98F&zh~N_wMjCLhCcNLuDfYh-`cOmlV3nDHhqSjkt!66jgobOhEh_s1B{jrjYl zU%_$ltSHVu&u-KQ!p~(V6pVVX9Wg*x6?^9K#6$M=|lw7 zFl?^c16qpAJv|-uTS!l*sPDgJ1^s{jP>Gyfe%JD$tn%PnJ^o_#`#Sf^lr3NWKkaP0 A?EnA( literal 0 HcmV?d00001 diff --git a/ui/public/favicon.ico b/ui/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..48fcc7792d535621103efad2e3be0d3961cc652a GIT binary patch literal 24046 zcmds93v^t?c^;wNl?=vK93Zy#t|SO~fL3eSCd8(I6>zQH6*ziW2`yk`XnhhAgN

u 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 PSw>2AkS$-9Xz~95tMVxx literal 0 HcmV?d00001 diff --git a/ui/src/app/assets/fonts/spezia/SpeziaMono-Medium.otf b/ui/src/app/assets/fonts/spezia/SpeziaMono-Medium.otf new file mode 100644 index 0000000000000000000000000000000000000000..5ab86be11853ea0dfb61e28e3010c7ca26237ee7 GIT binary patch literal 70244 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 literal 0 HcmV?d00001 diff --git a/ui/src/app/assets/fonts/spezia/spezia-medium.ttf b/ui/src/app/assets/fonts/spezia/spezia-medium.ttf new file mode 100644 index 0000000000000000000000000000000000000000..317475a4e6e9f2faa0bed6fd020aa165cd8eb6a5 GIT binary patch literal 115948 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

+mXDm<(4tNED3>Xz*3N#O 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 IG92&vKR2?Es{jB1 literal 0 HcmV?d00001 diff --git a/ui/src/app/assets/icons/arrow-down.svg b/ui/src/app/assets/icons/arrow-down.svg new file mode 100644 index 00000000..2023274e --- /dev/null +++ b/ui/src/app/assets/icons/arrow-down.svg @@ -0,0 +1,3 @@ + + + diff --git a/ui/src/app/assets/icons/arrow-up.svg b/ui/src/app/assets/icons/arrow-up.svg new file mode 100644 index 00000000..9e09e827 --- /dev/null +++ b/ui/src/app/assets/icons/arrow-up.svg @@ -0,0 +1,3 @@ + + + diff --git a/ui/src/app/assets/icons/check-circle.svg b/ui/src/app/assets/icons/check-circle.svg new file mode 100644 index 00000000..1457ce55 --- /dev/null +++ b/ui/src/app/assets/icons/check-circle.svg @@ -0,0 +1,3 @@ + + + diff --git a/ui/src/app/assets/icons/expand.svg b/ui/src/app/assets/icons/expand.svg new file mode 100644 index 00000000..063162d4 --- /dev/null +++ b/ui/src/app/assets/icons/expand.svg @@ -0,0 +1,3 @@ + + + diff --git a/ui/src/app/assets/icons/index.tsx b/ui/src/app/assets/icons/index.tsx new file mode 100644 index 00000000..c0c44bb1 --- /dev/null +++ b/ui/src/app/assets/icons/index.tsx @@ -0,0 +1,10 @@ +import ArrowDown from './arrow-down.svg'; +import ArrowUp from './arrow-up.svg'; +import CheckCircle from './check-circle.svg'; +import Expand from './expand.svg'; +import Info from './info.svg'; +import NeuralMagicTitleV2 from './nm-logo-with-name.svg'; +import Open from './open.svg'; +import WarningCircle from './warning-circle.svg'; + +export { ArrowDown, ArrowUp, Expand, CheckCircle, WarningCircle, Info, NeuralMagicTitleV2, Open }; diff --git a/ui/src/app/assets/icons/info.svg b/ui/src/app/assets/icons/info.svg new file mode 100644 index 00000000..49baca81 --- /dev/null +++ b/ui/src/app/assets/icons/info.svg @@ -0,0 +1,3 @@ + + + diff --git a/ui/src/app/assets/icons/nm-logo-with-name.svg b/ui/src/app/assets/icons/nm-logo-with-name.svg new file mode 100644 index 00000000..a2e9e098 --- /dev/null +++ b/ui/src/app/assets/icons/nm-logo-with-name.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/ui/src/app/assets/icons/open.svg b/ui/src/app/assets/icons/open.svg new file mode 100644 index 00000000..446bf84f --- /dev/null +++ b/ui/src/app/assets/icons/open.svg @@ -0,0 +1,3 @@ + + + diff --git a/ui/src/app/assets/icons/warning-circle.svg b/ui/src/app/assets/icons/warning-circle.svg new file mode 100644 index 00000000..81016d27 --- /dev/null +++ b/ui/src/app/assets/icons/warning-circle.svg @@ -0,0 +1,3 @@ + + + diff --git a/ui/src/app/globals.css b/ui/src/app/globals.css new file mode 100644 index 00000000..5e585644 --- /dev/null +++ b/ui/src/app/globals.css @@ -0,0 +1,30 @@ +body { + margin: 0; + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', + 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +code { + font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', monospace; +} + +@font-face { + font-family: 'Spezia'; + font-style: 'normal'; + font-weight: 400; + src: url('./assets/fonts/spezia/spezia-regular.ttf') format('truetype'); +} +@font-face { + font-family: 'Spezia'; + font-style: 'normal'; + font-weight: 500; + src: url('./assets/fonts/spezia/spezia-medium.ttf') format('truetype'); +} +@font-face { + font-family: 'SpeziaMono'; + font-style: 'normal'; + font-weight: 500; + src: url('./assets/fonts/spezia/spezia-mono-medium.ttf') format('truetype'); +} diff --git a/ui/src/app/layout.tsx b/ui/src/app/layout.tsx index 31320365..0e0af570 100644 --- a/ui/src/app/layout.tsx +++ b/ui/src/app/layout.tsx @@ -1,17 +1,27 @@ -import type { Metadata } from 'next'; +import React from 'react'; -export const metadata: Metadata = { - title: 'GuideLLM', - description: 'LLM Benchmarking Tool', -}; +import './globals.css'; export default function RootLayout({ children, }: Readonly<{ children: React.ReactNode; }>) { + const assetPrefix = process.env.ASSET_PREFIX || ''; + return ( + + + + + + + + + + Guide LLM + {children} ); diff --git a/ui/src/app/page.tsx b/ui/src/app/page.tsx index a7c45670..13102b0b 100644 --- a/ui/src/app/page.tsx +++ b/ui/src/app/page.tsx @@ -1,5 +1,76 @@ 'use client'; +import { Typography, useTheme } from '@mui/material'; +import { ThemeProvider } from '@mui/material/styles'; +import { AppRouterCacheProvider } from '@mui/material-nextjs/v13-appRouter'; +import Script from 'next/script'; +import React, { ReactNode } from 'react'; -export default function Home() { - return

GuideLLM
; +import { muiThemeV3Dark } from '@/app/theme'; +import { PageFooter } from '@/lib/components/PageFooter'; + +import { FullPageWithHeaderAndFooterLayout } from '../lib/layouts/FullPageWithHeaderAndFooterLayout'; +import { ContentCenterer } from '../lib/layouts/helpers/ContentCenterer'; +import { ReduxProvider } from '../lib/store/provider'; + +interface MyProps { + children?: ReactNode; +} + +function SafeHydrate({ children }: MyProps) { + return
{children}
; } + +const Content = () => { + const theme = useTheme(); + + const header = ( + + + Header + + + ); + const footer = ( + + + + ); + const body = ( + + + GuideLLM + + + ); + return ( + + ); +}; + +const Home = () => { + return ( +
+ + + + + + + + + + +
+ ); +}; + +export default Home; diff --git a/ui/src/app/theme.ts b/ui/src/app/theme.ts new file mode 100644 index 00000000..c5eb99ad --- /dev/null +++ b/ui/src/app/theme.ts @@ -0,0 +1,572 @@ +import { Palette, createTheme } from '@mui/material/styles'; +import { TypographyOptions, TypographyStyleOptions } from '@mui/material/styles/createTypography'; + +// Spezia +import SpeziaMedium from '../app/assets/fonts/spezia/Spezia-Medium.otf'; +import SpeziaRegular from '../app/assets/fonts/spezia/Spezia-Regular.otf'; +import SpeziaMonoMedium from '../app/assets/fonts/spezia/SpeziaMono-Medium.otf'; +export const FONT_FAMILY_SPEZIA = 'Spezia, sans-serif'; +export const FONT_FAMILY_SPEZIA_MONO = 'Spezia Mono, sans-serif'; + +import { + BLACK, + WHITE, + NEURAL_BLUE, + NEURAL_BLUE_SHADES, + CARIBBEAN_GREEN_SHADES, + CARIBBEAN_GREEN, + YELLOW, + YELLOW_SHADES, + ORANGE, + ORANGE_SHADES, + SURFACE_SHADE_1, + SURFACE_SHADE_2, + SURFACE_SHADE_3, + SURFACE_CONTAINER_SHADE_1, + SURFACE_CONTAINER_SHADE_2, + SURFACE_CONTAINER_SHADE_3, + SURFACE_CONTAINER_SHADE_4, + SURFACE_CONTAINER_SHADE_5, + DARK_SURFACE_SHADE_1, + DARK_SURFACE_SHADE_2, + DARK_SURFACE_SHADE_3, + DARK_SURFACE_CONTAINER_SHADE_1, + DARK_SURFACE_CONTAINER_SHADE_2, + DARK_SURFACE_CONTAINER_SHADE_3, + DARK_SURFACE_CONTAINER_SHADE_4, + DARK_SURFACE_CONTAINER_SHADE_5, + CHARCOAL_NAVY, + DODGER_BLUE, + SEA_LION, + MIDNIGHT_BLUE, + DEEP_FOREST_GREEN, + DARK_BRONZE, + CRIMSON_FLAME, + BLUSH_PINK, + DEEP_MAROON, + LIME_GREEN, + MINT_CREAM, + FOREST_GREEN, + STORM_GRAY, + LIGHT_SLATE_GRAY, + LAVENDER_GRAY, + ASH_GRAY, + VERY_DARK_GREEN, + RED_SHADES, + OUTER_SPACE_GRAY, +} from '../lib/utils/Colors'; + +// Update the Typography's variant prop options +declare module '@mui/material/Typography' { + interface TypographyPropsVariantOverrides { + metric: true; + metric1: true; + metric2: true; + overline1: true; + overline2: true; + axisTitle: true; + axisLabel: true; + } +} + +declare module '@mui/material/styles' { + interface TypographyVariants { + metric: TypographyStyleOptions; + metric1: TypographyStyleOptions; + metric2: TypographyStyleOptions; + overline1: TypographyStyleOptions; + overline2: TypographyStyleOptions; + axisTitle: TypographyStyleOptions; + axisLabel: TypographyStyleOptions; + } + + // allow configuration using `createTheme` + interface TypographyVariantsOptions { + metric?: TypographyStyleOptions; + metric1?: TypographyStyleOptions; + metric2?: TypographyStyleOptions; + overline1?: TypographyStyleOptions; + overline2?: TypographyStyleOptions; + axisTitle?: TypographyStyleOptions; + axisLabel?: TypographyStyleOptions; + } + + interface PaletteColor { + subdued: string; + accent: string; + main: string; + onMain: string; + shades: { + [key: string]: string; + }; + container: string; + onContainer: string; + } + + interface SimplePaletteColorOptions { + subdued?: string; + accent?: string; + onMain?: string; + shades?: Record; + container?: string; + onContainer?: string; + } + + interface Palette { + outline: PaletteColor; + quarternary: PaletteColor; + scrim: PaletteColor; + shadow: PaletteColor; + surface: { + onSurface: string; + onSurfaceAccent: string; + onSurfaceSubdued: string; + surface: string; + surfaceContainer: string; + surfaceContainerHigh: string; + surfaceContainerHighest: string; + surfaceContainerLow: string; + surfaceContainerLowest: string; + surfaceSubdued: string; + surfaceSubduedContainer: string; + surfaceAccent: string; + }; + tertiary: PaletteColor; + } + + interface PaletteOptions { + outline: SimplePaletteColorOptions; + quarternary: SimplePaletteColorOptions; + scrim: SimplePaletteColorOptions; + shadow: SimplePaletteColorOptions; + surface: Palette['surface']; + tertiary: SimplePaletteColorOptions; + } +} + +const PALETTE_COLOR_OPTIONS_PLACEHOLDER_TOKENS = { + main: '#000', + onMain: '#000', + subdued: '#000', + accent: '#000', + shades: {}, + container: '#000', + onContainer: '#000', +}; + +const themeV3Typography: TypographyOptions | ((palette: Palette) => TypographyOptions) | undefined = + { + fontFamily: FONT_FAMILY_SPEZIA, + fontWeightRegular: 400, + fontWeightMedium: 500, + h1: { + color: BLACK, + fontSize: 96, + fontWeight: 400, + fontFamily: FONT_FAMILY_SPEZIA, + lineHeight: '120px', + '@media (max-width:600px)': { + fontSize: 56, + lineHeight: '70px', + }, + }, + h2: { + color: BLACK, + fontSize: 60, + fontWeight: 400, + fontFamily: FONT_FAMILY_SPEZIA, + lineHeight: '75px', + '@media (max-width:600px)': { + fontSize: 38, + lineHeight: '48px', + }, + }, + h3: { + color: BLACK, + fontSize: 48, + fontWeight: 400, + fontFamily: FONT_FAMILY_SPEZIA, + lineHeight: '60px', + '@media (max-width:600px)': { + fontSize: 32, + lineHeight: '40px', + }, + }, + h4: { + color: BLACK, + fontSize: 32, + fontWeight: 400, + fontFamily: FONT_FAMILY_SPEZIA, + lineHeight: '40px', + '@media (max-width:600px)': { + fontSize: 24, + lineHeight: '30px', + }, + }, + h5: { + color: BLACK, + fontSize: 24, + fontWeight: 400, + fontFamily: FONT_FAMILY_SPEZIA, + lineHeight: '30px', + '@media (max-width:600px)': { + fontSize: 20, + lineHeight: '25px', + }, + }, + h6: { + color: BLACK, + fontSize: 20, + fontWeight: 400, + fontFamily: FONT_FAMILY_SPEZIA, + lineHeight: '25px', + '@media (max-width:600px)': { + fontSize: 18, + lineHeight: '25px', + }, + }, + body1: { + color: BLACK, + fontSize: 18, + fontFamily: FONT_FAMILY_SPEZIA, + fontWeight: 400, + letterSpacing: '0.25px', + lineHeight: '22px', + '@media (max-width:600px)': { + fontSize: 16, + lineHeight: '20px', + }, + }, + body2: { + color: BLACK, + fontSize: 16, + fontWeight: 400, + fontFamily: FONT_FAMILY_SPEZIA, + letterSpacing: '0.25px', + lineHeight: '20px', + '@media (max-width:600px)': { + fontSize: 14, + lineHeight: '17px', + }, + }, + subtitle1: { + color: BLACK, + fontSize: 22, + lineHeight: '26px', + fontWeight: 500, + fontFamily: FONT_FAMILY_SPEZIA, + '@media (max-width:600px)': { + fontSize: 20, + lineHeight: '25px', + }, + }, + subtitle2: { + color: BLACK, + fontSize: 16, + fontWeight: 500, + fontFamily: FONT_FAMILY_SPEZIA, + lineHeight: '20px', + '@media (max-width:600px)': { + fontSize: 14, + lineHeight: '17px', + }, + }, + caption: { + color: BLACK, + fontSize: 12, + fontWeight: 400, + lineHeight: '15px', + fontFamily: FONT_FAMILY_SPEZIA, + letterSpacing: '0.25px', + '@media (max-width:600px)': { + fontSize: 10, + lineHeight: '12px', + }, + }, + button: { + fontSize: 16, + fontWeight: 500, + fontFamily: FONT_FAMILY_SPEZIA_MONO, + lineHeight: '20px', + textTransform: 'uppercase', + '@media (max-width:600px)': { + fontSize: 14, + lineHeight: '17px', + }, + }, + overline1: { + color: BLACK, + fontSize: 14, + fontWeight: 500, + fontFamily: FONT_FAMILY_SPEZIA_MONO, + lineHeight: '20px', + textTransform: 'uppercase', + '@media (max-width:600px)': { + fontSize: 10, + lineHeight: '12px', + }, + }, + overline2: { + color: BLACK, + fontSize: 12, + fontWeight: 500, + fontFamily: FONT_FAMILY_SPEZIA_MONO, + lineHeight: '20px', + textTransform: 'uppercase', + '@media (max-width:600px)': { + fontSize: 10, + lineHeight: '12px', + }, + }, + metric1: { + color: BLACK, + fontSize: 32, + fontWeight: 400, + fontFamily: FONT_FAMILY_SPEZIA, + lineHeight: '26px', + '@media (max-width:600px)': { + fontSize: 10, + lineHeight: '12px', + }, + }, + metric2: { + color: BLACK, + fontSize: 22, + fontWeight: 400, + fontFamily: FONT_FAMILY_SPEZIA, + lineHeight: '26px', + '@media (max-width:600px)': { + fontSize: 10, + lineHeight: '12px', + }, + }, + axisTitle: { + color: BLACK, + fontSize: 10, + fontWeight: 500, + fontFamily: FONT_FAMILY_SPEZIA_MONO, + lineHeight: '14px', + '@media (max-width:600px)': { + fontSize: 10, + lineHeight: '12px', + }, + }, + axisLabel: { + color: BLACK, + fontSize: 8, + fontWeight: 500, + fontFamily: FONT_FAMILY_SPEZIA, + lineHeight: '8px', + '@media (max-width:600px)': { + fontSize: 10, + lineHeight: '12px', + }, + }, + }; + +const themeV3FontStyles = { + fallbacks: [ + // -- Spezia -- + { + '@font-face': { + fontFamily: 'Spezia', + fontStyle: 'normal', + fontWeight: 400, + src: `url(${SpeziaRegular}) format('truetype')`, + }, + }, + { + '@font-face': { + fontFamily: 'Spezia', + fontStyle: 'normal', + fontWeight: 500, + src: `url(${SpeziaMedium}) format('truetype')`, + }, + }, + { + '@font-face': { + fontFamily: 'SpeziaMono', + fontStyle: 'normal', + fontWeight: 500, + src: `url(${SpeziaMonoMedium}) format('truetype')`, + }, + }, + ], +}; + +export const muiThemeV3Light = createTheme({ + palette: { + primary: { + ...PALETTE_COLOR_OPTIONS_PLACEHOLDER_TOKENS, + main: NEURAL_BLUE, + shades: NEURAL_BLUE_SHADES, + container: NEURAL_BLUE_SHADES.W80, + onContainer: MIDNIGHT_BLUE, + }, + secondary: { + ...PALETTE_COLOR_OPTIONS_PLACEHOLDER_TOKENS, + main: CARIBBEAN_GREEN, + shades: CARIBBEAN_GREEN_SHADES, + container: CARIBBEAN_GREEN_SHADES.W80, + onContainer: DEEP_FOREST_GREEN, + }, + tertiary: { + ...PALETTE_COLOR_OPTIONS_PLACEHOLDER_TOKENS, + main: YELLOW, + shades: YELLOW_SHADES, + container: YELLOW_SHADES.W80, + onContainer: DARK_BRONZE, + }, + quarternary: { + ...PALETTE_COLOR_OPTIONS_PLACEHOLDER_TOKENS, + main: ORANGE, + shades: ORANGE_SHADES, + }, + surface: { + onSurface: CHARCOAL_NAVY, + onSurfaceAccent: DODGER_BLUE, + onSurfaceSubdued: SEA_LION, + surface: SURFACE_SHADE_2, + surfaceContainer: SURFACE_CONTAINER_SHADE_3, + surfaceContainerHigh: SURFACE_CONTAINER_SHADE_4, + surfaceContainerHighest: SURFACE_CONTAINER_SHADE_5, + surfaceContainerLow: SURFACE_CONTAINER_SHADE_2, + surfaceContainerLowest: SURFACE_CONTAINER_SHADE_1, + surfaceSubdued: SURFACE_SHADE_3, + surfaceSubduedContainer: SURFACE_SHADE_2, + surfaceAccent: SURFACE_SHADE_1, + }, + error: { + ...PALETTE_COLOR_OPTIONS_PLACEHOLDER_TOKENS, + main: CRIMSON_FLAME, + onMain: WHITE, + container: BLUSH_PINK, + onContainer: DEEP_MAROON, + }, + success: { + ...PALETTE_COLOR_OPTIONS_PLACEHOLDER_TOKENS, + main: LIME_GREEN, + onMain: WHITE, + container: MINT_CREAM, + onContainer: FOREST_GREEN, + }, + outline: { + ...PALETTE_COLOR_OPTIONS_PLACEHOLDER_TOKENS, + main: STORM_GRAY, + subdued: LIGHT_SLATE_GRAY, + }, + scrim: { + ...PALETTE_COLOR_OPTIONS_PLACEHOLDER_TOKENS, + main: BLACK, + }, + shadow: { + ...PALETTE_COLOR_OPTIONS_PLACEHOLDER_TOKENS, + main: BLACK, + }, + }, + spacing: 8, + typography: themeV3Typography, + components: { + MuiCssBaseline: { + styleOverrides: themeV3FontStyles, + }, + }, +}); + +export const themeV3LightName = 'muiThemeV3Light'; + +const DEFAULT_SURFACE_OPTIONS = { + onSurface: CHARCOAL_NAVY, + onSurfaceAccent: DODGER_BLUE, + onSurfaceSubdued: SEA_LION, + surface: SURFACE_SHADE_2, + surfaceContainer: SURFACE_CONTAINER_SHADE_3, + surfaceContainerHigh: SURFACE_CONTAINER_SHADE_4, + surfaceContainerHighest: SURFACE_CONTAINER_SHADE_5, + surfaceContainerLow: SURFACE_CONTAINER_SHADE_2, + surfaceContainerLowest: SURFACE_CONTAINER_SHADE_1, + surfaceSubdued: SURFACE_SHADE_3, + surfaceAccent: SURFACE_SHADE_1, +}; + +export const muiThemeV3Dark = createTheme({ + palette: { + primary: { + ...PALETTE_COLOR_OPTIONS_PLACEHOLDER_TOKENS, + main: NEURAL_BLUE, + shades: NEURAL_BLUE_SHADES, + container: NEURAL_BLUE_SHADES.B99, + onContainer: NEURAL_BLUE_SHADES.W80, + }, + secondary: { + ...PALETTE_COLOR_OPTIONS_PLACEHOLDER_TOKENS, + main: CARIBBEAN_GREEN, + shades: CARIBBEAN_GREEN_SHADES, + container: CARIBBEAN_GREEN_SHADES.B99, + onContainer: CARIBBEAN_GREEN_SHADES.W80, + }, + tertiary: { + ...PALETTE_COLOR_OPTIONS_PLACEHOLDER_TOKENS, + main: YELLOW, + shades: YELLOW_SHADES, + container: YELLOW_SHADES.B99, + onContainer: YELLOW_SHADES.W90, + }, + quarternary: { + ...PALETTE_COLOR_OPTIONS_PLACEHOLDER_TOKENS, + main: ORANGE, + shades: ORANGE_SHADES, + }, + surface: { + ...DEFAULT_SURFACE_OPTIONS, + onSurface: LAVENDER_GRAY, + onSurfaceAccent: DODGER_BLUE, + onSurfaceSubdued: ASH_GRAY, + surface: DARK_SURFACE_SHADE_1, + surfaceContainer: DARK_SURFACE_CONTAINER_SHADE_3, + surfaceContainerHigh: DARK_SURFACE_CONTAINER_SHADE_4, + surfaceContainerHighest: DARK_SURFACE_CONTAINER_SHADE_5, + surfaceContainerLow: DARK_SURFACE_CONTAINER_SHADE_2, + surfaceContainerLowest: DARK_SURFACE_CONTAINER_SHADE_1, + surfaceSubdued: DARK_SURFACE_SHADE_3, + surfaceSubduedContainer: SURFACE_SHADE_2, + surfaceAccent: DARK_SURFACE_SHADE_2, + }, + error: { + ...PALETTE_COLOR_OPTIONS_PLACEHOLDER_TOKENS, + main: CRIMSON_FLAME, + onMain: WHITE, + container: RED_SHADES.B90, + onContainer: RED_SHADES.W90, + }, + success: { + ...PALETTE_COLOR_OPTIONS_PLACEHOLDER_TOKENS, + main: LIME_GREEN, + onMain: WHITE, + container: VERY_DARK_GREEN, + onContainer: MINT_CREAM, + }, + outline: { + ...PALETTE_COLOR_OPTIONS_PLACEHOLDER_TOKENS, + main: STORM_GRAY, + subdued: OUTER_SPACE_GRAY, + }, + scrim: { + ...PALETTE_COLOR_OPTIONS_PLACEHOLDER_TOKENS, + main: BLACK, + }, + shadow: { + ...PALETTE_COLOR_OPTIONS_PLACEHOLDER_TOKENS, + main: BLACK, + }, + }, + spacing: 8, + typography: themeV3Typography, + components: { + MuiCssBaseline: { + styleOverrides: themeV3FontStyles, + }, + }, +}); + +export const themeV3DarkName = 'muiThemeV3Dark'; diff --git a/ui/src/lib/components/PageFooter/PageFooter.component.tsx b/ui/src/lib/components/PageFooter/PageFooter.component.tsx new file mode 100644 index 00000000..1efb29f4 --- /dev/null +++ b/ui/src/lib/components/PageFooter/PageFooter.component.tsx @@ -0,0 +1,33 @@ +'use client'; +import { Box, Link, Typography } from '@mui/material'; +import React from 'react'; + +import { NeuralMagicTitleV2 } from '@assets/icons'; + +export const Component = () => { + return ( + + + + Got questions? + + alert('Not implemented')} underline="none" ml={1}> + + Send us a message on Slack + + + + + + + + ); +}; diff --git a/ui/src/lib/components/PageFooter/index.tsx b/ui/src/lib/components/PageFooter/index.tsx new file mode 100644 index 00000000..0d91795f --- /dev/null +++ b/ui/src/lib/components/PageFooter/index.tsx @@ -0,0 +1 @@ +export { Component as PageFooter } from './PageFooter.component'; diff --git a/ui/src/lib/layouts/FullPageWithHeaderAndFooterLayout.tsx b/ui/src/lib/layouts/FullPageWithHeaderAndFooterLayout.tsx new file mode 100644 index 00000000..31037d69 --- /dev/null +++ b/ui/src/lib/layouts/FullPageWithHeaderAndFooterLayout.tsx @@ -0,0 +1,18 @@ +import { Box, BoxProps } from '@mui/material'; +import { FC, ReactNode } from 'react'; + +export interface Props extends BoxProps { + body: ReactNode; + footer: ReactNode; + header: ReactNode; +} + +export const FullPageWithHeaderAndFooterLayout: FC = ({ body, footer, header, ...rest }) => { + return ( + + {header} + {body} + {footer} + + ); +}; diff --git a/ui/src/lib/layouts/helpers/ContentCenterer.tsx b/ui/src/lib/layouts/helpers/ContentCenterer.tsx new file mode 100644 index 00000000..39d3b286 --- /dev/null +++ b/ui/src/lib/layouts/helpers/ContentCenterer.tsx @@ -0,0 +1,44 @@ +import { ReactNode } from 'react'; + +import { useCurrentBreakpoint } from './useCurrentBreakpoint'; + +type HasChildren = { + children: ReactNode; +}; + +const getPaddingForBreakpoint = (breakpoint: string) => { + switch (breakpoint) { + case 'xs': + return '16px'; + case 'sm': + return '32px'; + case 'md': + return '32px'; + case 'lg': + return '32px'; + case 'xl': + return '32px'; + default: + return '32px'; + } +}; + +export const ContentCenterer = ({ children }: HasChildren) => { + const breakpoint = useCurrentBreakpoint(); + const padding = getPaddingForBreakpoint(breakpoint); + const maxWidth = breakpoint === 'sm' ? '600px' : '1440px'; + return ( +
+ {children} +
+ ); +}; diff --git a/ui/src/lib/layouts/helpers/useCurrentBreakpoint.ts b/ui/src/lib/layouts/helpers/useCurrentBreakpoint.ts new file mode 100644 index 00000000..466d619e --- /dev/null +++ b/ui/src/lib/layouts/helpers/useCurrentBreakpoint.ts @@ -0,0 +1,27 @@ +import { useMediaQuery, useTheme } from '@mui/material'; + +export function useCurrentBreakpoint() { + const theme = useTheme(); + const isXs = useMediaQuery(theme.breakpoints.only('xs')); + const isSm = useMediaQuery(theme.breakpoints.only('sm')); + const isMd = useMediaQuery(theme.breakpoints.only('md')); + const isLg = useMediaQuery(theme.breakpoints.only('lg')); + const isXl = useMediaQuery(theme.breakpoints.only('xl')); + + if (isXs) { + return 'xs'; + } + if (isSm) { + return 'sm'; + } + if (isMd) { + return 'md'; + } + if (isLg) { + return 'lg'; + } + if (isXl) { + return 'xl'; + } + return 'xl'; +} diff --git a/ui/src/lib/store/index.ts b/ui/src/lib/store/index.ts new file mode 100644 index 00000000..c1671d75 --- /dev/null +++ b/ui/src/lib/store/index.ts @@ -0,0 +1,22 @@ +import { configureStore, createSlice, PayloadAction } from '@reduxjs/toolkit'; + +const defaultSlice = createSlice({ + name: 'model.state', + initialState: { model: 'meta-llama/Llama-2-7b' }, + reducers: { + setDefaultData: (state, action: PayloadAction) => { + return { ...state, model: action.payload }; + }, + }, +}); + +export const { setDefaultData } = defaultSlice.actions; + +export const store = configureStore({ + reducer: { + default: defaultSlice.reducer, + }, +}); + +export type RootState = ReturnType; +export type AppDispatch = typeof store.dispatch; diff --git a/ui/src/lib/store/provider.tsx b/ui/src/lib/store/provider.tsx new file mode 100644 index 00000000..780c7107 --- /dev/null +++ b/ui/src/lib/store/provider.tsx @@ -0,0 +1,8 @@ +import { ReactNode } from 'react'; +import { Provider } from 'react-redux'; + +import { store } from './index'; + +export function ReduxProvider({ children }: { children: ReactNode }) { + return {children}; +} diff --git a/ui/src/lib/utils/ColorHelper.ts b/ui/src/lib/utils/ColorHelper.ts new file mode 100644 index 00000000..5ffc7be5 --- /dev/null +++ b/ui/src/lib/utils/ColorHelper.ts @@ -0,0 +1,39 @@ +function hexToRGB(hex: string) { + const r = parseInt(hex.slice(1, 3), 16); + const g = parseInt(hex.slice(3, 5), 16); + const b = parseInt(hex.slice(5, 7), 16); + return { r, g, b }; +} + +function rgbToHex(r: number, g: number, b: number) { + return '#' + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1); +} + +function mixColors(colorA: string, colorB: string, step: number) { + const colorARGB = hexToRGB(colorA); + const colorBRGB = hexToRGB(colorB); + + const r = Math.round(colorARGB.r * (1 - step) + colorBRGB.r * step); + const g = Math.round(colorARGB.g * (1 - step) + colorBRGB.g * step); + const b = Math.round(colorARGB.b * (1 - step) + colorBRGB.b * step); + + return rgbToHex(r, g, b); +} + +const NEURAL_WHITE = '#FFFFFF'; +const NEURAL_BLACK = '#0F161F'; + +export const generateShades = (color: string) => { + const shades: { [key: string]: string } = { '0': color }; + for (let i = 1; i <= 9; i++) { + const lightened = mixColors(color, NEURAL_WHITE, i * 0.1); + shades[`W${i * 10}`] = lightened; + const darkened = mixColors(color, NEURAL_BLACK, i * 0.1); + shades[`B${i * 10}`] = darkened; + } + shades.W99 = mixColors(color, NEURAL_WHITE, 0.99); + shades.W100 = mixColors(color, NEURAL_WHITE, 1); + shades.B99 = mixColors(color, NEURAL_BLACK, 0.99); + shades.B100 = mixColors(color, NEURAL_BLACK, 1); + return shades; +}; diff --git a/ui/src/lib/utils/Colors.ts b/ui/src/lib/utils/Colors.ts new file mode 100644 index 00000000..3a703865 --- /dev/null +++ b/ui/src/lib/utils/Colors.ts @@ -0,0 +1,67 @@ +import { generateShades } from './ColorHelper'; + +export const WHITE = '#FFFFFF'; +export const BLACK = '#000000'; + +export const NEURAL_BLUE = '#2A8EFD'; +export const NEURAL_BLUE_SHADES = generateShades(NEURAL_BLUE); + +export const CARIBBEAN_GREEN = '#03C883'; +export const CARIBBEAN_GREEN_SHADES = generateShades(CARIBBEAN_GREEN); + +export const YELLOW = '#FFC93F'; +export const YELLOW_SHADES = generateShades(YELLOW); + +export const ORANGE = '#FF8228'; +export const ORANGE_SHADES = generateShades(ORANGE); + +export const RED = '#FF2929'; +export const RED_SHADES = generateShades(RED); + +export const SURFACE_SHADE_1 = '#FBFCFF'; +export const SURFACE_SHADE_2 = '#F9F9FF'; +export const SURFACE_SHADE_3 = '#D9DAE0'; + +export const LAVENDER_GRAY = '#E1E2E9'; + +export const SURFACE_CONTAINER_SHADE_1 = '#FFFFFF'; +export const SURFACE_CONTAINER_SHADE_2 = '#F3F3FA'; +export const SURFACE_CONTAINER_SHADE_3 = '#EDEDF4'; +export const SURFACE_CONTAINER_SHADE_4 = '#E7E8EE'; +export const SURFACE_CONTAINER_SHADE_5 = LAVENDER_GRAY; + +export const CHARCOAL_NAVY = '#0F161F'; +export const DODGER_BLUE = '#2A8EFD'; +export const SEA_LION = '#7F8795'; +export const MIDNIGHT_BLUE = '#001B3C'; +export const DEEP_FOREST_GREEN = '#002112'; +export const DARK_BRONZE = '#251A00'; + +export const CRIMSON_FLAME = '#C32427'; +export const BLUSH_PINK = '#FFCACA'; +export const DEEP_MAROON = '#4B1B22'; +export const LIME_GREEN = '#6AAA0F'; +export const MINT_CREAM = '#DFECCD'; +export const FOREST_GREEN = '#2F5000'; + +export const STORM_GRAY = '#74777F'; +export const LIGHT_SLATE_GRAY = '#C4C6CF'; + +export const DARK_SURFACE_SHADE_1 = CHARCOAL_NAVY; +export const DARK_SURFACE_SHADE_2 = '#37393E'; +export const DARK_SURFACE_SHADE_3 = '#111318'; + +export const DARK_SURFACE_CONTAINER_SHADE_1 = '#0C0E13'; +export const DARK_SURFACE_CONTAINER_SHADE_2 = '#191C20'; +export const DARK_SURFACE_CONTAINER_SHADE_3 = '#1D2024'; +export const DARK_SURFACE_CONTAINER_SHADE_4 = '#282A2F'; +export const DARK_SURFACE_CONTAINER_SHADE_5 = '#33353A'; + +export const ASH_GRAY = '#B5B7BE'; +export const DEEP_TEAL = '#0D3A33'; +export const OLIVE_DRAB = '#574C29'; +export const LIGHT_SKY_BLUE = '#D4E8FF'; +export const LIGHT_AQUAMARINE = '#CDF4E6'; +export const IVORY = '#FFFAEC'; +export const VERY_DARK_GREEN = '#192901'; +export const OUTER_SPACE_GRAY = '#42464E'; diff --git a/ui/src/lib/utils/SvgContainer.tsx b/ui/src/lib/utils/SvgContainer.tsx new file mode 100644 index 00000000..c0ef502d --- /dev/null +++ b/ui/src/lib/utils/SvgContainer.tsx @@ -0,0 +1,7 @@ +import { styled } from '@mui/material'; + +export const SvgContainer = styled('span')(({ color }) => ({ + path: { + fill: color, + }, +})); diff --git a/ui/src/tests/integration/page.test.tsx b/ui/src/tests/integration/page.test.tsx index 37c6a7e0..caa2aab4 100644 --- a/ui/src/tests/integration/page.test.tsx +++ b/ui/src/tests/integration/page.test.tsx @@ -1,4 +1,5 @@ import { render } from '@testing-library/react'; + import Home from '@/app/page'; describe('Home Page', () => { diff --git a/ui/src/tests/unit/layout.test.tsx b/ui/src/tests/unit/layout.test.tsx index ecf81b20..f2a85d28 100644 --- a/ui/src/tests/unit/layout.test.tsx +++ b/ui/src/tests/unit/layout.test.tsx @@ -1,4 +1,5 @@ import { render } from '@testing-library/react'; + import RootLayout from '@/app/layout'; describe('RootLayout', () => { diff --git a/ui/svg.d.ts b/ui/svg.d.ts new file mode 100644 index 00000000..834faa62 --- /dev/null +++ b/ui/svg.d.ts @@ -0,0 +1,7 @@ +declare module '*.svg' { + import React from 'react'; + const ReactComponent: React.FunctionComponent>; + export default ReactComponent; + const src: string; + export const src; +} diff --git a/ui/tsconfig.base.json b/ui/tsconfig.base.json index ee45ceb1..549fbc5f 100644 --- a/ui/tsconfig.base.json +++ b/ui/tsconfig.base.json @@ -13,7 +13,8 @@ "moduleResolution": "node", "baseUrl": ".", "paths": { - "@/*": ["src/*"] + "@/*": ["src/*"], + "@assets/*": ["src/app/assets/*"] }, "resolveJsonModule": true, "esModuleInterop": true, From 699eb9b51d60d3808324acd1f663816967870476 Mon Sep 17 00:00:00 2001 From: dalthecow Date: Mon, 19 May 2025 10:07:47 -0400 Subject: [PATCH 25/80] add test mocks --- ui/__mocks__/fileMock.js | 1 + ui/__mocks__/styleMock.js | 1 + ui/__mocks__/svg.js | 3 +++ ui/src/app/theme.ts | 14 +++++++------- 4 files changed, 12 insertions(+), 7 deletions(-) create mode 100644 ui/__mocks__/fileMock.js create mode 100644 ui/__mocks__/styleMock.js create mode 100644 ui/__mocks__/svg.js diff --git a/ui/__mocks__/fileMock.js b/ui/__mocks__/fileMock.js new file mode 100644 index 00000000..86059f36 --- /dev/null +++ b/ui/__mocks__/fileMock.js @@ -0,0 +1 @@ +module.exports = 'test-file-stub'; diff --git a/ui/__mocks__/styleMock.js b/ui/__mocks__/styleMock.js new file mode 100644 index 00000000..f053ebf7 --- /dev/null +++ b/ui/__mocks__/styleMock.js @@ -0,0 +1 @@ +module.exports = {}; diff --git a/ui/__mocks__/svg.js b/ui/__mocks__/svg.js new file mode 100644 index 00000000..516109b1 --- /dev/null +++ b/ui/__mocks__/svg.js @@ -0,0 +1,3 @@ +export default 'svg'; +export const ReactComponent = 'div'; +//This was from svgr docs: https://react-svgr.com/docs/jest/ diff --git a/ui/src/app/theme.ts b/ui/src/app/theme.ts index c5eb99ad..60b6b059 100644 --- a/ui/src/app/theme.ts +++ b/ui/src/app/theme.ts @@ -1,13 +1,6 @@ import { Palette, createTheme } from '@mui/material/styles'; import { TypographyOptions, TypographyStyleOptions } from '@mui/material/styles/createTypography'; -// Spezia -import SpeziaMedium from '../app/assets/fonts/spezia/Spezia-Medium.otf'; -import SpeziaRegular from '../app/assets/fonts/spezia/Spezia-Regular.otf'; -import SpeziaMonoMedium from '../app/assets/fonts/spezia/SpeziaMono-Medium.otf'; -export const FONT_FAMILY_SPEZIA = 'Spezia, sans-serif'; -export const FONT_FAMILY_SPEZIA_MONO = 'Spezia Mono, sans-serif'; - import { BLACK, WHITE, @@ -56,6 +49,13 @@ import { OUTER_SPACE_GRAY, } from '../lib/utils/Colors'; +// Spezia +import SpeziaMedium from './assets/fonts/spezia/Spezia-Medium.otf'; +import SpeziaRegular from './assets/fonts/spezia/Spezia-Regular.otf'; +import SpeziaMonoMedium from './assets/fonts/spezia/SpeziaMono-Medium.otf'; +export const FONT_FAMILY_SPEZIA = 'Spezia, sans-serif'; +export const FONT_FAMILY_SPEZIA_MONO = 'Spezia Mono, sans-serif'; + // Update the Typography's variant prop options declare module '@mui/material/Typography' { interface TypographyPropsVariantOverrides { From 41345f4e811af25c61cb8bf263fe02e63ae3aceb Mon Sep 17 00:00:00 2001 From: dalthecow Date: Mon, 19 May 2025 10:12:24 -0400 Subject: [PATCH 26/80] move svg typing --- ui/{ => src/types}/svg.d.ts | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename ui/{ => src/types}/svg.d.ts (100%) diff --git a/ui/svg.d.ts b/ui/src/types/svg.d.ts similarity index 100% rename from ui/svg.d.ts rename to ui/src/types/svg.d.ts From 0e688da06ea85c3b86c0a82e73027194845b3f90 Mon Sep 17 00:00:00 2001 From: dalthecow Date: Mon, 19 May 2025 12:16:44 -0400 Subject: [PATCH 27/80] implement guidellm ui app --- ui/.eslintrc.json | 11 +- ui/__mocks__/@nivo/bar.tsx | 2 + ui/__mocks__/@nivo/core.tsx | 1 + ui/__mocks__/@nivo/line.tsx | 1 + ui/jest.config.js | 3 + ui/jest.setup.ts | 16 + ui/package-lock.json | 616 ++++++++- ui/package.json | 7 + ui/src/app/layout.tsx | 24 + ui/src/app/not-found.tsx | 4 + ui/src/app/page.tsx | 23 +- .../lib/components/Badge/Badge.component.tsx | 8 + .../lib/components/Badge/Badge.interfaces.ts | 3 + ui/src/lib/components/Badge/Badge.styles.tsx | 11 + ui/src/lib/components/Badge/index.tsx | 2 + .../BlockHeader/BlockHeader.component.tsx | 26 + .../BlockHeader/BlockHeader.interfaces.ts | 4 + .../BlockHeader/BlockHeader.styles.tsx | 8 + ui/src/lib/components/BlockHeader/index.tsx | 2 + .../Carousel/Carousel.component.tsx | 48 + .../Carousel/Carousel.interfaces.ts | 4 + .../components/Carousel/Carousel.styles.tsx | 11 + ui/src/lib/components/Carousel/index.tsx | 2 + .../Charts/Combined/Combined.component.tsx | 153 +++ .../Charts/Combined/Combined.interfaces.ts | 11 + .../CustomBars/CustomBars.interfaces.ts | 7 + .../Combined/components/CustomBars/index.tsx | 50 + .../CustomGrid/CustomGrid.interfaces.ts | 10 + .../Combined/components/CustomGrid/index.tsx | 72 + .../CustomLegendLayer.interfaces.ts | 6 + .../components/CustomLegendLayer/index.tsx | 42 + .../CustomTick/CustomTick.interfaces.ts | 8 + .../Combined/components/CustomTick/index.tsx | 58 + .../DottedLines/DottedLines.interfaces.ts | 9 + .../Combined/components/DottedLines/index.tsx | 33 + .../lib/components/Charts/Combined/index.tsx | 2 + .../DashedLine/DashedLine.component.tsx | 128 ++ .../DashedLine/DashedLine.interfaces.ts | 16 + .../CustomLegendLayer.interfaces.ts | 5 + .../components/CustomLegendLayer/index.tsx | 62 + .../DashedSolidLine.interfaces.ts | 7 + .../components/DashedSolidLine/index.tsx | 76 ++ .../components/Charts/DashedLine/helpers.ts | 76 ++ .../components/Charts/DashedLine/index.tsx | 2 + .../MetricLine/MetricLine.component.tsx | 123 ++ .../Charts/MetricLine/MetricLine.interface.ts | 15 + .../CustomAxes/CustomAxes.interfaces.ts | 6 + .../components/CustomAxes/index.tsx | 23 + .../CustomGrid/CustomGrid.interfaces.ts | 10 + .../components/CustomGrid/index.tsx | 72 + .../CustomTick/CustomTick.interfaces.ts | 8 + .../components/CustomTick/index.tsx | 65 + .../ThresholdBar/ThresholdBar.interfaces.ts | 9 + .../components/ThresholdBar/index.tsx | 53 + .../components/Charts/MetricLine/index.tsx | 3 + .../MiniCombined/MiniCombined.component.tsx | 131 ++ .../MiniCombined/MiniCombined.interfaces.ts | 15 + .../components/ContainerSizeWrapper/index.tsx | 39 + .../CustomBars/CustomBars.interfaces.ts | 7 + .../components/CustomBars/index.tsx | 87 ++ .../CustomGrid/CustomGrid.interfaces.ts | 10 + .../components/CustomGrid/index.tsx | 72 + .../CustomTick/CustomTick.interfaces.ts | 8 + .../components/CustomTick/index.tsx | 60 + .../DottedLines/DottedLines.interfaces.ts | 9 + .../components/DottedLines/index.tsx | 31 + .../components/Charts/MiniCombined/index.tsx | 2 + .../components/Charts/common/interfaces.ts | 34 + .../Charts/common/useChartScales.ts | 50 + .../Charts/common/useLineColors.tsx | 14 + .../DataPanel/DataPanel.component.tsx | 26 + .../DataPanel/DataPanel.interfaces.ts | 7 + .../components/DataPanel/DataPanel.styles.tsx | 35 + ui/src/lib/components/DataPanel/index.tsx | 2 + .../DistributionPercentiles.component.tsx | 22 + .../DistributionPercentiles.interfaces.tsx | 10 + .../DistributionPercentiles.styles.tsx | 8 + .../DistributionPercentiles/index.tsx | 5 + .../GraphTitle/GraphTitle.component.tsx | 12 + .../GraphTitle/GraphTitle.interfaces.ts | 3 + ui/src/lib/components/GraphTitle/index.tsx | 2 + .../lib/components/Input/Input.component.tsx | 60 + .../lib/components/Input/Input.interfaces.ts | 23 + ui/src/lib/components/Input/Input.styles.tsx | 60 + ui/src/lib/components/Input/index.tsx | 2 + .../MeanMetricSummary.component.tsx | 22 + .../MeanMetricSummary.interfaces.tsx | 5 + .../components/MeanMetricSummary/index.tsx | 2 + .../MetricsContainer.component.tsx | 48 + .../MetricsContainer.interfaces.ts | 8 + .../MetricsContainer.styles.tsx | 33 + .../lib/components/MetricsContainer/index.tsx | 2 + .../MetricSummary.interfaces.ts | 3 + .../MetricsSummary.component.tsx | 303 +++++ .../MetricsSummary/MetricsSummary.styles.tsx | 213 +++ .../MetricValue/MetricValue.component.tsx | 27 + .../MetricValue/MetricValue.interfaces.ts | 8 + .../components/MetricValue/index.tsx | 2 + .../lib/components/MetricsSummary/index.tsx | 1 + .../components/MetricsSummary/useSummary.ts | 118 ++ .../PageHeader/PageHeader.component.tsx | 101 ++ .../PageHeader/PageHeader.interfaces.ts | 3 + .../PageHeader/PageHeader.styles.tsx | 19 + ui/src/lib/components/PageHeader/index.tsx | 1 + .../RequestOverTime.component.tsx | 53 + .../RequestOverTime.interfaces.ts | 9 + .../lib/components/RequestOverTime/index.tsx | 2 + .../RowContainer/RowContainer.component.tsx | 18 + .../RowContainer/RowContainer.interfaces.tsx | 6 + ui/src/lib/components/RowContainer/index.tsx | 2 + .../components/Section/Section.component.tsx | 19 + .../components/Section/Section.interfaces.ts | 4 + .../lib/components/Section/Section.styles.tsx | 10 + ui/src/lib/components/Section/index.tsx | 2 + .../SectionContainer.component.tsx | 65 + .../SectionContainer.interfaces.ts | 5 + .../SectionContainer.styles.tsx | 21 + .../lib/components/SectionContainer/index.tsx | 2 + .../SpecBadge/SpecBadge.component.tsx | 30 + .../SpecBadge/SpecBadge.interfaces.ts | 12 + .../components/SpecBadge/SpecBadge.styles.tsx | 21 + ui/src/lib/components/SpecBadge/index.tsx | 2 + .../TokenLength/TokenLength.component.tsx | 47 + .../TokenLength/TokenLength.interfaces.ts | 6 + ui/src/lib/components/TokenLength/index.tsx | 2 + .../WorkloadDetails.component.tsx | 106 ++ .../lib/components/WorkloadDetails/index.tsx | 1 + .../WorkloadMetricSummary.interfaces.tsx | 0 .../WorkloadMetrics.component.tsx | 127 ++ .../WorkloadMetrics.styles.tsx | 6 + .../lib/components/WorkloadMetrics/index.tsx | 1 + ui/src/lib/hooks/useColor.ts | 19 + ui/src/lib/store/benchmarksWindowData.ts | 1154 +++++++++++++++++ ui/src/lib/store/index.ts | 33 +- ui/src/lib/store/mockData.ts | 191 +++ ui/src/lib/store/runInfoWindowData.ts | 11 + .../store/slices/benchmarks/benchmarks.api.ts | 82 ++ .../slices/benchmarks/benchmarks.constants.ts | 7 + .../benchmarks/benchmarks.interfaces.ts | 44 + .../slices/benchmarks/benchmarks.selectors.ts | 149 +++ .../slices/benchmarks/benchmarks.slice.ts | 31 + ui/src/lib/store/slices/benchmarks/index.ts | 4 + .../store/slices/metrics/metrics.constants.ts | 10 + .../slices/metrics/metrics.interfaces.ts | 13 + .../store/slices/metrics/metrics.selectors.ts | 3 + .../lib/store/slices/metrics/metrics.slice.ts | 20 + ui/src/lib/store/slices/runInfo/index.ts | 4 + .../lib/store/slices/runInfo/runInfo.api.ts | 21 + .../store/slices/runInfo/runInfo.constants.ts | 3 + .../slices/runInfo/runInfo.interfaces.ts | 13 + .../store/slices/runInfo/runInfo.selectors.ts | 3 + .../lib/store/slices/runInfo/runInfo.slice.ts | 31 + ui/src/lib/store/slices/slo/slo.constants.ts | 22 + ui/src/lib/store/slices/slo/slo.interfaces.ts | 18 + ui/src/lib/store/slices/slo/slo.selectors.ts | 3 + ui/src/lib/store/slices/slo/slo.slice.ts | 44 + .../lib/store/slices/workloadDetails/index.ts | 4 + .../workloadDetails/workloadDetails.api.ts | 21 + .../workloadDetails.constants.ts | 58 + .../workloadDetails.interfaces.ts | 49 + .../workloadDetails.selectors.ts | 71 + .../workloadDetails/workloadDetails.slice.ts | 34 + ui/src/lib/store/workloadDetailsWindowData.ts | 167 +++ ui/src/lib/utils/helpers.ts | 67 + ui/src/lib/utils/interpolation.ts | 67 + ui/src/tests/test.helper.tsx | 17 + .../Charts/DashedLine/helpers.test.ts | 86 ++ ui/src/tests/unit/store/slices/slo.test.tsx | 19 + ui/src/tests/unit/utils/interpolation.test.ts | 50 + ui/src/types/declaration.d.ts | 11 + 170 files changed, 7029 insertions(+), 26 deletions(-) create mode 100644 ui/__mocks__/@nivo/bar.tsx create mode 100644 ui/__mocks__/@nivo/core.tsx create mode 100644 ui/__mocks__/@nivo/line.tsx create mode 100644 ui/src/app/not-found.tsx create mode 100644 ui/src/lib/components/Badge/Badge.component.tsx create mode 100644 ui/src/lib/components/Badge/Badge.interfaces.ts create mode 100644 ui/src/lib/components/Badge/Badge.styles.tsx create mode 100644 ui/src/lib/components/Badge/index.tsx create mode 100644 ui/src/lib/components/BlockHeader/BlockHeader.component.tsx create mode 100644 ui/src/lib/components/BlockHeader/BlockHeader.interfaces.ts create mode 100644 ui/src/lib/components/BlockHeader/BlockHeader.styles.tsx create mode 100644 ui/src/lib/components/BlockHeader/index.tsx create mode 100644 ui/src/lib/components/Carousel/Carousel.component.tsx create mode 100644 ui/src/lib/components/Carousel/Carousel.interfaces.ts create mode 100644 ui/src/lib/components/Carousel/Carousel.styles.tsx create mode 100644 ui/src/lib/components/Carousel/index.tsx create mode 100644 ui/src/lib/components/Charts/Combined/Combined.component.tsx create mode 100644 ui/src/lib/components/Charts/Combined/Combined.interfaces.ts create mode 100644 ui/src/lib/components/Charts/Combined/components/CustomBars/CustomBars.interfaces.ts create mode 100644 ui/src/lib/components/Charts/Combined/components/CustomBars/index.tsx create mode 100644 ui/src/lib/components/Charts/Combined/components/CustomGrid/CustomGrid.interfaces.ts create mode 100644 ui/src/lib/components/Charts/Combined/components/CustomGrid/index.tsx create mode 100644 ui/src/lib/components/Charts/Combined/components/CustomLegendLayer/CustomLegendLayer.interfaces.ts create mode 100644 ui/src/lib/components/Charts/Combined/components/CustomLegendLayer/index.tsx create mode 100644 ui/src/lib/components/Charts/Combined/components/CustomTick/CustomTick.interfaces.ts create mode 100644 ui/src/lib/components/Charts/Combined/components/CustomTick/index.tsx create mode 100644 ui/src/lib/components/Charts/Combined/components/DottedLines/DottedLines.interfaces.ts create mode 100644 ui/src/lib/components/Charts/Combined/components/DottedLines/index.tsx create mode 100644 ui/src/lib/components/Charts/Combined/index.tsx create mode 100644 ui/src/lib/components/Charts/DashedLine/DashedLine.component.tsx create mode 100644 ui/src/lib/components/Charts/DashedLine/DashedLine.interfaces.ts create mode 100644 ui/src/lib/components/Charts/DashedLine/components/CustomLegendLayer/CustomLegendLayer.interfaces.ts create mode 100644 ui/src/lib/components/Charts/DashedLine/components/CustomLegendLayer/index.tsx create mode 100644 ui/src/lib/components/Charts/DashedLine/components/DashedSolidLine/DashedSolidLine.interfaces.ts create mode 100644 ui/src/lib/components/Charts/DashedLine/components/DashedSolidLine/index.tsx create mode 100644 ui/src/lib/components/Charts/DashedLine/helpers.ts create mode 100644 ui/src/lib/components/Charts/DashedLine/index.tsx create mode 100644 ui/src/lib/components/Charts/MetricLine/MetricLine.component.tsx create mode 100644 ui/src/lib/components/Charts/MetricLine/MetricLine.interface.ts create mode 100644 ui/src/lib/components/Charts/MetricLine/components/CustomAxes/CustomAxes.interfaces.ts create mode 100644 ui/src/lib/components/Charts/MetricLine/components/CustomAxes/index.tsx create mode 100644 ui/src/lib/components/Charts/MetricLine/components/CustomGrid/CustomGrid.interfaces.ts create mode 100644 ui/src/lib/components/Charts/MetricLine/components/CustomGrid/index.tsx create mode 100644 ui/src/lib/components/Charts/MetricLine/components/CustomTick/CustomTick.interfaces.ts create mode 100644 ui/src/lib/components/Charts/MetricLine/components/CustomTick/index.tsx create mode 100644 ui/src/lib/components/Charts/MetricLine/components/ThresholdBar/ThresholdBar.interfaces.ts create mode 100644 ui/src/lib/components/Charts/MetricLine/components/ThresholdBar/index.tsx create mode 100644 ui/src/lib/components/Charts/MetricLine/index.tsx create mode 100644 ui/src/lib/components/Charts/MiniCombined/MiniCombined.component.tsx create mode 100644 ui/src/lib/components/Charts/MiniCombined/MiniCombined.interfaces.ts create mode 100644 ui/src/lib/components/Charts/MiniCombined/components/ContainerSizeWrapper/index.tsx create mode 100644 ui/src/lib/components/Charts/MiniCombined/components/CustomBars/CustomBars.interfaces.ts create mode 100644 ui/src/lib/components/Charts/MiniCombined/components/CustomBars/index.tsx create mode 100644 ui/src/lib/components/Charts/MiniCombined/components/CustomGrid/CustomGrid.interfaces.ts create mode 100644 ui/src/lib/components/Charts/MiniCombined/components/CustomGrid/index.tsx create mode 100644 ui/src/lib/components/Charts/MiniCombined/components/CustomTick/CustomTick.interfaces.ts create mode 100644 ui/src/lib/components/Charts/MiniCombined/components/CustomTick/index.tsx create mode 100644 ui/src/lib/components/Charts/MiniCombined/components/DottedLines/DottedLines.interfaces.ts create mode 100644 ui/src/lib/components/Charts/MiniCombined/components/DottedLines/index.tsx create mode 100644 ui/src/lib/components/Charts/MiniCombined/index.tsx create mode 100644 ui/src/lib/components/Charts/common/interfaces.ts create mode 100644 ui/src/lib/components/Charts/common/useChartScales.ts create mode 100644 ui/src/lib/components/Charts/common/useLineColors.tsx create mode 100644 ui/src/lib/components/DataPanel/DataPanel.component.tsx create mode 100644 ui/src/lib/components/DataPanel/DataPanel.interfaces.ts create mode 100644 ui/src/lib/components/DataPanel/DataPanel.styles.tsx create mode 100644 ui/src/lib/components/DataPanel/index.tsx create mode 100644 ui/src/lib/components/DistributionPercentiles/DistributionPercentiles.component.tsx create mode 100644 ui/src/lib/components/DistributionPercentiles/DistributionPercentiles.interfaces.tsx create mode 100644 ui/src/lib/components/DistributionPercentiles/DistributionPercentiles.styles.tsx create mode 100644 ui/src/lib/components/DistributionPercentiles/index.tsx create mode 100644 ui/src/lib/components/GraphTitle/GraphTitle.component.tsx create mode 100644 ui/src/lib/components/GraphTitle/GraphTitle.interfaces.ts create mode 100644 ui/src/lib/components/GraphTitle/index.tsx create mode 100644 ui/src/lib/components/Input/Input.component.tsx create mode 100644 ui/src/lib/components/Input/Input.interfaces.ts create mode 100644 ui/src/lib/components/Input/Input.styles.tsx create mode 100644 ui/src/lib/components/Input/index.tsx create mode 100644 ui/src/lib/components/MeanMetricSummary/MeanMetricSummary.component.tsx create mode 100644 ui/src/lib/components/MeanMetricSummary/MeanMetricSummary.interfaces.tsx create mode 100644 ui/src/lib/components/MeanMetricSummary/index.tsx create mode 100644 ui/src/lib/components/MetricsContainer/MetricsContainer.component.tsx create mode 100644 ui/src/lib/components/MetricsContainer/MetricsContainer.interfaces.ts create mode 100644 ui/src/lib/components/MetricsContainer/MetricsContainer.styles.tsx create mode 100644 ui/src/lib/components/MetricsContainer/index.tsx create mode 100644 ui/src/lib/components/MetricsSummary/MetricSummary.interfaces.ts create mode 100644 ui/src/lib/components/MetricsSummary/MetricsSummary.component.tsx create mode 100644 ui/src/lib/components/MetricsSummary/MetricsSummary.styles.tsx create mode 100644 ui/src/lib/components/MetricsSummary/components/MetricValue/MetricValue.component.tsx create mode 100644 ui/src/lib/components/MetricsSummary/components/MetricValue/MetricValue.interfaces.ts create mode 100644 ui/src/lib/components/MetricsSummary/components/MetricValue/index.tsx create mode 100644 ui/src/lib/components/MetricsSummary/index.tsx create mode 100644 ui/src/lib/components/MetricsSummary/useSummary.ts create mode 100644 ui/src/lib/components/PageHeader/PageHeader.component.tsx create mode 100644 ui/src/lib/components/PageHeader/PageHeader.interfaces.ts create mode 100644 ui/src/lib/components/PageHeader/PageHeader.styles.tsx create mode 100644 ui/src/lib/components/PageHeader/index.tsx create mode 100644 ui/src/lib/components/RequestOverTime/RequestOverTime.component.tsx create mode 100644 ui/src/lib/components/RequestOverTime/RequestOverTime.interfaces.ts create mode 100644 ui/src/lib/components/RequestOverTime/index.tsx create mode 100644 ui/src/lib/components/RowContainer/RowContainer.component.tsx create mode 100644 ui/src/lib/components/RowContainer/RowContainer.interfaces.tsx create mode 100644 ui/src/lib/components/RowContainer/index.tsx create mode 100644 ui/src/lib/components/Section/Section.component.tsx create mode 100644 ui/src/lib/components/Section/Section.interfaces.ts create mode 100644 ui/src/lib/components/Section/Section.styles.tsx create mode 100644 ui/src/lib/components/Section/index.tsx create mode 100644 ui/src/lib/components/SectionContainer/SectionContainer.component.tsx create mode 100644 ui/src/lib/components/SectionContainer/SectionContainer.interfaces.ts create mode 100644 ui/src/lib/components/SectionContainer/SectionContainer.styles.tsx create mode 100644 ui/src/lib/components/SectionContainer/index.tsx create mode 100644 ui/src/lib/components/SpecBadge/SpecBadge.component.tsx create mode 100644 ui/src/lib/components/SpecBadge/SpecBadge.interfaces.ts create mode 100644 ui/src/lib/components/SpecBadge/SpecBadge.styles.tsx create mode 100644 ui/src/lib/components/SpecBadge/index.tsx create mode 100644 ui/src/lib/components/TokenLength/TokenLength.component.tsx create mode 100644 ui/src/lib/components/TokenLength/TokenLength.interfaces.ts create mode 100644 ui/src/lib/components/TokenLength/index.tsx create mode 100644 ui/src/lib/components/WorkloadDetails/WorkloadDetails.component.tsx create mode 100644 ui/src/lib/components/WorkloadDetails/index.tsx create mode 100644 ui/src/lib/components/WorkloadMetrics/WorkloadMetricSummary.interfaces.tsx create mode 100644 ui/src/lib/components/WorkloadMetrics/WorkloadMetrics.component.tsx create mode 100644 ui/src/lib/components/WorkloadMetrics/WorkloadMetrics.styles.tsx create mode 100644 ui/src/lib/components/WorkloadMetrics/index.tsx create mode 100644 ui/src/lib/hooks/useColor.ts create mode 100644 ui/src/lib/store/benchmarksWindowData.ts create mode 100644 ui/src/lib/store/mockData.ts create mode 100644 ui/src/lib/store/runInfoWindowData.ts create mode 100644 ui/src/lib/store/slices/benchmarks/benchmarks.api.ts create mode 100644 ui/src/lib/store/slices/benchmarks/benchmarks.constants.ts create mode 100644 ui/src/lib/store/slices/benchmarks/benchmarks.interfaces.ts create mode 100644 ui/src/lib/store/slices/benchmarks/benchmarks.selectors.ts create mode 100644 ui/src/lib/store/slices/benchmarks/benchmarks.slice.ts create mode 100644 ui/src/lib/store/slices/benchmarks/index.ts create mode 100644 ui/src/lib/store/slices/metrics/metrics.constants.ts create mode 100644 ui/src/lib/store/slices/metrics/metrics.interfaces.ts create mode 100644 ui/src/lib/store/slices/metrics/metrics.selectors.ts create mode 100644 ui/src/lib/store/slices/metrics/metrics.slice.ts create mode 100644 ui/src/lib/store/slices/runInfo/index.ts create mode 100644 ui/src/lib/store/slices/runInfo/runInfo.api.ts create mode 100644 ui/src/lib/store/slices/runInfo/runInfo.constants.ts create mode 100644 ui/src/lib/store/slices/runInfo/runInfo.interfaces.ts create mode 100644 ui/src/lib/store/slices/runInfo/runInfo.selectors.ts create mode 100644 ui/src/lib/store/slices/runInfo/runInfo.slice.ts create mode 100644 ui/src/lib/store/slices/slo/slo.constants.ts create mode 100644 ui/src/lib/store/slices/slo/slo.interfaces.ts create mode 100644 ui/src/lib/store/slices/slo/slo.selectors.ts create mode 100644 ui/src/lib/store/slices/slo/slo.slice.ts create mode 100644 ui/src/lib/store/slices/workloadDetails/index.ts create mode 100644 ui/src/lib/store/slices/workloadDetails/workloadDetails.api.ts create mode 100644 ui/src/lib/store/slices/workloadDetails/workloadDetails.constants.ts create mode 100644 ui/src/lib/store/slices/workloadDetails/workloadDetails.interfaces.ts create mode 100644 ui/src/lib/store/slices/workloadDetails/workloadDetails.selectors.ts create mode 100644 ui/src/lib/store/slices/workloadDetails/workloadDetails.slice.ts create mode 100644 ui/src/lib/store/workloadDetailsWindowData.ts create mode 100644 ui/src/lib/utils/helpers.ts create mode 100644 ui/src/lib/utils/interpolation.ts create mode 100644 ui/src/tests/test.helper.tsx create mode 100644 ui/src/tests/unit/components/Charts/DashedLine/helpers.test.ts create mode 100644 ui/src/tests/unit/store/slices/slo.test.tsx create mode 100644 ui/src/tests/unit/utils/interpolation.test.ts create mode 100644 ui/src/types/declaration.d.ts diff --git a/ui/.eslintrc.json b/ui/.eslintrc.json index e1b46682..c6e3094f 100644 --- a/ui/.eslintrc.json +++ b/ui/.eslintrc.json @@ -76,6 +76,15 @@ "peerDependencies": false } ], - "no-secrets/no-secrets": ["error", { "additionalRegexes": {}, "ignoreContent": [] }] + "no-secrets/no-secrets": ["error", { "additionalRegexes": {}, "ignoreContent": [] }], + "no-unused-vars": "off", + "@typescript-eslint/no-unused-vars": [ + "warn", // or "error" + { + "argsIgnorePattern": "^_", + "varsIgnorePattern": "^_", + "caughtErrorsIgnorePattern": "^_" + } + ] } } diff --git a/ui/__mocks__/@nivo/bar.tsx b/ui/__mocks__/@nivo/bar.tsx new file mode 100644 index 00000000..a99b6dec --- /dev/null +++ b/ui/__mocks__/@nivo/bar.tsx @@ -0,0 +1,2 @@ +export const ResponsiveBar = () => null; +export const BarCustomLayerProps = () => null; diff --git a/ui/__mocks__/@nivo/core.tsx b/ui/__mocks__/@nivo/core.tsx new file mode 100644 index 00000000..66e2da8a --- /dev/null +++ b/ui/__mocks__/@nivo/core.tsx @@ -0,0 +1 @@ +export const Point = () => null; diff --git a/ui/__mocks__/@nivo/line.tsx b/ui/__mocks__/@nivo/line.tsx new file mode 100644 index 00000000..bf985ef3 --- /dev/null +++ b/ui/__mocks__/@nivo/line.tsx @@ -0,0 +1 @@ +export const ResponsiveLine = () => null; diff --git a/ui/jest.config.js b/ui/jest.config.js index f05bde8b..7d407467 100644 --- a/ui/jest.config.js +++ b/ui/jest.config.js @@ -22,6 +22,9 @@ const customJestConfig = { transform: { '^.+\\.(ts|tsx)$': 'ts-jest', }, + transformIgnorePatterns: [ + '/node_modules/(?!(@nivo|d3|d3-.*|internmap|delaunator|robust-predicates)/)', + ], }; module.exports = createJestConfig(customJestConfig); diff --git a/ui/jest.setup.ts b/ui/jest.setup.ts index 7b0828bf..09b64885 100644 --- a/ui/jest.setup.ts +++ b/ui/jest.setup.ts @@ -1 +1,17 @@ import '@testing-library/jest-dom'; + +jest.mock('@nivo/bar'); +jest.mock('@nivo/line'); +jest.mock('@nivo/core'); + +jest.mock('next/dynamic', () => ({ + __esModule: true, + default: (...props: any[]) => { + const dynamicModule = jest.requireActual('next/dynamic'); + const dynamicActualComp = dynamicModule.default; + const RequiredComponent = dynamicActualComp(props[0]); + // eslint-disable-next-line no-unused-expressions, @typescript-eslint/no-unused-expressions + RequiredComponent.preload ? RequiredComponent.preload() : RequiredComponent.render.preload(); + return RequiredComponent; + }, +})); diff --git a/ui/package-lock.json b/ui/package-lock.json index 969d7647..e90e36f3 100644 --- a/ui/package-lock.json +++ b/ui/package-lock.json @@ -13,10 +13,17 @@ "@emotion/styled": "^11.14.0", "@mui/material": "^5.11.7", "@mui/material-nextjs": "^5.16.6", + "@nivo/bar": "^0.88.0", + "@nivo/core": "^0.88.0", + "@nivo/line": "^0.88.0", + "@nivo/scales": "^0.88.0", + "@nivo/tooltip": "^0.88.0", "@reduxjs/toolkit": "^2.2.7", + "filesize": "^10.1.6", "next": "14.2.5", "react": "^18.2.0", "react-dom": "^18.2.0", + "react-material-ui-carousel": "^3.4.2", "react-redux": "^9.1.2" }, "devDependencies": { @@ -3018,6 +3025,32 @@ "url": "https://opencollective.com/mui-org" } }, + "node_modules/@mui/icons-material": { + "version": "5.17.1", + "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.17.1.tgz", + "integrity": "sha512-CN86LocjkunFGG0yPlO4bgqHkNGgaEOEc3X/jG5Bzm401qYw79/SaLrofA7yAKCCXAGdIGnLoMHohc3+ubs95A==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.9" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@mui/material": "^5.0.0", + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/@mui/material": { "version": "5.17.1", "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.17.1.tgz", @@ -3460,6 +3493,198 @@ "node": ">= 10" } }, + "node_modules/@nivo/annotations": { + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@nivo/annotations/-/annotations-0.88.0.tgz", + "integrity": "sha512-NXE+1oIUn+EGWMQpnpeRMLgi2wyuzhGDoJQY4OUHissCUiNotid2oNQ/PXJwN0toiu+/j9SyhzI32xr70OPi7Q==", + "license": "MIT", + "dependencies": { + "@nivo/colors": "0.88.0", + "@nivo/core": "0.88.0", + "@react-spring/web": "9.4.5 || ^9.7.2", + "lodash": "^4.17.21" + }, + "peerDependencies": { + "react": ">= 16.14.0 < 19.0.0" + } + }, + "node_modules/@nivo/axes": { + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@nivo/axes/-/axes-0.88.0.tgz", + "integrity": "sha512-jF7aIxzTNayV5cI1J/b9Q1FfpMBxTXGk3OwSigXMSfYWlliskDn2u0qGRLiYhuXFdQAWIp4oXsO1GcAQ0eRVdg==", + "license": "MIT", + "dependencies": { + "@nivo/core": "0.88.0", + "@nivo/scales": "0.88.0", + "@react-spring/web": "9.4.5 || ^9.7.2", + "@types/d3-format": "^1.4.1", + "@types/d3-time-format": "^2.3.1", + "d3-format": "^1.4.4", + "d3-time-format": "^3.0.0" + }, + "peerDependencies": { + "react": ">= 16.14.0 < 19.0.0" + } + }, + "node_modules/@nivo/bar": { + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@nivo/bar/-/bar-0.88.0.tgz", + "integrity": "sha512-wckwuHWeCikxGvvdRfGL+dVFsUD9uHk1r9s7bWUfOD+p8BWhxtYqfXpHolEfgGg3UyPaHtpGA7P4zgE5vgo7gQ==", + "license": "MIT", + "dependencies": { + "@nivo/annotations": "0.88.0", + "@nivo/axes": "0.88.0", + "@nivo/colors": "0.88.0", + "@nivo/core": "0.88.0", + "@nivo/legends": "0.88.0", + "@nivo/scales": "0.88.0", + "@nivo/tooltip": "0.88.0", + "@react-spring/web": "9.4.5 || ^9.7.2", + "@types/d3-scale": "^4.0.8", + "@types/d3-shape": "^3.1.6", + "d3-scale": "^4.0.2", + "d3-shape": "^3.2.0", + "lodash": "^4.17.21" + }, + "peerDependencies": { + "react": ">= 16.14.0 < 19.0.0" + } + }, + "node_modules/@nivo/colors": { + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@nivo/colors/-/colors-0.88.0.tgz", + "integrity": "sha512-IZ+leYIqAlo7dyLHmsQwujanfRgXyoQ5H7PU3RWLEn1PP0zxDKLgEjFEDADpDauuslh2Tx0L81GNkWR6QSP0Mw==", + "license": "MIT", + "dependencies": { + "@nivo/core": "0.88.0", + "@types/d3-color": "^3.0.0", + "@types/d3-scale": "^4.0.8", + "@types/d3-scale-chromatic": "^3.0.0", + "@types/prop-types": "^15.7.2", + "d3-color": "^3.1.0", + "d3-scale": "^4.0.2", + "d3-scale-chromatic": "^3.0.0", + "lodash": "^4.17.21", + "prop-types": "^15.7.2" + }, + "peerDependencies": { + "react": ">= 16.14.0 < 19.0.0" + } + }, + "node_modules/@nivo/core": { + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@nivo/core/-/core-0.88.0.tgz", + "integrity": "sha512-XjUkA5MmwjLP38bdrJwn36Gj7T5SYMKD55LYQp/1nIJPdxqJ38dUfE4XyBDfIEgfP6yrHOihw3C63cUdnUBoiw==", + "license": "MIT", + "dependencies": { + "@nivo/tooltip": "0.88.0", + "@react-spring/web": "9.4.5 || ^9.7.2", + "@types/d3-shape": "^3.1.6", + "d3-color": "^3.1.0", + "d3-format": "^1.4.4", + "d3-interpolate": "^3.0.1", + "d3-scale": "^4.0.2", + "d3-scale-chromatic": "^3.0.0", + "d3-shape": "^3.2.0", + "d3-time-format": "^3.0.0", + "lodash": "^4.17.21", + "prop-types": "^15.7.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nivo/donate" + }, + "peerDependencies": { + "react": ">= 16.14.0 < 19.0.0" + } + }, + "node_modules/@nivo/legends": { + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@nivo/legends/-/legends-0.88.0.tgz", + "integrity": "sha512-d4DF9pHbD8LmGJlp/Gp1cF4e8y2wfQTcw3jVhbZj9zkb7ZWB7JfeF60VHRfbXNux9bjQ9U78/SssQqueVDPEmg==", + "license": "MIT", + "dependencies": { + "@nivo/colors": "0.88.0", + "@nivo/core": "0.88.0", + "@types/d3-scale": "^4.0.8", + "d3-scale": "^4.0.2" + }, + "peerDependencies": { + "react": ">= 16.14.0 < 19.0.0" + } + }, + "node_modules/@nivo/line": { + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@nivo/line/-/line-0.88.0.tgz", + "integrity": "sha512-hFTyZ3BdAZvq2HwdwMj2SJGUeodjEW+7DLtFMIIoVIxmjZlAs3z533HcJ9cJd3it928fDm8SF/rgHs0TztYf9Q==", + "license": "MIT", + "dependencies": { + "@nivo/annotations": "0.88.0", + "@nivo/axes": "0.88.0", + "@nivo/colors": "0.88.0", + "@nivo/core": "0.88.0", + "@nivo/legends": "0.88.0", + "@nivo/scales": "0.88.0", + "@nivo/tooltip": "0.88.0", + "@nivo/voronoi": "0.88.0", + "@react-spring/web": "9.4.5 || ^9.7.2", + "d3-shape": "^3.2.0" + }, + "peerDependencies": { + "react": ">= 16.14.0 < 19.0.0" + } + }, + "node_modules/@nivo/scales": { + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@nivo/scales/-/scales-0.88.0.tgz", + "integrity": "sha512-HbpxkQp6tHCltZ1yDGeqdLcaJl5ze54NPjurfGtx/Uq+H5IQoBd4Tln49bUar5CsFAMsXw8yF1HQvASr7I1SIA==", + "license": "MIT", + "dependencies": { + "@types/d3-scale": "^4.0.8", + "@types/d3-time": "^1.1.1", + "@types/d3-time-format": "^3.0.0", + "d3-scale": "^4.0.2", + "d3-time": "^1.0.11", + "d3-time-format": "^3.0.0", + "lodash": "^4.17.21" + } + }, + "node_modules/@nivo/scales/node_modules/@types/d3-time-format": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-time-format/-/d3-time-format-3.0.4.tgz", + "integrity": "sha512-or9DiDnYI1h38J9hxKEsw513+KVuFbEVhl7qdxcaudoiqWWepapUen+2vAriFGexr6W5+P4l9+HJrB39GG+oRg==", + "license": "MIT" + }, + "node_modules/@nivo/tooltip": { + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@nivo/tooltip/-/tooltip-0.88.0.tgz", + "integrity": "sha512-iEjVfQA8gumAzg/yUinjTwswygCkE5Iwuo8opwnrbpNIqMrleBV+EAKIgB0PrzepIoW8CFG/SJhoiRfbU8jhOw==", + "license": "MIT", + "dependencies": { + "@nivo/core": "0.88.0", + "@react-spring/web": "9.4.5 || ^9.7.2" + }, + "peerDependencies": { + "react": ">= 16.14.0 < 19.0.0" + } + }, + "node_modules/@nivo/voronoi": { + "version": "0.88.0", + "resolved": "https://registry.npmjs.org/@nivo/voronoi/-/voronoi-0.88.0.tgz", + "integrity": "sha512-MyiNLvODthFoMjQ7Wjp693nogbTmVEx8Yn/7QkJhyPQbFyyA37TF/D1a/ox4h2OslXtP6K9QFN+42gB/zu7ixw==", + "license": "MIT", + "dependencies": { + "@nivo/core": "0.88.0", + "@nivo/tooltip": "0.88.0", + "@types/d3-delaunay": "^6.0.4", + "@types/d3-scale": "^4.0.8", + "d3-delaunay": "^6.0.4", + "d3-scale": "^4.0.2" + }, + "peerDependencies": { + "react": ">= 16.14.0 < 19.0.0" + } + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -3542,6 +3767,78 @@ "url": "https://opencollective.com/popperjs" } }, + "node_modules/@react-spring/animated": { + "version": "9.7.5", + "resolved": "https://registry.npmjs.org/@react-spring/animated/-/animated-9.7.5.tgz", + "integrity": "sha512-Tqrwz7pIlsSDITzxoLS3n/v/YCUHQdOIKtOJf4yL6kYVSDTSmVK1LI1Q3M/uu2Sx4X3pIWF3xLUhlsA6SPNTNg==", + "license": "MIT", + "dependencies": { + "@react-spring/shared": "~9.7.5", + "@react-spring/types": "~9.7.5" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@react-spring/core": { + "version": "9.7.5", + "resolved": "https://registry.npmjs.org/@react-spring/core/-/core-9.7.5.tgz", + "integrity": "sha512-rmEqcxRcu7dWh7MnCcMXLvrf6/SDlSokLaLTxiPlAYi11nN3B5oiCUAblO72o+9z/87j2uzxa2Inm8UbLjXA+w==", + "license": "MIT", + "dependencies": { + "@react-spring/animated": "~9.7.5", + "@react-spring/shared": "~9.7.5", + "@react-spring/types": "~9.7.5" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/react-spring/donate" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@react-spring/rafz": { + "version": "9.7.5", + "resolved": "https://registry.npmjs.org/@react-spring/rafz/-/rafz-9.7.5.tgz", + "integrity": "sha512-5ZenDQMC48wjUzPAm1EtwQ5Ot3bLIAwwqP2w2owG5KoNdNHpEJV263nGhCeKKmuA3vG2zLLOdu3or6kuDjA6Aw==", + "license": "MIT" + }, + "node_modules/@react-spring/shared": { + "version": "9.7.5", + "resolved": "https://registry.npmjs.org/@react-spring/shared/-/shared-9.7.5.tgz", + "integrity": "sha512-wdtoJrhUeeyD/PP/zo+np2s1Z820Ohr/BbuVYv+3dVLW7WctoiN7std8rISoYoHpUXtbkpesSKuPIw/6U1w1Pw==", + "license": "MIT", + "dependencies": { + "@react-spring/rafz": "~9.7.5", + "@react-spring/types": "~9.7.5" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@react-spring/types": { + "version": "9.7.5", + "resolved": "https://registry.npmjs.org/@react-spring/types/-/types-9.7.5.tgz", + "integrity": "sha512-HVj7LrZ4ReHWBimBvu2SKND3cDVUPWKLqRTmWe/fNY6o1owGOX0cAHbdPDTMelgBlVbrTKrre6lFkhqGZErK/g==", + "license": "MIT" + }, + "node_modules/@react-spring/web": { + "version": "9.7.5", + "resolved": "https://registry.npmjs.org/@react-spring/web/-/web-9.7.5.tgz", + "integrity": "sha512-lmvqGwpe+CSttsWNZVr+Dg62adtKhauGwLyGE/RRyZ8AAMLgb9x3NDMA5RMElXo+IMyTkPp7nxTB8ZQlmhb6JQ==", + "license": "MIT", + "dependencies": { + "@react-spring/animated": "~9.7.5", + "@react-spring/core": "~9.7.5", + "@react-spring/shared": "~9.7.5", + "@react-spring/types": "~9.7.5" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, "node_modules/@reduxjs/toolkit": { "version": "2.8.2", "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.8.2.tgz", @@ -4095,6 +4392,66 @@ "@babel/types": "^7.20.7" } }, + "node_modules/@types/d3-color": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz", + "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==", + "license": "MIT" + }, + "node_modules/@types/d3-delaunay": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-delaunay/-/d3-delaunay-6.0.4.tgz", + "integrity": "sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw==", + "license": "MIT" + }, + "node_modules/@types/d3-format": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/@types/d3-format/-/d3-format-1.4.5.tgz", + "integrity": "sha512-mLxrC1MSWupOSncXN/HOlWUAAIffAEBaI4+PKy2uMPsKe4FNZlk7qrbTjmzJXITQQqBHivaks4Td18azgqnotA==", + "license": "MIT" + }, + "node_modules/@types/d3-path": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.1.tgz", + "integrity": "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==", + "license": "MIT" + }, + "node_modules/@types/d3-scale": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.9.tgz", + "integrity": "sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==", + "license": "MIT", + "dependencies": { + "@types/d3-time": "*" + } + }, + "node_modules/@types/d3-scale-chromatic": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", + "integrity": "sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ==", + "license": "MIT" + }, + "node_modules/@types/d3-shape": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.7.tgz", + "integrity": "sha512-VLvUQ33C+3J+8p+Daf+nYSOsjB4GXp19/S/aGo60m9h1v6XaxjiT82lKVWJCfzhtuZ3yD7i/TPeC/fuKLLOSmg==", + "license": "MIT", + "dependencies": { + "@types/d3-path": "*" + } + }, + "node_modules/@types/d3-time": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-1.1.4.tgz", + "integrity": "sha512-JIvy2HjRInE+TXOmIGN5LCmeO0hkFZx5f9FZ7kiN+D+YTcc8pptsiLiuHsvwxwC7VVKmJ2ExHUgNlAiV7vQM9g==", + "license": "MIT" + }, + "node_modules/@types/d3-time-format": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/@types/d3-time-format/-/d3-time-format-2.3.4.tgz", + "integrity": "sha512-xdDXbpVO74EvadI3UDxjxTdR6QIxm1FKzEA/+F8tL4GWWUg/hgvBqf6chql64U5A9ZUGWo7pEu4eNlyLwbKdhg==", + "license": "MIT" + }, "node_modules/@types/graceful-fs": { "version": "4.1.9", "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", @@ -6270,6 +6627,134 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, + "node_modules/d3-array": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", + "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", + "license": "ISC", + "dependencies": { + "internmap": "1 - 2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-color": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-delaunay": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.4.tgz", + "integrity": "sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==", + "license": "ISC", + "dependencies": { + "delaunator": "5" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-format": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-1.4.5.tgz", + "integrity": "sha512-J0piedu6Z8iB6TbIGfZgDzfXxUFN3qQRMofy2oPdXzQibYGqPB/9iMcxr/TGalU+2RsyDO+U4f33id8tbnSRMQ==", + "license": "BSD-3-Clause" + }, + "node_modules/d3-interpolate": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", + "license": "ISC", + "dependencies": { + "d3-color": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", + "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-scale": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", + "license": "ISC", + "dependencies": { + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-scale-chromatic": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", + "integrity": "sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==", + "license": "ISC", + "dependencies": { + "d3-color": "1 - 3", + "d3-interpolate": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-scale/node_modules/d3-time": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", + "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", + "license": "ISC", + "dependencies": { + "d3-array": "2 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-shape": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", + "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", + "license": "ISC", + "dependencies": { + "d3-path": "^3.1.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-time": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-1.1.0.tgz", + "integrity": "sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA==", + "license": "BSD-3-Clause" + }, + "node_modules/d3-time-format": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-3.0.0.tgz", + "integrity": "sha512-UXJh6EKsHBTjopVqZBhFysQcoXSv/5yLONZvkQ5Kk3qbwiUYkdX17Xa1PT6U1ZWXGGfB1ey5L8dKMlFq2DO0Ag==", + "license": "BSD-3-Clause", + "dependencies": { + "d3-time": "1 - 2" + } + }, "node_modules/damerau-levenshtein": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", @@ -6458,6 +6943,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/delaunator": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.1.tgz", + "integrity": "sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==", + "license": "ISC", + "dependencies": { + "robust-predicates": "^3.0.2" + } + }, "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -8144,6 +8638,15 @@ "node": ">=10" } }, + "node_modules/filesize": { + "version": "10.1.6", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-10.1.6.tgz", + "integrity": "sha512-sJslQKU2uM33qH5nqewAwVB2QgR6w1aMNsYUp3aN5rMRyXEwJGmZvaWzeJFNTOXWlHQyBFCWrdj3fV/fsTOX8w==", + "license": "BSD-3-Clause", + "engines": { + "node": ">= 10.4.0" + } + }, "node_modules/fill-range": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", @@ -8274,6 +8777,52 @@ "node": ">= 6" } }, + "node_modules/framer-motion": { + "version": "4.1.17", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-4.1.17.tgz", + "integrity": "sha512-thx1wvKzblzbs0XaK2X0G1JuwIdARcoNOW7VVwjO8BUltzXPyONGAElLu6CiCScsOQRI7FIk/45YTFtJw5Yozw==", + "license": "MIT", + "dependencies": { + "framesync": "5.3.0", + "hey-listen": "^1.0.8", + "popmotion": "9.3.6", + "style-value-types": "4.1.4", + "tslib": "^2.1.0" + }, + "optionalDependencies": { + "@emotion/is-prop-valid": "^0.8.2" + }, + "peerDependencies": { + "react": ">=16.8 || ^17.0.0", + "react-dom": ">=16.8 || ^17.0.0" + } + }, + "node_modules/framer-motion/node_modules/@emotion/is-prop-valid": { + "version": "0.8.8", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz", + "integrity": "sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==", + "license": "MIT", + "optional": true, + "dependencies": { + "@emotion/memoize": "0.7.4" + } + }, + "node_modules/framer-motion/node_modules/@emotion/memoize": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz", + "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==", + "license": "MIT", + "optional": true + }, + "node_modules/framesync": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/framesync/-/framesync-5.3.0.tgz", + "integrity": "sha512-oc5m68HDO/tuK2blj7ZcdEBRx3p1PjrgHazL8GYEpvULhrtGIFbQArN6cQS2QhW8mitffaB+VYzMjDqBxxQeoA==", + "license": "MIT", + "dependencies": { + "tslib": "^2.1.0" + } + }, "node_modules/fs-extra": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", @@ -8716,6 +9265,12 @@ "node": ">= 0.4" } }, + "node_modules/hey-listen": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/hey-listen/-/hey-listen-1.0.8.tgz", + "integrity": "sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q==", + "license": "MIT" + }, "node_modules/hoist-non-react-statics": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", @@ -8975,6 +9530,15 @@ "node": ">= 0.4" } }, + "node_modules/internmap": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", + "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, "node_modules/is-array-buffer": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", @@ -11187,7 +11751,6 @@ "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true, "license": "MIT" }, "node_modules/lodash.debounce": { @@ -12185,6 +12748,18 @@ "node": ">=8" } }, + "node_modules/popmotion": { + "version": "9.3.6", + "resolved": "https://registry.npmjs.org/popmotion/-/popmotion-9.3.6.tgz", + "integrity": "sha512-ZTbXiu6zIggXzIliMi8LGxXBF5ST+wkpXGEjeTUDUOCdSQ356hij/xjeUdv0F8zCQNeqB1+PR5/BB+gC+QLAPw==", + "license": "MIT", + "dependencies": { + "framesync": "5.3.0", + "hey-listen": "^1.0.8", + "style-value-types": "4.1.4", + "tslib": "^2.1.0" + } + }, "node_modules/possible-typed-array-names": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", @@ -12484,6 +13059,29 @@ "integrity": "sha512-Oe56aUPnkHyyDxxkvqtd7KkdQP5uIUfHxd5XTb3wE9d/kRnZLmKbDB0GWk919tdQ+mxxPtG6EAs6RMT6i1qtHg==", "license": "MIT" }, + "node_modules/react-material-ui-carousel": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/react-material-ui-carousel/-/react-material-ui-carousel-3.4.2.tgz", + "integrity": "sha512-jUbC5aBWqbbbUOOdUe3zTVf4kMiZFwKJqwhxzHgBfklaXQbSopis4iWAHvEOLcZtSIJk4JAGxKE0CmxDoxvUuw==", + "license": "MIT", + "dependencies": { + "@emotion/react": "^11.7.1", + "@emotion/styled": "^11.6.0", + "@mui/icons-material": "^5.4.1", + "@mui/material": "^5.4.1", + "@mui/system": "^5.4.1", + "framer-motion": "^4.1.17" + }, + "peerDependencies": { + "@emotion/react": "^11.4.1", + "@emotion/styled": "^11.3.0", + "@mui/icons-material": "^5.0.0", + "@mui/material": "^5.0.0", + "@mui/system": "^5.0.0", + "react": "^17.0.1 || ^18.0.0", + "react-dom": "^17.0.2 || ^18.0.0" + } + }, "node_modules/react-redux": { "version": "9.2.0", "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-9.2.0.tgz", @@ -12867,6 +13465,12 @@ "node": "*" } }, + "node_modules/robust-predicates": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz", + "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==", + "license": "Unlicense" + }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -13569,6 +14173,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/style-value-types": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/style-value-types/-/style-value-types-4.1.4.tgz", + "integrity": "sha512-LCJL6tB+vPSUoxgUBt9juXIlNJHtBMy8jkXzUJSBzeHWdBu6lhzHqCvLVkXFGsFIlNa2ln1sQHya/gzaFmB2Lg==", + "license": "MIT", + "dependencies": { + "hey-listen": "^1.0.8", + "tslib": "^2.1.0" + } + }, "node_modules/styled-jsx": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.1.tgz", diff --git a/ui/package.json b/ui/package.json index ddc93d1a..37a86be1 100644 --- a/ui/package.json +++ b/ui/package.json @@ -18,10 +18,17 @@ "@emotion/styled": "^11.14.0", "@mui/material": "^5.11.7", "@mui/material-nextjs": "^5.16.6", + "@nivo/bar": "^0.88.0", + "@nivo/core": "^0.88.0", + "@nivo/line": "^0.88.0", + "@nivo/scales": "^0.88.0", + "@nivo/tooltip": "^0.88.0", "@reduxjs/toolkit": "^2.2.7", + "filesize": "^10.1.6", "next": "14.2.5", "react": "^18.2.0", "react-dom": "^18.2.0", + "react-material-ui-carousel": "^3.4.2", "react-redux": "^9.1.2" }, "devDependencies": { diff --git a/ui/src/app/layout.tsx b/ui/src/app/layout.tsx index 0e0af570..213dd7eb 100644 --- a/ui/src/app/layout.tsx +++ b/ui/src/app/layout.tsx @@ -1,5 +1,9 @@ import React from 'react'; +import { benchmarksScript } from '@/lib/store/benchmarksWindowData'; +import { runInfoScript } from '@/lib/store/runInfoWindowData'; +import { workloadDetailsScript } from '@/lib/store/workloadDetailsWindowData'; + import './globals.css'; export default function RootLayout({ @@ -21,6 +25,26 @@ export default function RootLayout({ Guide LLM + {/*