From 036e2e15208d12f0cc7ab7b4a582efd9a8987c1c Mon Sep 17 00:00:00 2001 From: Mark Date: Wed, 18 Dec 2024 19:59:26 -0500 Subject: [PATCH] Initial commit --- .commitlintrc.json | 6 + .env | 4 + .github/CODEOWNERS | 4 + .github/dependabot.yml | 30 + .github/mergify.yml | 8 + .github/workflows/build.yml | 49 + .github/workflows/release-please.yml | 62 + .gitignore | 17 + .husky/commit-msg | 1 + .husky/pre-commit | 1 + .lintstagedrc.json | 4 + .nvmrc | 1 + .prettierrc.json | 3 + LICENSE | 22 + README.md | 119 + eslint.config.mjs | 50 + index.html | 57 + package-lock.json | 8285 ++++++++++++++++++++++++++ package.json | 43 + public/favicon.ico | Bin 0 -> 458 bytes public/logo192.png | Bin 0 -> 15817 bytes public/logo512.png | Bin 0 -> 67818 bytes public/manifest.json | 25 + public/robots.txt | 3 + public/screenshot.png | Bin 0 -> 10781 bytes scripts/bundle.sh | 14 + src/assets/dude.png | Bin 0 -> 3227 bytes src/assets/index.ts | 4 + src/assets/platform.png | Bin 0 -> 14973 bytes src/assets/sky.png | Bin 0 -> 4757 bytes src/assets/star.png | Bin 0 -> 443 bytes src/components/Score.tsx | 22 + src/components/index.ts | 1 + src/constants/index.ts | 1 + src/constants/key.ts | 16 + src/gameobjects/Player.ts | 111 + src/gameobjects/Star.ts | 18 + src/gameobjects/index.ts | 2 + src/index.ts | 34 + src/scenes/Boot.ts | 24 + src/scenes/Main.tsx | 102 + src/scenes/index.ts | 2 + src/style.css | 6 + src/types/vite-env.d.ts | 68 + src/utils/analytics.ts | 19 + src/utils/index.ts | 1 + tsconfig.json | 21 + vite.config.mts | 9 + 48 files changed, 9269 insertions(+) create mode 100644 .commitlintrc.json create mode 100644 .env create mode 100644 .github/CODEOWNERS create mode 100644 .github/dependabot.yml create mode 100644 .github/mergify.yml create mode 100644 .github/workflows/build.yml create mode 100644 .github/workflows/release-please.yml create mode 100644 .gitignore create mode 100644 .husky/commit-msg create mode 100644 .husky/pre-commit create mode 100644 .lintstagedrc.json create mode 100644 .nvmrc create mode 100644 .prettierrc.json create mode 100644 LICENSE create mode 100644 README.md create mode 100644 eslint.config.mjs create mode 100644 index.html create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 public/favicon.ico create mode 100644 public/logo192.png create mode 100644 public/logo512.png create mode 100644 public/manifest.json create mode 100644 public/robots.txt create mode 100644 public/screenshot.png create mode 100755 scripts/bundle.sh create mode 100644 src/assets/dude.png create mode 100644 src/assets/index.ts create mode 100644 src/assets/platform.png create mode 100644 src/assets/sky.png create mode 100644 src/assets/star.png create mode 100644 src/components/Score.tsx create mode 100644 src/components/index.ts create mode 100644 src/constants/index.ts create mode 100644 src/constants/key.ts create mode 100644 src/gameobjects/Player.ts create mode 100644 src/gameobjects/Star.ts create mode 100644 src/gameobjects/index.ts create mode 100644 src/index.ts create mode 100644 src/scenes/Boot.ts create mode 100644 src/scenes/Main.tsx create mode 100644 src/scenes/index.ts create mode 100644 src/style.css create mode 100644 src/types/vite-env.d.ts create mode 100644 src/utils/analytics.ts create mode 100644 src/utils/index.ts create mode 100644 tsconfig.json create mode 100644 vite.config.mts diff --git a/.commitlintrc.json b/.commitlintrc.json new file mode 100644 index 0000000..9a5cf0f --- /dev/null +++ b/.commitlintrc.json @@ -0,0 +1,6 @@ +{ + "extends": ["@commitlint/config-conventional"], + "rules": { + "body-max-line-length": [1, "always", 100] + } +} diff --git a/.env b/.env new file mode 100644 index 0000000..072db08 --- /dev/null +++ b/.env @@ -0,0 +1,4 @@ +VITE_APP_HOMEPAGE=$npm_package_homepage +VITE_APP_NAME=$npm_package_name +VITE_APP_VERSION=$npm_package_version +VITE_GOOGLE_ANALYTICS_ID= diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 0000000..ba5b138 --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1,4 @@ +* @remarkablemark + +/package-lock.json +/package.json diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..ba0a0b8 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,30 @@ +# To get started with Dependabot version updates, you'll need to specify which +# package ecosystems to update and where the package manifests are located. +# Please see the documentation for all configuration options: +# https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file + +version: 2 +updates: + - package-ecosystem: 'npm' + directory: '/' + schedule: + interval: 'daily' + groups: + commitlint: + patterns: + - '@commitlint/*' + eslint: + patterns: + - '@eslint/*' + prettier: + patterns: + - prettier + - eslint-plugin-prettier + typescript-eslint: + patterns: + - '@typescript-eslint/*' + + - package-ecosystem: 'github-actions' + directory: '/' + schedule: + interval: 'daily' diff --git a/.github/mergify.yml b/.github/mergify.yml new file mode 100644 index 0000000..c4d49ce --- /dev/null +++ b/.github/mergify.yml @@ -0,0 +1,8 @@ +pull_request_rules: + - name: automatic merge for Dependabot pull requests + conditions: + - author=dependabot[bot] + - check-success=build + actions: + merge: + method: squash diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..f4e65ab --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,49 @@ +name: build +on: [push, pull_request] + +permissions: + contents: write + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Use Node.js + uses: actions/setup-node@v4 + with: + cache: npm + node-version-file: .nvmrc + + - name: Install dependencies + run: npm ci --prefer-offline + + - name: Lint commit message + run: npx commitlint --from=HEAD~1 + + - name: Run ESLint + run: npm run lint + + - name: Type check + run: npm run lint:tsc + + - name: Set environment variables + run: | + echo "VITE_APP_HOMEPAGE=$(jq -r .homepage package.json)" >> $GITHUB_ENV + echo "VITE_APP_VERSION=$(jq -r .version package.json)" >> $GITHUB_ENV + + - name: Build + run: npm run build -- --base /${{ github.event.repository.name }}/ + env: + VITE_GOOGLE_ANALYTICS_ID: ${{ secrets.GOOGLE_ANALYTICS_ID }} + + - name: Deploy + if: github.ref_name == 'master' + uses: remarkablemark/gitploy-action@v1 + with: + directory: dist diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml new file mode 100644 index 0000000..ab41939 --- /dev/null +++ b/.github/workflows/release-please.yml @@ -0,0 +1,62 @@ +name: release-please +on: + push: + branches: + - master + +permissions: + contents: write + pull-requests: write + +jobs: + release: + runs-on: ubuntu-latest + outputs: + release_created: ${{ steps.release.outputs.release_created }} + tag_name: ${{ steps.release.outputs.tag_name }} + + steps: + - name: Release Please + uses: googleapis/release-please-action@v4 + id: release + with: + release-type: node + + deploy: + needs: release + runs-on: ubuntu-latest + if: ${{ needs.release.outputs.release_created }} + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Use Node.js + uses: actions/setup-node@v4 + with: + cache: npm + node-version-file: .nvmrc + + - name: Install dependencies + run: npm ci --prefer-offline + + - name: Read package version + run: echo "VERSION=$(jq -r .version package.json)" >> $GITHUB_ENV + + - name: Build + run: npm run bundle + env: + VITE_GOOGLE_ANALYTICS_ID: ${{ secrets.GOOGLE_ANALYTICS_ID }} + + - name: Setup butler + uses: remarkablegames/setup-butler@v1 + + - name: Upload to itch.io + run: butler push dist ${{ github.repository }}:html5 --userversion ${{ env.VERSION }} + env: + BUTLER_API_KEY: ${{ secrets.BUTLER_API_KEY }} + + - name: Upload Release Artifact + run: gh release upload ${{ needs.release.outputs.tag_name }} dist/${{ github.event.repository.name }}-${{ env.VERSION }}.zip + env: + GITHUB_TOKEN: ${{ github.token }} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c613775 --- /dev/null +++ b/.gitignore @@ -0,0 +1,17 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# vite +/dist + +# misc +*.swp +.DS_Store + +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/.husky/commit-msg b/.husky/commit-msg new file mode 100644 index 0000000..a78cc75 --- /dev/null +++ b/.husky/commit-msg @@ -0,0 +1 @@ +npx commitlint --edit $1 diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100644 index 0000000..2312dc5 --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1 @@ +npx lint-staged diff --git a/.lintstagedrc.json b/.lintstagedrc.json new file mode 100644 index 0000000..04bf48c --- /dev/null +++ b/.lintstagedrc.json @@ -0,0 +1,4 @@ +{ + "*.{js,jsx,mjs,mts,ts,tsx}": "eslint --fix", + "*.{css,html,json,md,yml}": "prettier --write" +} diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 0000000..209e3ef --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +20 diff --git a/.prettierrc.json b/.prettierrc.json new file mode 100644 index 0000000..544138b --- /dev/null +++ b/.prettierrc.json @@ -0,0 +1,3 @@ +{ + "singleQuote": true +} diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..c8445d4 --- /dev/null +++ b/LICENSE @@ -0,0 +1,22 @@ +The MIT License + +Copyright (c) 2024 Menglin "Mark" Xu + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..16e5424 --- /dev/null +++ b/README.md @@ -0,0 +1,119 @@ +

+ Phaser Template +

+ +# Phaser Template + +![release](https://img.shields.io/github/v/release/remarkablegames/phaser-template) +[![build](https://github.com/remarkablegames/phaser-template/actions/workflows/build.yml/badge.svg)](https://github.com/remarkablegames/phaser-template/actions/workflows/build.yml) + +phaser-template is a template for making [Phaser](https://phaser.io/) games. + +Inspired by the tutorial "[Making your first Phaser 3 game](https://phaser.io/tutorials/making-your-first-phaser-3-game)". + +Play the game on: + +- [remarkablegames](https://remarkablegames.org/phaser-template/) +- [CodeSandbox](https://codesandbox.io/s/phaser-template-4fy4y) + +## Prerequisites + +- [nvm](https://github.com/nvm-sh/nvm#readme) + +## Install + +Clone the repository: + +```sh +git clone https://github.com/remarkablegames/phaser-template.git +cd phaser-template +``` + +Install the dependencies: + +```sh +npm install +``` + +Rename the project: + +```sh +git grep -l phaser-template | xargs sed -i '' -e 's/phaser-template/my-game/g' +git grep -l 'Phaser Template' | xargs sed -i '' -e 's/Phaser Template/My Game/g' +``` + +Update the files: + +- [ ] `README.md` +- [ ] `package.json` +- [ ] `index.html` +- [ ] `public/manifest.json` +- [ ] `src/index.ts` + +Initialize a new repository: + +```sh +rm -rf .git +git init +``` + +Make your first commit: + +```sh +git add . +git commit -m 'feat: initialize project from phaser-template' +``` + +> [!NOTE] +> Commit messages follow [Conventional Commits](https://conventionalcommits.org/), which helps with release. + +Once you're ready, [push the local repository to GitHub](https://help.github.com/articles/adding-an-existing-project-to-github-using-the-command-line/) (or another remote repository): + +```sh +git remote add origin +git push origin -u origin master +``` + +## Environment Variables + +Set the environment variables: + +```sh +less .env +``` + +Update the **Secrets** in the repository **Settings**. + +## Available Scripts + +In the project directory, you can run: + +### `npm start` + +Runs the game in the development mode. + +Open [http://localhost:5173](http://localhost:5173) to view it in the browser. + +The page will reload if you make edits. + +You will also see any errors in the console. + +### `npm run build` + +Builds the game for production to the `dist` folder. + +It correctly bundles in production mode and optimizes the build for the best performance. + +The build is minified and the filenames include the hashes. + +Your game is ready to be deployed! + +### `npm run bundle` + +Builds the game and packages it into a Zip file in the `dist` folder. + +Your game can be uploaded to your server, [Itch.io](https://itch.io/), [Newgrounds](https://www.newgrounds.com/), etc. + +## License + +[MIT](LICENSE) diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 0000000..b529a89 --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,50 @@ +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; + +import { includeIgnoreFile } from '@eslint/compat'; +import { FlatCompat } from '@eslint/eslintrc'; +import js from '@eslint/js'; +import typescriptEslint from '@typescript-eslint/eslint-plugin'; +import tsParser from '@typescript-eslint/parser'; +import prettier from 'eslint-plugin-prettier'; +import simpleImportSort from 'eslint-plugin-simple-import-sort'; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); +const gitignorePath = path.resolve(__dirname, '.gitignore'); + +const compat = new FlatCompat({ + baseDirectory: __dirname, + recommendedConfig: js.configs.recommended, + allConfig: js.configs.all, +}); + +export default [ + includeIgnoreFile(gitignorePath), + + ...compat.extends( + 'eslint:recommended', + 'plugin:@typescript-eslint/recommended', + ), + + { + plugins: { + '@typescript-eslint': typescriptEslint, + prettier, + 'simple-import-sort': simpleImportSort, + }, + + languageOptions: { + parser: tsParser, + }, + + rules: { + '@typescript-eslint/no-non-null-assertion': 'off', + 'no-console': 'error', + 'no-debugger': 'error', + 'prettier/prettier': 'error', + 'simple-import-sort/exports': 'error', + 'simple-import-sort/imports': 'error', + }, + }, +]; diff --git a/index.html b/index.html new file mode 100644 index 0000000..cd4debe --- /dev/null +++ b/index.html @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + <% if (process.env.BUNDLE !== 'true') { %> + + + + <% } %> + + Phaser Template | remarkablegames + + + + + + + + + + diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..a4474dd --- /dev/null +++ b/package-lock.json @@ -0,0 +1,8285 @@ +{ + "name": "phaser-template", + "version": "1.0.0-alpha", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "phaser-template", + "version": "1.0.0-alpha", + "license": "MIT", + "dependencies": { + "phaser": "3.87.0", + "phaser-jsx": "0.11.0" + }, + "devDependencies": { + "@commitlint/cli": "19.6.1", + "@commitlint/config-conventional": "19.6.0", + "@eslint/compat": "1.2.4", + "@eslint/eslintrc": "3.2.0", + "@eslint/js": "9.17.0", + "@types/gtag.js": "0.0.20", + "@typescript-eslint/eslint-plugin": "8.18.1", + "@typescript-eslint/parser": "8.18.1", + "eslint": "9.17.0", + "eslint-plugin-prettier": "5.2.1", + "eslint-plugin-simple-import-sort": "12.1.1", + "husky": "9.1.7", + "lint-staged": "15.2.11", + "prettier": "3.4.2", + "typescript": "5.7.2", + "vite": "6.0.3", + "vite-plugin-html": "3.2.2" + } + }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@commitlint/cli": { + "version": "19.6.1", + "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-19.6.1.tgz", + "integrity": "sha512-8hcyA6ZoHwWXC76BoC8qVOSr8xHy00LZhZpauiD0iO0VYbVhMnED0da85lTfIULxl7Lj4c6vZgF0Wu/ed1+jlQ==", + "dev": true, + "dependencies": { + "@commitlint/format": "^19.5.0", + "@commitlint/lint": "^19.6.0", + "@commitlint/load": "^19.6.1", + "@commitlint/read": "^19.5.0", + "@commitlint/types": "^19.5.0", + "tinyexec": "^0.3.0", + "yargs": "^17.0.0" + }, + "bin": { + "commitlint": "cli.js" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/config-conventional": { + "version": "19.6.0", + "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-19.6.0.tgz", + "integrity": "sha512-DJT40iMnTYtBtUfw9ApbsLZFke1zKh6llITVJ+x9mtpHD08gsNXaIRqHTmwTZL3dNX5+WoyK7pCN/5zswvkBCQ==", + "dev": true, + "dependencies": { + "@commitlint/types": "^19.5.0", + "conventional-changelog-conventionalcommits": "^7.0.2" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/config-validator": { + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-19.5.0.tgz", + "integrity": "sha512-CHtj92H5rdhKt17RmgALhfQt95VayrUo2tSqY9g2w+laAXyk7K/Ef6uPm9tn5qSIwSmrLjKaXK9eiNuxmQrDBw==", + "dev": true, + "dependencies": { + "@commitlint/types": "^19.5.0", + "ajv": "^8.11.0" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/ensure": { + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-19.5.0.tgz", + "integrity": "sha512-Kv0pYZeMrdg48bHFEU5KKcccRfKmISSm9MvgIgkpI6m+ohFTB55qZlBW6eYqh/XDfRuIO0x4zSmvBjmOwWTwkg==", + "dev": true, + "dependencies": { + "@commitlint/types": "^19.5.0", + "lodash.camelcase": "^4.3.0", + "lodash.kebabcase": "^4.1.1", + "lodash.snakecase": "^4.1.1", + "lodash.startcase": "^4.4.0", + "lodash.upperfirst": "^4.3.1" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/execute-rule": { + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-19.5.0.tgz", + "integrity": "sha512-aqyGgytXhl2ejlk+/rfgtwpPexYyri4t8/n4ku6rRJoRhGZpLFMqrZ+YaubeGysCP6oz4mMA34YSTaSOKEeNrg==", + "dev": true, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/format": { + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-19.5.0.tgz", + "integrity": "sha512-yNy088miE52stCI3dhG/vvxFo9e4jFkU1Mj3xECfzp/bIS/JUay4491huAlVcffOoMK1cd296q0W92NlER6r3A==", + "dev": true, + "dependencies": { + "@commitlint/types": "^19.5.0", + "chalk": "^5.3.0" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/format/node_modules/chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "dev": true, + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@commitlint/is-ignored": { + "version": "19.6.0", + "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-19.6.0.tgz", + "integrity": "sha512-Ov6iBgxJQFR9koOupDPHvcHU9keFupDgtB3lObdEZDroiG4jj1rzky60fbQozFKVYRTUdrBGICHG0YVmRuAJmw==", + "dev": true, + "dependencies": { + "@commitlint/types": "^19.5.0", + "semver": "^7.6.0" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/lint": { + "version": "19.6.0", + "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-19.6.0.tgz", + "integrity": "sha512-LRo7zDkXtcIrpco9RnfhOKeg8PAnE3oDDoalnrVU/EVaKHYBWYL1DlRR7+3AWn0JiBqD8yKOfetVxJGdEtZ0tg==", + "dev": true, + "dependencies": { + "@commitlint/is-ignored": "^19.6.0", + "@commitlint/parse": "^19.5.0", + "@commitlint/rules": "^19.6.0", + "@commitlint/types": "^19.5.0" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/load": { + "version": "19.6.1", + "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-19.6.1.tgz", + "integrity": "sha512-kE4mRKWWNju2QpsCWt428XBvUH55OET2N4QKQ0bF85qS/XbsRGG1MiTByDNlEVpEPceMkDr46LNH95DtRwcsfA==", + "dev": true, + "dependencies": { + "@commitlint/config-validator": "^19.5.0", + "@commitlint/execute-rule": "^19.5.0", + "@commitlint/resolve-extends": "^19.5.0", + "@commitlint/types": "^19.5.0", + "chalk": "^5.3.0", + "cosmiconfig": "^9.0.0", + "cosmiconfig-typescript-loader": "^6.1.0", + "lodash.isplainobject": "^4.0.6", + "lodash.merge": "^4.6.2", + "lodash.uniq": "^4.5.0" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/load/node_modules/chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "dev": true, + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@commitlint/message": { + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-19.5.0.tgz", + "integrity": "sha512-R7AM4YnbxN1Joj1tMfCyBryOC5aNJBdxadTZkuqtWi3Xj0kMdutq16XQwuoGbIzL2Pk62TALV1fZDCv36+JhTQ==", + "dev": true, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/parse": { + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-19.5.0.tgz", + "integrity": "sha512-cZ/IxfAlfWYhAQV0TwcbdR1Oc0/r0Ik1GEessDJ3Lbuma/MRO8FRQX76eurcXtmhJC//rj52ZSZuXUg0oIX0Fw==", + "dev": true, + "dependencies": { + "@commitlint/types": "^19.5.0", + "conventional-changelog-angular": "^7.0.0", + "conventional-commits-parser": "^5.0.0" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/read": { + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-19.5.0.tgz", + "integrity": "sha512-TjS3HLPsLsxFPQj6jou8/CZFAmOP2y+6V4PGYt3ihbQKTY1Jnv0QG28WRKl/d1ha6zLODPZqsxLEov52dhR9BQ==", + "dev": true, + "dependencies": { + "@commitlint/top-level": "^19.5.0", + "@commitlint/types": "^19.5.0", + "git-raw-commits": "^4.0.0", + "minimist": "^1.2.8", + "tinyexec": "^0.3.0" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/resolve-extends": { + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-19.5.0.tgz", + "integrity": "sha512-CU/GscZhCUsJwcKTJS9Ndh3AKGZTNFIOoQB2n8CmFnizE0VnEuJoum+COW+C1lNABEeqk6ssfc1Kkalm4bDklA==", + "dev": true, + "dependencies": { + "@commitlint/config-validator": "^19.5.0", + "@commitlint/types": "^19.5.0", + "global-directory": "^4.0.1", + "import-meta-resolve": "^4.0.0", + "lodash.mergewith": "^4.6.2", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/rules": { + "version": "19.6.0", + "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-19.6.0.tgz", + "integrity": "sha512-1f2reW7lbrI0X0ozZMesS/WZxgPa4/wi56vFuJENBmed6mWq5KsheN/nxqnl/C23ioxpPO/PL6tXpiiFy5Bhjw==", + "dev": true, + "dependencies": { + "@commitlint/ensure": "^19.5.0", + "@commitlint/message": "^19.5.0", + "@commitlint/to-lines": "^19.5.0", + "@commitlint/types": "^19.5.0" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/to-lines": { + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-19.5.0.tgz", + "integrity": "sha512-R772oj3NHPkodOSRZ9bBVNq224DOxQtNef5Pl8l2M8ZnkkzQfeSTr4uxawV2Sd3ui05dUVzvLNnzenDBO1KBeQ==", + "dev": true, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/top-level": { + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-19.5.0.tgz", + "integrity": "sha512-IP1YLmGAk0yWrImPRRc578I3dDUI5A2UBJx9FbSOjxe9sTlzFiwVJ+zeMLgAtHMtGZsC8LUnzmW1qRemkFU4ng==", + "dev": true, + "dependencies": { + "find-up": "^7.0.0" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/top-level/node_modules/find-up": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-7.0.0.tgz", + "integrity": "sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==", + "dev": true, + "dependencies": { + "locate-path": "^7.2.0", + "path-exists": "^5.0.0", + "unicorn-magic": "^0.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@commitlint/top-level/node_modules/locate-path": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "dev": true, + "dependencies": { + "p-locate": "^6.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@commitlint/top-level/node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@commitlint/top-level/node_modules/p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "dev": true, + "dependencies": { + "p-limit": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@commitlint/top-level/node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/@commitlint/top-level/node_modules/yocto-queue": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.1.1.tgz", + "integrity": "sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==", + "dev": true, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@commitlint/types": { + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-19.5.0.tgz", + "integrity": "sha512-DSHae2obMSMkAtTBSOulg5X7/z+rGLxcXQIkg3OmWvY6wifojge5uVMydfhUvs7yQj+V7jNmRZ2Xzl8GJyqRgg==", + "dev": true, + "dependencies": { + "@types/conventional-commits-parser": "^5.0.0", + "chalk": "^5.3.0" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/types/node_modules/chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "dev": true, + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.0.tgz", + "integrity": "sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.0.tgz", + "integrity": "sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.0.tgz", + "integrity": "sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.0.tgz", + "integrity": "sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.0.tgz", + "integrity": "sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.0.tgz", + "integrity": "sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.0.tgz", + "integrity": "sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.0.tgz", + "integrity": "sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.0.tgz", + "integrity": "sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.0.tgz", + "integrity": "sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.0.tgz", + "integrity": "sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.0.tgz", + "integrity": "sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.0.tgz", + "integrity": "sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.0.tgz", + "integrity": "sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.0.tgz", + "integrity": "sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.0.tgz", + "integrity": "sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.0.tgz", + "integrity": "sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.0.tgz", + "integrity": "sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.0.tgz", + "integrity": "sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.0.tgz", + "integrity": "sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.0.tgz", + "integrity": "sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.0.tgz", + "integrity": "sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.0.tgz", + "integrity": "sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.0.tgz", + "integrity": "sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "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/compat": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@eslint/compat/-/compat-1.2.4.tgz", + "integrity": "sha512-S8ZdQj/N69YAtuqFt7653jwcvuUj131+6qGLUyDqfDg1OIoBQ66OCuXC473YQfO2AaxITTutiRQiDwoo7ZLYyg==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "peerDependencies": { + "eslint": "^9.10.0" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/@eslint/config-array": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.0.tgz", + "integrity": "sha512-zdHg2FPIFNKPdcHWtiNT+jEFCHYVplAXRDlQDyqy0zGx/q2parwh7brGJSiTxRk/TSMkbM//zt/f5CHgyTyaSQ==", + "dev": true, + "dependencies": { + "@eslint/object-schema": "^2.1.4", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.9.0.tgz", + "integrity": "sha512-7ATR9F0e4W85D/0w7cU0SNj7qkAexMG+bAHEZOjo9akvGuhHE2m7umzWzfnpa0XAg5Kxc1BWmtPMV67jJ+9VUg==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.2.0.tgz", + "integrity": "sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==", + "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/eslintrc/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/@eslint/eslintrc/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/@eslint/js": { + "version": "9.17.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.17.0.tgz", + "integrity": "sha512-Sxc4hqcs1kTu0iID3kcZDW3JHq2a77HO9P8CP6YEA/FpH3Ll8UXE2r/86Rz9YJLKme39S9vU5OWNjC6Xl0Cr3w==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.4.tgz", + "integrity": "sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.3.tgz", + "integrity": "sha512-2b/g5hRmpbb1o4GnTZax9N9m0FXzz9OV42ZzI4rDDMDuHUqigAiQCEWChBWCY4ztAGVRjoWT19v0yMmc5/L5kA==", + "dev": true, + "dependencies": { + "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.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.1.tgz", + "integrity": "sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==", + "dev": true, + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", + "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.21", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.21.tgz", + "integrity": "sha512-SRfKmRe1KvYnxjEMtxEr+J4HIeMX5YBg/qhRHpxEIGjhX1rshcHlnFUE9K0GazhVKWM7B+nARSkV8LuvJdJ5/g==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "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/@pkgr/core": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz", + "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, + "node_modules/@rollup/pluginutils": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", + "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", + "dev": true, + "dependencies": { + "estree-walker": "^2.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.27.4.tgz", + "integrity": "sha512-2Y3JT6f5MrQkICUyRVCw4oa0sutfAsgaSsb0Lmmy1Wi2y7X5vT9Euqw4gOsCyy0YfKURBg35nhUKZS4mDcfULw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.27.4.tgz", + "integrity": "sha512-wzKRQXISyi9UdCVRqEd0H4cMpzvHYt1f/C3CoIjES6cG++RHKhrBj2+29nPF0IB5kpy9MS71vs07fvrNGAl/iA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.27.4.tgz", + "integrity": "sha512-PlNiRQapift4LNS8DPUHuDX/IdXiLjf8mc5vdEmUR0fF/pyy2qWwzdLjB+iZquGr8LuN4LnUoSEvKRwjSVYz3Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.27.4.tgz", + "integrity": "sha512-o9bH2dbdgBDJaXWJCDTNDYa171ACUdzpxSZt+u/AAeQ20Nk5x+IhA+zsGmrQtpkLiumRJEYef68gcpn2ooXhSQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.27.4.tgz", + "integrity": "sha512-NBI2/i2hT9Q+HySSHTBh52da7isru4aAAo6qC3I7QFVsuhxi2gM8t/EI9EVcILiHLj1vfi+VGGPaLOUENn7pmw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.27.4.tgz", + "integrity": "sha512-wYcC5ycW2zvqtDYrE7deary2P2UFmSh85PUpAx+dwTCO9uw3sgzD6Gv9n5X4vLaQKsrfTSZZ7Z7uynQozPVvWA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.27.4.tgz", + "integrity": "sha512-9OwUnK/xKw6DyRlgx8UizeqRFOfi9mf5TYCw1uolDaJSbUmBxP85DE6T4ouCMoN6pXw8ZoTeZCSEfSaYo+/s1w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.27.4.tgz", + "integrity": "sha512-Vgdo4fpuphS9V24WOV+KwkCVJ72u7idTgQaBoLRD0UxBAWTF9GWurJO9YD9yh00BzbkhpeXtm6na+MvJU7Z73A==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.27.4.tgz", + "integrity": "sha512-pleyNgyd1kkBkw2kOqlBx+0atfIIkkExOTiifoODo6qKDSpnc6WzUY5RhHdmTdIJXBdSnh6JknnYTtmQyobrVg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.27.4.tgz", + "integrity": "sha512-caluiUXvUuVyCHr5DxL8ohaaFFzPGmgmMvwmqAITMpV/Q+tPoaHZ/PWa3t8B2WyoRcIIuu1hkaW5KkeTDNSnMA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.27.4.tgz", + "integrity": "sha512-FScrpHrO60hARyHh7s1zHE97u0KlT/RECzCKAdmI+LEoC1eDh/RDji9JgFqyO+wPDb86Oa/sXkily1+oi4FzJQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.27.4.tgz", + "integrity": "sha512-qyyprhyGb7+RBfMPeww9FlHwKkCXdKHeGgSqmIXw9VSUtvyFZ6WZRtnxgbuz76FK7LyoN8t/eINRbPUcvXB5fw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.27.4.tgz", + "integrity": "sha512-PFz+y2kb6tbh7m3A7nA9++eInGcDVZUACulf/KzDtovvdTizHpZaJty7Gp0lFwSQcrnebHOqxF1MaKZd7psVRg==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.27.4.tgz", + "integrity": "sha512-Ni8mMtfo+o/G7DVtweXXV/Ol2TFf63KYjTtoZ5f078AUgJTmaIJnj4JFU7TK/9SVWTaSJGxPi5zMDgK4w+Ez7Q==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.27.4.tgz", + "integrity": "sha512-5AeeAF1PB9TUzD+3cROzFTnAJAcVUGLuR8ng0E0WXGkYhp6RD6L+6szYVX+64Rs0r72019KHZS1ka1q+zU/wUw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.27.4.tgz", + "integrity": "sha512-yOpVsA4K5qVwu2CaS3hHxluWIK5HQTjNV4tWjQXluMiiiu4pJj4BN98CvxohNCpcjMeTXk/ZMJBRbgRg8HBB6A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.27.4.tgz", + "integrity": "sha512-KtwEJOaHAVJlxV92rNYiG9JQwQAdhBlrjNRp7P9L8Cb4Rer3in+0A+IPhJC9y68WAi9H0sX4AiG2NTsVlmqJeQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.27.4.tgz", + "integrity": "sha512-3j4jx1TppORdTAoBJRd+/wJRGCPC0ETWkXOecJ6PPZLj6SptXkrXcNqdj0oclbKML6FkQltdz7bBA3rUSirZug==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@types/conventional-commits-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/conventional-commits-parser/-/conventional-commits-parser-5.0.0.tgz", + "integrity": "sha512-loB369iXNmAZglwWATL+WRe+CRMmmBPtpolYzIebFaX4YA3x+BEfLqhUAV9WanycKI3TG1IMr5bMJDajDKLlUQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true + }, + "node_modules/@types/gtag.js": { + "version": "0.0.20", + "resolved": "https://registry.npmjs.org/@types/gtag.js/-/gtag.js-0.0.20.tgz", + "integrity": "sha512-wwAbk3SA2QeU67unN7zPxjEHmPmlXwZXZvQEpbEUQuMCRGgKyE1m6XDuTUA9b6pCGb/GqJmdfMOY5LuDjJSbbg==", + "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/node": { + "version": "18.18.11", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.11.tgz", + "integrity": "sha512-c1vku6qnTeujJneYH94/4aq73XrVcsJe35UPyAsSok1ijiKrkRzK+AxQPSpNMUnC03roWBBwJx/9I8V7lQoxmA==", + "dev": true, + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/prop-types": { + "version": "15.7.11", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz", + "integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==", + "optional": true, + "peer": true + }, + "node_modules/@types/react": { + "version": "18.2.47", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.47.tgz", + "integrity": "sha512-xquNkkOirwyCgoClNk85BjP+aqnIS+ckAJ8i37gAbDs14jfW/J23f2GItAf33oiUPQnqNMALiFeoM9Y5mbjpVQ==", + "optional": true, + "peer": true, + "dependencies": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/scheduler": { + "version": "0.16.8", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz", + "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==", + "optional": true, + "peer": true + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.18.1.tgz", + "integrity": "sha512-Ncvsq5CT3Gvh+uJG0Lwlho6suwDfUXH0HztslDf5I+F2wAFAZMRwYLEorumpKLzmO2suAXZ/td1tBg4NZIi9CQ==", + "dev": true, + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.18.1", + "@typescript-eslint/type-utils": "8.18.1", + "@typescript-eslint/utils": "8.18.1", + "@typescript-eslint/visitor-keys": "8.18.1", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^1.3.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.8.0" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.18.1.tgz", + "integrity": "sha512-rBnTWHCdbYM2lh7hjyXqxk70wvon3p2FyaniZuey5TrcGBpfhVp0OxOa6gxr9Q9YhZFKyfbEnxc24ZnVbbUkCA==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "8.18.1", + "@typescript-eslint/types": "8.18.1", + "@typescript-eslint/typescript-estree": "8.18.1", + "@typescript-eslint/visitor-keys": "8.18.1", + "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.8.0" + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.18.1.tgz", + "integrity": "sha512-HxfHo2b090M5s2+/9Z3gkBhI6xBH8OJCFjH9MhQ+nnoZqxU3wNxkLT+VWXWSFWc3UF3Z+CfPAyqdCTdoXtDPCQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "8.18.1", + "@typescript-eslint/visitor-keys": "8.18.1" + }, + "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.18.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.18.1.tgz", + "integrity": "sha512-jAhTdK/Qx2NJPNOTxXpMwlOiSymtR2j283TtPqXkKBdH8OAMmhiUfP0kJjc/qSE51Xrq02Gj9NY7MwK+UxVwHQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "8.18.1", + "@typescript-eslint/utils": "8.18.1", + "debug": "^4.3.4", + "ts-api-utils": "^1.3.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.8.0" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.18.1.tgz", + "integrity": "sha512-7uoAUsCj66qdNQNpH2G8MyTFlgerum8ubf21s3TSM3XmKXuIn+H2Sifh/ES2nPOPiYSRJWAk0fDkW0APBWcpfw==", + "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.18.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.18.1.tgz", + "integrity": "sha512-z8U21WI5txzl2XYOW7i9hJhxoKKNG1kcU4RzyNvKrdZDmbjkmLBo8bgeiOJmA06kizLI76/CCBAAGlTlEeUfyg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "8.18.1", + "@typescript-eslint/visitor-keys": "8.18.1", + "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": "^1.3.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.8.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/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.18.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.18.1.tgz", + "integrity": "sha512-8vikiIj2ebrC4WRdcAdDcmnu9Q/MXXwg+STf40BVfT8exDqBCUPdypvzcUPxEqRGKg9ALagZ0UWcYCtn+4W2iQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "8.18.1", + "@typescript-eslint/types": "8.18.1", + "@typescript-eslint/typescript-estree": "8.18.1" + }, + "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.8.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.18.1.tgz", + "integrity": "sha512-Vj0WLm5/ZsD013YeUKn+K0y8p1M0jPpxOkKdbD1wB0ns53a5piVY02zjf072TblEweAbcYiFiPoSMF3kp+VhhQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "8.18.1", + "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/@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, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/acorn": { + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "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": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-escapes": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.0.0.tgz", + "integrity": "sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==", + "dev": true, + "dependencies": { + "environment": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "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, + "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/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/array-ify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", + "integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==", + "dev": true + }, + "node_modules/async": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", + "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", + "dev": true + }, + "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/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 + }, + "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/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 + }, + "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/camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "dev": true, + "dependencies": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "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/clean-css": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz", + "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==", + "dev": true, + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 10.0" + } + }, + "node_modules/cli-cursor": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", + "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", + "dev": true, + "dependencies": { + "restore-cursor": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-truncate": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-4.0.0.tgz", + "integrity": "sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==", + "dev": true, + "dependencies": { + "slice-ansi": "^5.0.0", + "string-width": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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, + "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 + }, + "node_modules/cliui/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, + "engines": { + "node": ">=8" + } + }, + "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, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "dev": 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==", + "dev": true + }, + "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 + }, + "node_modules/commander": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", + "dev": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/compare-func": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", + "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==", + "dev": true, + "dependencies": { + "array-ify": "^1.0.0", + "dot-prop": "^5.1.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/connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/consola": { + "version": "2.15.3", + "resolved": "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz", + "integrity": "sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==", + "dev": true + }, + "node_modules/conventional-changelog-angular": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-7.0.0.tgz", + "integrity": "sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==", + "dev": true, + "dependencies": { + "compare-func": "^2.0.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/conventional-changelog-conventionalcommits": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-7.0.2.tgz", + "integrity": "sha512-NKXYmMR/Hr1DevQegFB4MwfM5Vv0m4UIxKZTTYuD98lpTknaZlSRrDOG4X7wIXpGkfsYxZTghUN+Qq+T0YQI7w==", + "dev": true, + "dependencies": { + "compare-func": "^2.0.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/conventional-commits-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-5.0.0.tgz", + "integrity": "sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==", + "dev": true, + "dependencies": { + "is-text-path": "^2.0.0", + "JSONStream": "^1.3.5", + "meow": "^12.0.1", + "split2": "^4.0.0" + }, + "bin": { + "conventional-commits-parser": "cli.mjs" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/cosmiconfig": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", + "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", + "dev": true, + "dependencies": { + "env-paths": "^2.2.1", + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/cosmiconfig-typescript-loader": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-6.1.0.tgz", + "integrity": "sha512-tJ1w35ZRUiM5FeTzT7DtYWAFFv37ZLqSRkGi2oeCK1gPhvaWjkAtfXvLmvE1pRfxxp9aQo6ba/Pvg1dKj05D4g==", + "dev": true, + "dependencies": { + "jiti": "^2.4.1" + }, + "engines": { + "node": ">=v18" + }, + "peerDependencies": { + "@types/node": "*", + "cosmiconfig": ">=9", + "typescript": ">=5" + } + }, + "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/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "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, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "optional": true, + "peer": true + }, + "node_modules/dargs": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/dargs/-/dargs-8.1.0.tgz", + "integrity": "sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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/detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", + "dev": true, + "optional": true, + "peer": true, + "bin": { + "detect-libc": "bin/detect-libc.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dev": true, + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "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, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "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, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dotenv": { + "version": "16.3.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.3.1.tgz", + "integrity": "sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/motdotla/dotenv?sponsor=1" + } + }, + "node_modules/dotenv-expand": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-8.0.3.tgz", + "integrity": "sha512-SErOMvge0ZUyWd5B0NXMQlDkN+8r+HhVUsxgOO7IoPDOdDRD2JjExpN6y3KnFR66jsJMwSn1pqIivhU5rcJiNg==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "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, + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/emoji-regex": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", + "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", + "dev": true + }, + "node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/environment": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz", + "integrity": "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/esbuild": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.0.tgz", + "integrity": "sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.24.0", + "@esbuild/android-arm": "0.24.0", + "@esbuild/android-arm64": "0.24.0", + "@esbuild/android-x64": "0.24.0", + "@esbuild/darwin-arm64": "0.24.0", + "@esbuild/darwin-x64": "0.24.0", + "@esbuild/freebsd-arm64": "0.24.0", + "@esbuild/freebsd-x64": "0.24.0", + "@esbuild/linux-arm": "0.24.0", + "@esbuild/linux-arm64": "0.24.0", + "@esbuild/linux-ia32": "0.24.0", + "@esbuild/linux-loong64": "0.24.0", + "@esbuild/linux-mips64el": "0.24.0", + "@esbuild/linux-ppc64": "0.24.0", + "@esbuild/linux-riscv64": "0.24.0", + "@esbuild/linux-s390x": "0.24.0", + "@esbuild/linux-x64": "0.24.0", + "@esbuild/netbsd-x64": "0.24.0", + "@esbuild/openbsd-arm64": "0.24.0", + "@esbuild/openbsd-x64": "0.24.0", + "@esbuild/sunos-x64": "0.24.0", + "@esbuild/win32-arm64": "0.24.0", + "@esbuild/win32-ia32": "0.24.0", + "@esbuild/win32-x64": "0.24.0" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "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.17.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.17.0.tgz", + "integrity": "sha512-evtlNcpJg+cZLcnVKwsai8fExnqjGPicK7gnUtlNuzu+Fv9bI0aLpND5T44VLQtoMEnI57LoXO9XAkIXwohKrA==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.19.0", + "@eslint/core": "^0.9.0", + "@eslint/eslintrc": "^3.2.0", + "@eslint/js": "9.17.0", + "@eslint/plugin-kit": "^0.2.3", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.1", + "@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.2.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" + }, + "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-plugin-prettier": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.1.tgz", + "integrity": "sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==", + "dev": true, + "dependencies": { + "prettier-linter-helpers": "^1.0.0", + "synckit": "^0.9.1" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint-plugin-prettier" + }, + "peerDependencies": { + "@types/eslint": ">=8.0.0", + "eslint": ">=8.0.0", + "eslint-config-prettier": "*", + "prettier": ">=3.0.0" + }, + "peerDependenciesMeta": { + "@types/eslint": { + "optional": true + }, + "eslint-config-prettier": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-simple-import-sort": { + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-12.1.1.tgz", + "integrity": "sha512-6nuzu4xwQtE3332Uz0to+TxDQYRLTKRESSc2hefVT48Zc8JthmN23Gx9lnYhu0FtkRSL1oxny3kJ2aveVhmOVA==", + "dev": true, + "peerDependencies": { + "eslint": ">=5.0.0" + } + }, + "node_modules/eslint-scope": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz", + "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==", + "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": "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/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/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/eslint/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/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/espree/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/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/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, + "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/eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==" + }, + "node_modules/execa": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/execa/node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "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/fast-uri": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.3.tgz", + "integrity": "sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.14.0.tgz", + "integrity": "sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg==", + "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/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, + "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, + "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, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "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/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.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true + }, + "node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "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, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "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, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-east-asian-width": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz", + "integrity": "sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "dev": true, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/git-raw-commits": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-4.0.0.tgz", + "integrity": "sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ==", + "dev": true, + "dependencies": { + "dargs": "^8.0.0", + "meow": "^12.0.1", + "split2": "^4.0.0" + }, + "bin": { + "git-raw-commits": "cli.mjs" + }, + "engines": { + "node": ">=16" + } + }, + "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/global-directory": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/global-directory/-/global-directory-4.0.1.tgz", + "integrity": "sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==", + "dev": true, + "dependencies": { + "ini": "4.1.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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/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 + }, + "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-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/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "bin": { + "he": "bin/he" + } + }, + "node_modules/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", + "dev": true, + "dependencies": { + "camel-case": "^4.1.2", + "clean-css": "^5.2.2", + "commander": "^8.3.0", + "he": "^1.2.0", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.10.0" + }, + "bin": { + "html-minifier-terser": "cli.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/html-minifier-terser/node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "dev": true, + "engines": { + "node": ">= 12" + } + }, + "node_modules/human-signals": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "dev": true, + "engines": { + "node": ">=16.17.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==", + "dev": true, + "bin": { + "husky": "bin.js" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/typicode" + } + }, + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "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/import-fresh/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/import-meta-resolve": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz", + "integrity": "sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "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/ini": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.1.tgz", + "integrity": "sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "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 + }, + "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-fullwidth-code-point": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", + "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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-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-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-text-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-2.0.0.tgz", + "integrity": "sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==", + "dev": true, + "dependencies": { + "text-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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/jake": { + "version": "10.8.7", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.7.tgz", + "integrity": "sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==", + "dev": true, + "dependencies": { + "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/jiti": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.4.1.tgz", + "integrity": "sha512-yPBThwecp1wS9DmoA4x4KR2h3QoslacnDR8ypuFM962kI4/456Iy1oHx2RAgh4jfZNdn0bctsdadceiBUgpU1g==", + "dev": true, + "bin": { + "jiti": "lib/jiti-cli.mjs" + } + }, + "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-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 + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "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/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", + "dev": true, + "engines": [ + "node >= 0.2.0" + ] + }, + "node_modules/JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dev": true, + "dependencies": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + }, + "bin": { + "JSONStream": "bin.js" + }, + "engines": { + "node": "*" + } + }, + "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/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/lightningcss": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.22.1.tgz", + "integrity": "sha512-Fy45PhibiNXkm0cK5FJCbfO8Y6jUpD/YcHf/BtuI+jvYYqSXKF4muk61jjE8YxCR9y+hDYIWSzHTc+bwhDE6rQ==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "detect-libc": "^1.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-darwin-arm64": "1.22.1", + "lightningcss-darwin-x64": "1.22.1", + "lightningcss-freebsd-x64": "1.22.1", + "lightningcss-linux-arm-gnueabihf": "1.22.1", + "lightningcss-linux-arm64-gnu": "1.22.1", + "lightningcss-linux-arm64-musl": "1.22.1", + "lightningcss-linux-x64-gnu": "1.22.1", + "lightningcss-linux-x64-musl": "1.22.1", + "lightningcss-win32-x64-msvc": "1.22.1" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.22.1.tgz", + "integrity": "sha512-ldvElu+R0QimNTjsKpaZkUv3zf+uefzLy/R1R19jtgOfSRM+zjUCUgDhfEDRmVqJtMwYsdhMI2aJtJChPC6Osg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.22.1.tgz", + "integrity": "sha512-5p2rnlVTv6Gpw4PlTLq925nTVh+HFh4MpegX8dPDYJae+NFVjQ67gY7O6iHIzQjLipDiYejFF0yHrhjU3XgLBQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.22.1.tgz", + "integrity": "sha512-1FaBtcFrZqB2hkFbAxY//Pnp8koThvyB6AhjbdVqKD4/pu13Rl91fKt2N9qyeQPUt3xy7ORUvSO+dPk3J6EjXg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "peer": true, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.22.1.tgz", + "integrity": "sha512-6rub98tYGfE5I5j0BP8t/2d4BZyu1S7Iz9vUkm0H26snAFHYxLfj3RbQn0xHHIePSetjLnhcg3QlfwUAkD/FYg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.22.1.tgz", + "integrity": "sha512-nYO5qGtb/1kkTZu3FeTiM+2B2TAb7m2DkLCTgQIs2bk2o9aEs7I96fwySKcoHWQAiQDGR9sMux9vkV4KQXqPaQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.22.1.tgz", + "integrity": "sha512-MCV6RuRpzXbunvzwY644iz8cw4oQxvW7oer9xPkdadYqlEyiJJ6wl7FyJOH7Q6ZYH4yjGAUCvxDBxPbnDu9ZVg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.22.1.tgz", + "integrity": "sha512-RjNgpdM20VUXgV7us/VmlO3Vn2ZRiDnc3/bUxCVvySZWPiVPprpqW/QDWuzkGa+NCUf6saAM5CLsZLSxncXJwg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.22.1.tgz", + "integrity": "sha512-ZgO4C7Rd6Hv/5MnyY2KxOYmIlzk4rplVolDt3NbkNR8DndnyX0Q5IR4acJWNTBICQ21j3zySzKbcJaiJpk/4YA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.22.1.tgz", + "integrity": "sha512-4pozV4eyD0MDET41ZLHAeBo+H04Nm2UEYIk5w/ts40231dRFV7E0cjwbnZvSoc1DXFgecAhiC0L16ruv/ZDCpg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lilconfig": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "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 + }, + "node_modules/lint-staged": { + "version": "15.2.11", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-15.2.11.tgz", + "integrity": "sha512-Ev6ivCTYRTGs9ychvpVw35m/bcNDuBN+mnTeObCL5h+boS5WzBEC6LHI4I9F/++sZm1m+J2LEiy0gxL/R9TBqQ==", + "dev": true, + "dependencies": { + "chalk": "~5.3.0", + "commander": "~12.1.0", + "debug": "~4.4.0", + "execa": "~8.0.1", + "lilconfig": "~3.1.3", + "listr2": "~8.2.5", + "micromatch": "~4.0.8", + "pidtree": "~0.6.0", + "string-argv": "~0.3.2", + "yaml": "~2.6.1" + }, + "bin": { + "lint-staged": "bin/lint-staged.js" + }, + "engines": { + "node": ">=18.12.0" + }, + "funding": { + "url": "https://opencollective.com/lint-staged" + } + }, + "node_modules/lint-staged/node_modules/chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "dev": true, + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/listr2": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-8.2.5.tgz", + "integrity": "sha512-iyAZCeyD+c1gPyE9qpFu8af0Y+MRtmKOncdGoA2S5EY8iFq99dmmvkNnHiWo+pj0s7yH7l3KPIgee77tKpXPWQ==", + "dev": true, + "dependencies": { + "cli-truncate": "^4.0.0", + "colorette": "^2.0.20", + "eventemitter3": "^5.0.1", + "log-update": "^6.1.0", + "rfdc": "^1.4.1", + "wrap-ansi": "^9.0.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/listr2/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, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/listr2/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, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/listr2/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, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/listr2/node_modules/wrap-ansi": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", + "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "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", + "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.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", + "dev": true + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "dev": true + }, + "node_modules/lodash.kebabcase": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", + "integrity": "sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==", + "dev": true + }, + "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.mergewith": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz", + "integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==", + "dev": true + }, + "node_modules/lodash.snakecase": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz", + "integrity": "sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==", + "dev": true + }, + "node_modules/lodash.startcase": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.startcase/-/lodash.startcase-4.4.0.tgz", + "integrity": "sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==", + "dev": true + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", + "dev": true + }, + "node_modules/lodash.upperfirst": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz", + "integrity": "sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==", + "dev": true + }, + "node_modules/log-update": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-6.1.0.tgz", + "integrity": "sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==", + "dev": true, + "dependencies": { + "ansi-escapes": "^7.0.0", + "cli-cursor": "^5.0.0", + "slice-ansi": "^7.1.0", + "strip-ansi": "^7.1.0", + "wrap-ansi": "^9.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/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, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/log-update/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, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/log-update/node_modules/is-fullwidth-code-point": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz", + "integrity": "sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==", + "dev": true, + "dependencies": { + "get-east-asian-width": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/slice-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.0.tgz", + "integrity": "sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.2.1", + "is-fullwidth-code-point": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/log-update/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, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/log-update/node_modules/wrap-ansi": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", + "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "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, + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/meow": { + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/meow/-/meow-12.1.1.tgz", + "integrity": "sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==", + "dev": true, + "engines": { + "node": ">=16.10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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 + }, + "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/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mimic-function": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz", + "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", + "dev": true, + "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/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/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, + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/node-html-parser": { + "version": "5.4.2", + "resolved": "https://registry.npmjs.org/node-html-parser/-/node-html-parser-5.4.2.tgz", + "integrity": "sha512-RaBPP3+51hPne/OolXxcz89iYvQvKOydaqoePpOgXcrOKZhjVIzmpKZz+Hd/RBO2/zN2q6CNJhQzucVz+u3Jyw==", + "dev": true, + "dependencies": { + "css-select": "^4.2.1", + "he": "1.2.0" + } + }, + "node_modules/npm-run-path": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "dev": true, + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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, + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/onetime": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", + "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", + "dev": true, + "dependencies": { + "mimic-function": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dev": true, + "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "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/param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "dev": true, + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "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/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, + "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/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "dev": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "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/pathe": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-0.2.0.tgz", + "integrity": "sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw==", + "dev": true + }, + "node_modules/phaser": { + "version": "3.87.0", + "resolved": "https://registry.npmjs.org/phaser/-/phaser-3.87.0.tgz", + "integrity": "sha512-AyI1b3T5fp05gzf6WUmu2FNqaZL+Y7w88yBRLf7YZXF9bncUSHpnDrupnTGoPqy/RKHRLBcay7zWeqQ2wiMWcw==", + "dependencies": { + "eventemitter3": "^5.0.1" + } + }, + "node_modules/phaser-jsx": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/phaser-jsx/-/phaser-jsx-0.11.0.tgz", + "integrity": "sha512-pvoy3cMJe1eY7T+2VYsb9VzZoFZNo22yTYjBsPr/8t5uyw2osmhqjLBefuFam47q6arOYk8n1lGc35B8nUAfmg==", + "peerDependencies": { + "@types/react": "17 || 18 || 19", + "phaser": "3" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true + }, + "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/pidtree": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz", + "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==", + "dev": true, + "bin": { + "pidtree": "bin/pidtree.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/postcss": { + "version": "8.4.49", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", + "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", + "dev": true, + "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.7", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "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/prettier": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.4.2.tgz", + "integrity": "sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==", + "dev": true, + "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, + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "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/relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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, + "engines": { + "node": ">=8" + } + }, + "node_modules/restore-cursor": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", + "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", + "dev": true, + "dependencies": { + "onetime": "^7.0.0", + "signal-exit": "^4.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "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 + }, + "node_modules/rollup": { + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.27.4.tgz", + "integrity": "sha512-RLKxqHEMjh/RGLsDxAEsaLO3mWgyoU6x9w6n1ikAzet4B3gI2/3yP6PWY2p9QzRTh6MfEIXB3MwsOY0Iv3vNrw==", + "dev": true, + "dependencies": { + "@types/estree": "1.0.6" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.27.4", + "@rollup/rollup-android-arm64": "4.27.4", + "@rollup/rollup-darwin-arm64": "4.27.4", + "@rollup/rollup-darwin-x64": "4.27.4", + "@rollup/rollup-freebsd-arm64": "4.27.4", + "@rollup/rollup-freebsd-x64": "4.27.4", + "@rollup/rollup-linux-arm-gnueabihf": "4.27.4", + "@rollup/rollup-linux-arm-musleabihf": "4.27.4", + "@rollup/rollup-linux-arm64-gnu": "4.27.4", + "@rollup/rollup-linux-arm64-musl": "4.27.4", + "@rollup/rollup-linux-powerpc64le-gnu": "4.27.4", + "@rollup/rollup-linux-riscv64-gnu": "4.27.4", + "@rollup/rollup-linux-s390x-gnu": "4.27.4", + "@rollup/rollup-linux-x64-gnu": "4.27.4", + "@rollup/rollup-linux-x64-musl": "4.27.4", + "@rollup/rollup-win32-arm64-msvc": "4.27.4", + "@rollup/rollup-win32-ia32-msvc": "4.27.4", + "@rollup/rollup-win32-x64-msvc": "4.27.4", + "fsevents": "~2.3.2" + } + }, + "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/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "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/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, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/slice-ansi": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", + "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.0.0", + "is-fullwidth-code-point": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/slice-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, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "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, + "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", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/split2": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", + "dev": true, + "engines": { + "node": ">= 10.x" + } + }, + "node_modules/string-argv": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz", + "integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==", + "dev": true, + "engines": { + "node": ">=0.6.19" + } + }, + "node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "dev": true, + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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, + "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, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "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, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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/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/synckit": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.1.tgz", + "integrity": "sha512-7gr8p9TQP6RAHusBOSLs46F4564ZrjV8xFmw5zCmgmhGUcw2hxsShhJ6CEiHQMgPDwAQ1fWHPM0ypc4RMAig4A==", + "dev": true, + "dependencies": { + "@pkgr/core": "^0.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, + "node_modules/terser": { + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.26.0.tgz", + "integrity": "sha512-dytTGoE2oHgbNV9nTzgBEPaqAWvcJNl66VZ0BkJqlvp71IjO8CxdBx/ykCNb47cLnCmCvRZ6ZR0tLkqvZCdVBQ==", + "dev": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/text-extensions": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-2.4.0.tgz", + "integrity": "sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==", + "dev": true, + "engines": { + "node": ">=8" + }, + "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 + }, + "node_modules/tinyexec": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.0.tgz", + "integrity": "sha512-tVGE0mVJPGb0chKhqmsoosjsS+qUnJVGJpZgsHYQcGoPlG3B51R3PouqTgEGH2Dc9jjFyOqOpix6ZHNMXp1FZg==", + "dev": true + }, + "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/ts-api-utils": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", + "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", + "dev": true, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dev": true + }, + "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/typescript": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.2.tgz", + "integrity": "sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true + }, + "node_modules/unicorn-magic": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", + "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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, + "engines": { + "node": ">= 10.0.0" + } + }, + "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/vite": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.0.3.tgz", + "integrity": "sha512-Cmuo5P0ENTN6HxLSo6IHsjCLn/81Vgrp81oaiFFMRa8gGDj5xEjIcEpf2ZymZtZR8oU0P2JX5WuUp/rlXcHkAw==", + "dev": true, + "dependencies": { + "esbuild": "^0.24.0", + "postcss": "^8.4.49", + "rollup": "^4.23.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "jiti": ">=1.21.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vite-plugin-html": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/vite-plugin-html/-/vite-plugin-html-3.2.2.tgz", + "integrity": "sha512-vb9C9kcdzcIo/Oc3CLZVS03dL5pDlOFuhGlZYDCJ840BhWl/0nGeZWf3Qy7NlOayscY4Cm/QRgULCQkEZige5Q==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^4.2.0", + "colorette": "^2.0.16", + "connect-history-api-fallback": "^1.6.0", + "consola": "^2.15.3", + "dotenv": "^16.0.0", + "dotenv-expand": "^8.0.2", + "ejs": "^3.1.6", + "fast-glob": "^3.2.11", + "fs-extra": "^10.0.1", + "html-minifier-terser": "^6.1.0", + "node-html-parser": "^5.3.3", + "pathe": "^0.2.0" + }, + "peerDependencies": { + "vite": ">=2.0.0" + } + }, + "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/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, + "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/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 + }, + "node_modules/wrap-ansi/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/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, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "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, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/yaml": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.6.1.tgz", + "integrity": "sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==", + "dev": true, + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/yargs": { + "version": "17.6.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", + "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", + "dev": true, + "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/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 + }, + "node_modules/yargs/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, + "engines": { + "node": ">=8" + } + }, + "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, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/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, + "engines": { + "node": ">=12" + } + }, + "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" + } + } + }, + "dependencies": { + "@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true + }, + "@babel/code-frame": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "dev": true + }, + "@commitlint/cli": { + "version": "19.6.1", + "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-19.6.1.tgz", + "integrity": "sha512-8hcyA6ZoHwWXC76BoC8qVOSr8xHy00LZhZpauiD0iO0VYbVhMnED0da85lTfIULxl7Lj4c6vZgF0Wu/ed1+jlQ==", + "dev": true, + "requires": { + "@commitlint/format": "^19.5.0", + "@commitlint/lint": "^19.6.0", + "@commitlint/load": "^19.6.1", + "@commitlint/read": "^19.5.0", + "@commitlint/types": "^19.5.0", + "tinyexec": "^0.3.0", + "yargs": "^17.0.0" + } + }, + "@commitlint/config-conventional": { + "version": "19.6.0", + "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-19.6.0.tgz", + "integrity": "sha512-DJT40iMnTYtBtUfw9ApbsLZFke1zKh6llITVJ+x9mtpHD08gsNXaIRqHTmwTZL3dNX5+WoyK7pCN/5zswvkBCQ==", + "dev": true, + "requires": { + "@commitlint/types": "^19.5.0", + "conventional-changelog-conventionalcommits": "^7.0.2" + } + }, + "@commitlint/config-validator": { + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-19.5.0.tgz", + "integrity": "sha512-CHtj92H5rdhKt17RmgALhfQt95VayrUo2tSqY9g2w+laAXyk7K/Ef6uPm9tn5qSIwSmrLjKaXK9eiNuxmQrDBw==", + "dev": true, + "requires": { + "@commitlint/types": "^19.5.0", + "ajv": "^8.11.0" + } + }, + "@commitlint/ensure": { + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-19.5.0.tgz", + "integrity": "sha512-Kv0pYZeMrdg48bHFEU5KKcccRfKmISSm9MvgIgkpI6m+ohFTB55qZlBW6eYqh/XDfRuIO0x4zSmvBjmOwWTwkg==", + "dev": true, + "requires": { + "@commitlint/types": "^19.5.0", + "lodash.camelcase": "^4.3.0", + "lodash.kebabcase": "^4.1.1", + "lodash.snakecase": "^4.1.1", + "lodash.startcase": "^4.4.0", + "lodash.upperfirst": "^4.3.1" + } + }, + "@commitlint/execute-rule": { + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-19.5.0.tgz", + "integrity": "sha512-aqyGgytXhl2ejlk+/rfgtwpPexYyri4t8/n4ku6rRJoRhGZpLFMqrZ+YaubeGysCP6oz4mMA34YSTaSOKEeNrg==", + "dev": true + }, + "@commitlint/format": { + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-19.5.0.tgz", + "integrity": "sha512-yNy088miE52stCI3dhG/vvxFo9e4jFkU1Mj3xECfzp/bIS/JUay4491huAlVcffOoMK1cd296q0W92NlER6r3A==", + "dev": true, + "requires": { + "@commitlint/types": "^19.5.0", + "chalk": "^5.3.0" + }, + "dependencies": { + "chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "dev": true + } + } + }, + "@commitlint/is-ignored": { + "version": "19.6.0", + "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-19.6.0.tgz", + "integrity": "sha512-Ov6iBgxJQFR9koOupDPHvcHU9keFupDgtB3lObdEZDroiG4jj1rzky60fbQozFKVYRTUdrBGICHG0YVmRuAJmw==", + "dev": true, + "requires": { + "@commitlint/types": "^19.5.0", + "semver": "^7.6.0" + } + }, + "@commitlint/lint": { + "version": "19.6.0", + "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-19.6.0.tgz", + "integrity": "sha512-LRo7zDkXtcIrpco9RnfhOKeg8PAnE3oDDoalnrVU/EVaKHYBWYL1DlRR7+3AWn0JiBqD8yKOfetVxJGdEtZ0tg==", + "dev": true, + "requires": { + "@commitlint/is-ignored": "^19.6.0", + "@commitlint/parse": "^19.5.0", + "@commitlint/rules": "^19.6.0", + "@commitlint/types": "^19.5.0" + } + }, + "@commitlint/load": { + "version": "19.6.1", + "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-19.6.1.tgz", + "integrity": "sha512-kE4mRKWWNju2QpsCWt428XBvUH55OET2N4QKQ0bF85qS/XbsRGG1MiTByDNlEVpEPceMkDr46LNH95DtRwcsfA==", + "dev": true, + "requires": { + "@commitlint/config-validator": "^19.5.0", + "@commitlint/execute-rule": "^19.5.0", + "@commitlint/resolve-extends": "^19.5.0", + "@commitlint/types": "^19.5.0", + "chalk": "^5.3.0", + "cosmiconfig": "^9.0.0", + "cosmiconfig-typescript-loader": "^6.1.0", + "lodash.isplainobject": "^4.0.6", + "lodash.merge": "^4.6.2", + "lodash.uniq": "^4.5.0" + }, + "dependencies": { + "chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "dev": true + } + } + }, + "@commitlint/message": { + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-19.5.0.tgz", + "integrity": "sha512-R7AM4YnbxN1Joj1tMfCyBryOC5aNJBdxadTZkuqtWi3Xj0kMdutq16XQwuoGbIzL2Pk62TALV1fZDCv36+JhTQ==", + "dev": true + }, + "@commitlint/parse": { + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-19.5.0.tgz", + "integrity": "sha512-cZ/IxfAlfWYhAQV0TwcbdR1Oc0/r0Ik1GEessDJ3Lbuma/MRO8FRQX76eurcXtmhJC//rj52ZSZuXUg0oIX0Fw==", + "dev": true, + "requires": { + "@commitlint/types": "^19.5.0", + "conventional-changelog-angular": "^7.0.0", + "conventional-commits-parser": "^5.0.0" + } + }, + "@commitlint/read": { + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-19.5.0.tgz", + "integrity": "sha512-TjS3HLPsLsxFPQj6jou8/CZFAmOP2y+6V4PGYt3ihbQKTY1Jnv0QG28WRKl/d1ha6zLODPZqsxLEov52dhR9BQ==", + "dev": true, + "requires": { + "@commitlint/top-level": "^19.5.0", + "@commitlint/types": "^19.5.0", + "git-raw-commits": "^4.0.0", + "minimist": "^1.2.8", + "tinyexec": "^0.3.0" + } + }, + "@commitlint/resolve-extends": { + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-19.5.0.tgz", + "integrity": "sha512-CU/GscZhCUsJwcKTJS9Ndh3AKGZTNFIOoQB2n8CmFnizE0VnEuJoum+COW+C1lNABEeqk6ssfc1Kkalm4bDklA==", + "dev": true, + "requires": { + "@commitlint/config-validator": "^19.5.0", + "@commitlint/types": "^19.5.0", + "global-directory": "^4.0.1", + "import-meta-resolve": "^4.0.0", + "lodash.mergewith": "^4.6.2", + "resolve-from": "^5.0.0" + } + }, + "@commitlint/rules": { + "version": "19.6.0", + "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-19.6.0.tgz", + "integrity": "sha512-1f2reW7lbrI0X0ozZMesS/WZxgPa4/wi56vFuJENBmed6mWq5KsheN/nxqnl/C23ioxpPO/PL6tXpiiFy5Bhjw==", + "dev": true, + "requires": { + "@commitlint/ensure": "^19.5.0", + "@commitlint/message": "^19.5.0", + "@commitlint/to-lines": "^19.5.0", + "@commitlint/types": "^19.5.0" + } + }, + "@commitlint/to-lines": { + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-19.5.0.tgz", + "integrity": "sha512-R772oj3NHPkodOSRZ9bBVNq224DOxQtNef5Pl8l2M8ZnkkzQfeSTr4uxawV2Sd3ui05dUVzvLNnzenDBO1KBeQ==", + "dev": true + }, + "@commitlint/top-level": { + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-19.5.0.tgz", + "integrity": "sha512-IP1YLmGAk0yWrImPRRc578I3dDUI5A2UBJx9FbSOjxe9sTlzFiwVJ+zeMLgAtHMtGZsC8LUnzmW1qRemkFU4ng==", + "dev": true, + "requires": { + "find-up": "^7.0.0" + }, + "dependencies": { + "find-up": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-7.0.0.tgz", + "integrity": "sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==", + "dev": true, + "requires": { + "locate-path": "^7.2.0", + "path-exists": "^5.0.0", + "unicorn-magic": "^0.1.0" + } + }, + "locate-path": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "dev": true, + "requires": { + "p-locate": "^6.0.0" + } + }, + "p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "dev": true, + "requires": { + "yocto-queue": "^1.0.0" + } + }, + "p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "dev": true, + "requires": { + "p-limit": "^4.0.0" + } + }, + "path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true + }, + "yocto-queue": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.1.1.tgz", + "integrity": "sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==", + "dev": true + } + } + }, + "@commitlint/types": { + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-19.5.0.tgz", + "integrity": "sha512-DSHae2obMSMkAtTBSOulg5X7/z+rGLxcXQIkg3OmWvY6wifojge5uVMydfhUvs7yQj+V7jNmRZ2Xzl8GJyqRgg==", + "dev": true, + "requires": { + "@types/conventional-commits-parser": "^5.0.0", + "chalk": "^5.3.0" + }, + "dependencies": { + "chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "dev": true + } + } + }, + "@esbuild/aix-ppc64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.0.tgz", + "integrity": "sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==", + "dev": true, + "optional": true + }, + "@esbuild/android-arm": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.0.tgz", + "integrity": "sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==", + "dev": true, + "optional": true + }, + "@esbuild/android-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.0.tgz", + "integrity": "sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==", + "dev": true, + "optional": true + }, + "@esbuild/android-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.0.tgz", + "integrity": "sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.0.tgz", + "integrity": "sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.0.tgz", + "integrity": "sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.0.tgz", + "integrity": "sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.0.tgz", + "integrity": "sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.0.tgz", + "integrity": "sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.0.tgz", + "integrity": "sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ia32": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.0.tgz", + "integrity": "sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-loong64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.0.tgz", + "integrity": "sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==", + "dev": true, + "optional": true + }, + "@esbuild/linux-mips64el": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.0.tgz", + "integrity": "sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ppc64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.0.tgz", + "integrity": "sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-riscv64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.0.tgz", + "integrity": "sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==", + "dev": true, + "optional": true + }, + "@esbuild/linux-s390x": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.0.tgz", + "integrity": "sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==", + "dev": true, + "optional": true + }, + "@esbuild/linux-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.0.tgz", + "integrity": "sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==", + "dev": true, + "optional": true + }, + "@esbuild/netbsd-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.0.tgz", + "integrity": "sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==", + "dev": true, + "optional": true + }, + "@esbuild/openbsd-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.0.tgz", + "integrity": "sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==", + "dev": true, + "optional": true + }, + "@esbuild/openbsd-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.0.tgz", + "integrity": "sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==", + "dev": true, + "optional": true + }, + "@esbuild/sunos-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.0.tgz", + "integrity": "sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==", + "dev": true, + "optional": true + }, + "@esbuild/win32-arm64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.0.tgz", + "integrity": "sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==", + "dev": true, + "optional": true + }, + "@esbuild/win32-ia32": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.0.tgz", + "integrity": "sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==", + "dev": true, + "optional": true + }, + "@esbuild/win32-x64": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.0.tgz", + "integrity": "sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==", + "dev": true, + "optional": true + }, + "@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^3.3.0" + } + }, + "@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 + }, + "@eslint/compat": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@eslint/compat/-/compat-1.2.4.tgz", + "integrity": "sha512-S8ZdQj/N69YAtuqFt7653jwcvuUj131+6qGLUyDqfDg1OIoBQ66OCuXC473YQfO2AaxITTutiRQiDwoo7ZLYyg==", + "dev": true, + "requires": {} + }, + "@eslint/config-array": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.0.tgz", + "integrity": "sha512-zdHg2FPIFNKPdcHWtiNT+jEFCHYVplAXRDlQDyqy0zGx/q2parwh7brGJSiTxRk/TSMkbM//zt/f5CHgyTyaSQ==", + "dev": true, + "requires": { + "@eslint/object-schema": "^2.1.4", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + } + }, + "@eslint/core": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.9.0.tgz", + "integrity": "sha512-7ATR9F0e4W85D/0w7cU0SNj7qkAexMG+bAHEZOjo9akvGuhHE2m7umzWzfnpa0XAg5Kxc1BWmtPMV67jJ+9VUg==", + "dev": true + }, + "@eslint/eslintrc": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.2.0.tgz", + "integrity": "sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==", + "dev": true, + "requires": { + "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" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "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 + } + } + }, + "@eslint/js": { + "version": "9.17.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.17.0.tgz", + "integrity": "sha512-Sxc4hqcs1kTu0iID3kcZDW3JHq2a77HO9P8CP6YEA/FpH3Ll8UXE2r/86Rz9YJLKme39S9vU5OWNjC6Xl0Cr3w==", + "dev": true + }, + "@eslint/object-schema": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.4.tgz", + "integrity": "sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==", + "dev": true + }, + "@eslint/plugin-kit": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.3.tgz", + "integrity": "sha512-2b/g5hRmpbb1o4GnTZax9N9m0FXzz9OV42ZzI4rDDMDuHUqigAiQCEWChBWCY4ztAGVRjoWT19v0yMmc5/L5kA==", + "dev": true, + "requires": { + "levn": "^0.4.1" + } + }, + "@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 + }, + "@humanfs/node": { + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", + "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", + "dev": true, + "requires": { + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.3.0" + }, + "dependencies": { + "@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 + } + } + }, + "@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 + }, + "@humanwhocodes/retry": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.1.tgz", + "integrity": "sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==", + "dev": true + }, + "@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "dev": true + }, + "@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true + }, + "@jridgewell/source-map": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", + "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.21", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.21.tgz", + "integrity": "sha512-SRfKmRe1KvYnxjEMtxEr+J4HIeMX5YBg/qhRHpxEIGjhX1rshcHlnFUE9K0GazhVKWM7B+nARSkV8LuvJdJ5/g==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "@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, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@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 + }, + "@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, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@pkgr/core": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz", + "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==", + "dev": true + }, + "@rollup/pluginutils": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", + "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", + "dev": true, + "requires": { + "estree-walker": "^2.0.1", + "picomatch": "^2.2.2" + } + }, + "@rollup/rollup-android-arm-eabi": { + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.27.4.tgz", + "integrity": "sha512-2Y3JT6f5MrQkICUyRVCw4oa0sutfAsgaSsb0Lmmy1Wi2y7X5vT9Euqw4gOsCyy0YfKURBg35nhUKZS4mDcfULw==", + "dev": true, + "optional": true + }, + "@rollup/rollup-android-arm64": { + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.27.4.tgz", + "integrity": "sha512-wzKRQXISyi9UdCVRqEd0H4cMpzvHYt1f/C3CoIjES6cG++RHKhrBj2+29nPF0IB5kpy9MS71vs07fvrNGAl/iA==", + "dev": true, + "optional": true + }, + "@rollup/rollup-darwin-arm64": { + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.27.4.tgz", + "integrity": "sha512-PlNiRQapift4LNS8DPUHuDX/IdXiLjf8mc5vdEmUR0fF/pyy2qWwzdLjB+iZquGr8LuN4LnUoSEvKRwjSVYz3Q==", + "dev": true, + "optional": true + }, + "@rollup/rollup-darwin-x64": { + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.27.4.tgz", + "integrity": "sha512-o9bH2dbdgBDJaXWJCDTNDYa171ACUdzpxSZt+u/AAeQ20Nk5x+IhA+zsGmrQtpkLiumRJEYef68gcpn2ooXhSQ==", + "dev": true, + "optional": true + }, + "@rollup/rollup-freebsd-arm64": { + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.27.4.tgz", + "integrity": "sha512-NBI2/i2hT9Q+HySSHTBh52da7isru4aAAo6qC3I7QFVsuhxi2gM8t/EI9EVcILiHLj1vfi+VGGPaLOUENn7pmw==", + "dev": true, + "optional": true + }, + "@rollup/rollup-freebsd-x64": { + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.27.4.tgz", + "integrity": "sha512-wYcC5ycW2zvqtDYrE7deary2P2UFmSh85PUpAx+dwTCO9uw3sgzD6Gv9n5X4vLaQKsrfTSZZ7Z7uynQozPVvWA==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.27.4.tgz", + "integrity": "sha512-9OwUnK/xKw6DyRlgx8UizeqRFOfi9mf5TYCw1uolDaJSbUmBxP85DE6T4ouCMoN6pXw8ZoTeZCSEfSaYo+/s1w==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-arm-musleabihf": { + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.27.4.tgz", + "integrity": "sha512-Vgdo4fpuphS9V24WOV+KwkCVJ72u7idTgQaBoLRD0UxBAWTF9GWurJO9YD9yh00BzbkhpeXtm6na+MvJU7Z73A==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-arm64-gnu": { + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.27.4.tgz", + "integrity": "sha512-pleyNgyd1kkBkw2kOqlBx+0atfIIkkExOTiifoODo6qKDSpnc6WzUY5RhHdmTdIJXBdSnh6JknnYTtmQyobrVg==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-arm64-musl": { + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.27.4.tgz", + "integrity": "sha512-caluiUXvUuVyCHr5DxL8ohaaFFzPGmgmMvwmqAITMpV/Q+tPoaHZ/PWa3t8B2WyoRcIIuu1hkaW5KkeTDNSnMA==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.27.4.tgz", + "integrity": "sha512-FScrpHrO60hARyHh7s1zHE97u0KlT/RECzCKAdmI+LEoC1eDh/RDji9JgFqyO+wPDb86Oa/sXkily1+oi4FzJQ==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-riscv64-gnu": { + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.27.4.tgz", + "integrity": "sha512-qyyprhyGb7+RBfMPeww9FlHwKkCXdKHeGgSqmIXw9VSUtvyFZ6WZRtnxgbuz76FK7LyoN8t/eINRbPUcvXB5fw==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-s390x-gnu": { + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.27.4.tgz", + "integrity": "sha512-PFz+y2kb6tbh7m3A7nA9++eInGcDVZUACulf/KzDtovvdTizHpZaJty7Gp0lFwSQcrnebHOqxF1MaKZd7psVRg==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-x64-gnu": { + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.27.4.tgz", + "integrity": "sha512-Ni8mMtfo+o/G7DVtweXXV/Ol2TFf63KYjTtoZ5f078AUgJTmaIJnj4JFU7TK/9SVWTaSJGxPi5zMDgK4w+Ez7Q==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-x64-musl": { + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.27.4.tgz", + "integrity": "sha512-5AeeAF1PB9TUzD+3cROzFTnAJAcVUGLuR8ng0E0WXGkYhp6RD6L+6szYVX+64Rs0r72019KHZS1ka1q+zU/wUw==", + "dev": true, + "optional": true + }, + "@rollup/rollup-win32-arm64-msvc": { + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.27.4.tgz", + "integrity": "sha512-yOpVsA4K5qVwu2CaS3hHxluWIK5HQTjNV4tWjQXluMiiiu4pJj4BN98CvxohNCpcjMeTXk/ZMJBRbgRg8HBB6A==", + "dev": true, + "optional": true + }, + "@rollup/rollup-win32-ia32-msvc": { + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.27.4.tgz", + "integrity": "sha512-KtwEJOaHAVJlxV92rNYiG9JQwQAdhBlrjNRp7P9L8Cb4Rer3in+0A+IPhJC9y68WAi9H0sX4AiG2NTsVlmqJeQ==", + "dev": true, + "optional": true + }, + "@rollup/rollup-win32-x64-msvc": { + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.27.4.tgz", + "integrity": "sha512-3j4jx1TppORdTAoBJRd+/wJRGCPC0ETWkXOecJ6PPZLj6SptXkrXcNqdj0oclbKML6FkQltdz7bBA3rUSirZug==", + "dev": true, + "optional": true + }, + "@types/conventional-commits-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/conventional-commits-parser/-/conventional-commits-parser-5.0.0.tgz", + "integrity": "sha512-loB369iXNmAZglwWATL+WRe+CRMmmBPtpolYzIebFaX4YA3x+BEfLqhUAV9WanycKI3TG1IMr5bMJDajDKLlUQ==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true + }, + "@types/gtag.js": { + "version": "0.0.20", + "resolved": "https://registry.npmjs.org/@types/gtag.js/-/gtag.js-0.0.20.tgz", + "integrity": "sha512-wwAbk3SA2QeU67unN7zPxjEHmPmlXwZXZvQEpbEUQuMCRGgKyE1m6XDuTUA9b6pCGb/GqJmdfMOY5LuDjJSbbg==", + "dev": true + }, + "@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 + }, + "@types/node": { + "version": "18.18.11", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.11.tgz", + "integrity": "sha512-c1vku6qnTeujJneYH94/4aq73XrVcsJe35UPyAsSok1ijiKrkRzK+AxQPSpNMUnC03roWBBwJx/9I8V7lQoxmA==", + "dev": true, + "requires": { + "undici-types": "~5.26.4" + } + }, + "@types/prop-types": { + "version": "15.7.11", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz", + "integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==", + "optional": true, + "peer": true + }, + "@types/react": { + "version": "18.2.47", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.47.tgz", + "integrity": "sha512-xquNkkOirwyCgoClNk85BjP+aqnIS+ckAJ8i37gAbDs14jfW/J23f2GItAf33oiUPQnqNMALiFeoM9Y5mbjpVQ==", + "optional": true, + "peer": true, + "requires": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "@types/scheduler": { + "version": "0.16.8", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz", + "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==", + "optional": true, + "peer": true + }, + "@typescript-eslint/eslint-plugin": { + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.18.1.tgz", + "integrity": "sha512-Ncvsq5CT3Gvh+uJG0Lwlho6suwDfUXH0HztslDf5I+F2wAFAZMRwYLEorumpKLzmO2suAXZ/td1tBg4NZIi9CQ==", + "dev": true, + "requires": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.18.1", + "@typescript-eslint/type-utils": "8.18.1", + "@typescript-eslint/utils": "8.18.1", + "@typescript-eslint/visitor-keys": "8.18.1", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^1.3.0" + } + }, + "@typescript-eslint/parser": { + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.18.1.tgz", + "integrity": "sha512-rBnTWHCdbYM2lh7hjyXqxk70wvon3p2FyaniZuey5TrcGBpfhVp0OxOa6gxr9Q9YhZFKyfbEnxc24ZnVbbUkCA==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "8.18.1", + "@typescript-eslint/types": "8.18.1", + "@typescript-eslint/typescript-estree": "8.18.1", + "@typescript-eslint/visitor-keys": "8.18.1", + "debug": "^4.3.4" + } + }, + "@typescript-eslint/scope-manager": { + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.18.1.tgz", + "integrity": "sha512-HxfHo2b090M5s2+/9Z3gkBhI6xBH8OJCFjH9MhQ+nnoZqxU3wNxkLT+VWXWSFWc3UF3Z+CfPAyqdCTdoXtDPCQ==", + "dev": true, + "requires": { + "@typescript-eslint/types": "8.18.1", + "@typescript-eslint/visitor-keys": "8.18.1" + } + }, + "@typescript-eslint/type-utils": { + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.18.1.tgz", + "integrity": "sha512-jAhTdK/Qx2NJPNOTxXpMwlOiSymtR2j283TtPqXkKBdH8OAMmhiUfP0kJjc/qSE51Xrq02Gj9NY7MwK+UxVwHQ==", + "dev": true, + "requires": { + "@typescript-eslint/typescript-estree": "8.18.1", + "@typescript-eslint/utils": "8.18.1", + "debug": "^4.3.4", + "ts-api-utils": "^1.3.0" + } + }, + "@typescript-eslint/types": { + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.18.1.tgz", + "integrity": "sha512-7uoAUsCj66qdNQNpH2G8MyTFlgerum8ubf21s3TSM3XmKXuIn+H2Sifh/ES2nPOPiYSRJWAk0fDkW0APBWcpfw==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.18.1.tgz", + "integrity": "sha512-z8U21WI5txzl2XYOW7i9hJhxoKKNG1kcU4RzyNvKrdZDmbjkmLBo8bgeiOJmA06kizLI76/CCBAAGlTlEeUfyg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "8.18.1", + "@typescript-eslint/visitor-keys": "8.18.1", + "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": "^1.3.0" + }, + "dependencies": { + "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, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, + "@typescript-eslint/utils": { + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.18.1.tgz", + "integrity": "sha512-8vikiIj2ebrC4WRdcAdDcmnu9Q/MXXwg+STf40BVfT8exDqBCUPdypvzcUPxEqRGKg9ALagZ0UWcYCtn+4W2iQ==", + "dev": true, + "requires": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "8.18.1", + "@typescript-eslint/types": "8.18.1", + "@typescript-eslint/typescript-estree": "8.18.1" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.18.1.tgz", + "integrity": "sha512-Vj0WLm5/ZsD013YeUKn+K0y8p1M0jPpxOkKdbD1wB0ns53a5piVY02zjf072TblEweAbcYiFiPoSMF3kp+VhhQ==", + "dev": true, + "requires": { + "@typescript-eslint/types": "8.18.1", + "eslint-visitor-keys": "^4.2.0" + }, + "dependencies": { + "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 + } + } + }, + "acorn": { + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "dev": true + }, + "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, + "requires": {} + }, + "ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + } + }, + "ansi-escapes": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.0.0.tgz", + "integrity": "sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==", + "dev": true, + "requires": { + "environment": "^1.0.0" + } + }, + "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 + }, + "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, + "requires": { + "color-convert": "^2.0.1" + } + }, + "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 + }, + "array-ify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", + "integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==", + "dev": true + }, + "async": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", + "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", + "dev": true + }, + "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 + }, + "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 + }, + "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, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "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, + "requires": { + "fill-range": "^7.1.1" + } + }, + "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 + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "dev": true, + "requires": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "clean-css": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz", + "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==", + "dev": true, + "requires": { + "source-map": "~0.6.0" + } + }, + "cli-cursor": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", + "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", + "dev": true, + "requires": { + "restore-cursor": "^5.0.0" + } + }, + "cli-truncate": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-4.0.0.tgz", + "integrity": "sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==", + "dev": true, + "requires": { + "slice-ansi": "^5.0.0", + "string-width": "^7.0.0" + } + }, + "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, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "dependencies": { + "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 + }, + "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 + }, + "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, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + } + } + }, + "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==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "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==", + "dev": true + }, + "colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true + }, + "commander": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", + "dev": true + }, + "compare-func": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", + "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==", + "dev": true, + "requires": { + "array-ify": "^1.0.0", + "dot-prop": "^5.1.0" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", + "dev": true + }, + "consola": { + "version": "2.15.3", + "resolved": "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz", + "integrity": "sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==", + "dev": true + }, + "conventional-changelog-angular": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-7.0.0.tgz", + "integrity": "sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==", + "dev": true, + "requires": { + "compare-func": "^2.0.0" + } + }, + "conventional-changelog-conventionalcommits": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-7.0.2.tgz", + "integrity": "sha512-NKXYmMR/Hr1DevQegFB4MwfM5Vv0m4UIxKZTTYuD98lpTknaZlSRrDOG4X7wIXpGkfsYxZTghUN+Qq+T0YQI7w==", + "dev": true, + "requires": { + "compare-func": "^2.0.0" + } + }, + "conventional-commits-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-5.0.0.tgz", + "integrity": "sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==", + "dev": true, + "requires": { + "is-text-path": "^2.0.0", + "JSONStream": "^1.3.5", + "meow": "^12.0.1", + "split2": "^4.0.0" + } + }, + "cosmiconfig": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", + "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", + "dev": true, + "requires": { + "env-paths": "^2.2.1", + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0" + } + }, + "cosmiconfig-typescript-loader": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-6.1.0.tgz", + "integrity": "sha512-tJ1w35ZRUiM5FeTzT7DtYWAFFv37ZLqSRkGi2oeCK1gPhvaWjkAtfXvLmvE1pRfxxp9aQo6ba/Pvg1dKj05D4g==", + "dev": true, + "requires": { + "jiti": "^2.4.1" + } + }, + "cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dev": true, + "requires": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + } + }, + "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 + }, + "csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "optional": true, + "peer": true + }, + "dargs": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/dargs/-/dargs-8.1.0.tgz", + "integrity": "sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw==", + "dev": true + }, + "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, + "requires": { + "ms": "^2.1.3" + } + }, + "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 + }, + "detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", + "dev": true, + "optional": true, + "peer": true + }, + "dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + } + }, + "domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true + }, + "domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, + "requires": { + "domelementtype": "^2.2.0" + } + }, + "domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "requires": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + } + }, + "dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dev": true, + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "requires": { + "is-obj": "^2.0.0" + } + }, + "dotenv": { + "version": "16.3.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.3.1.tgz", + "integrity": "sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==", + "dev": true + }, + "dotenv-expand": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-8.0.3.tgz", + "integrity": "sha512-SErOMvge0ZUyWd5B0NXMQlDkN+8r+HhVUsxgOO7IoPDOdDRD2JjExpN6y3KnFR66jsJMwSn1pqIivhU5rcJiNg==", + "dev": true + }, + "ejs": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", + "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", + "dev": true, + "requires": { + "jake": "^10.8.5" + } + }, + "emoji-regex": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", + "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", + "dev": true + }, + "entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true + }, + "env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true + }, + "environment": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz", + "integrity": "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==", + "dev": true + }, + "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, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "esbuild": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.0.tgz", + "integrity": "sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==", + "dev": true, + "requires": { + "@esbuild/aix-ppc64": "0.24.0", + "@esbuild/android-arm": "0.24.0", + "@esbuild/android-arm64": "0.24.0", + "@esbuild/android-x64": "0.24.0", + "@esbuild/darwin-arm64": "0.24.0", + "@esbuild/darwin-x64": "0.24.0", + "@esbuild/freebsd-arm64": "0.24.0", + "@esbuild/freebsd-x64": "0.24.0", + "@esbuild/linux-arm": "0.24.0", + "@esbuild/linux-arm64": "0.24.0", + "@esbuild/linux-ia32": "0.24.0", + "@esbuild/linux-loong64": "0.24.0", + "@esbuild/linux-mips64el": "0.24.0", + "@esbuild/linux-ppc64": "0.24.0", + "@esbuild/linux-riscv64": "0.24.0", + "@esbuild/linux-s390x": "0.24.0", + "@esbuild/linux-x64": "0.24.0", + "@esbuild/netbsd-x64": "0.24.0", + "@esbuild/openbsd-arm64": "0.24.0", + "@esbuild/openbsd-x64": "0.24.0", + "@esbuild/sunos-x64": "0.24.0", + "@esbuild/win32-arm64": "0.24.0", + "@esbuild/win32-ia32": "0.24.0", + "@esbuild/win32-x64": "0.24.0" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "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 + }, + "eslint": { + "version": "9.17.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.17.0.tgz", + "integrity": "sha512-evtlNcpJg+cZLcnVKwsai8fExnqjGPicK7gnUtlNuzu+Fv9bI0aLpND5T44VLQtoMEnI57LoXO9XAkIXwohKrA==", + "dev": true, + "requires": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.19.0", + "@eslint/core": "^0.9.0", + "@eslint/eslintrc": "^3.2.0", + "@eslint/js": "9.17.0", + "@eslint/plugin-kit": "^0.2.3", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.1", + "@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.2.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" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "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 + }, + "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 + } + } + }, + "eslint-plugin-prettier": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.1.tgz", + "integrity": "sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==", + "dev": true, + "requires": { + "prettier-linter-helpers": "^1.0.0", + "synckit": "^0.9.1" + } + }, + "eslint-plugin-simple-import-sort": { + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-12.1.1.tgz", + "integrity": "sha512-6nuzu4xwQtE3332Uz0to+TxDQYRLTKRESSc2hefVT48Zc8JthmN23Gx9lnYhu0FtkRSL1oxny3kJ2aveVhmOVA==", + "dev": true, + "requires": {} + }, + "eslint-scope": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz", + "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, + "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 + }, + "espree": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", + "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", + "dev": true, + "requires": { + "acorn": "^8.14.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.0" + }, + "dependencies": { + "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 + } + } + }, + "esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + } + }, + "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, + "requires": { + "estraverse": "^5.2.0" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + }, + "estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==" + }, + "execa": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" + }, + "dependencies": { + "onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "requires": { + "mimic-fn": "^4.0.0" + } + } + } + }, + "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 + }, + "fast-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", + "dev": true + }, + "fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "requires": { + "@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" + }, + "dependencies": { + "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, + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "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 + }, + "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 + }, + "fast-uri": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.3.tgz", + "integrity": "sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==", + "dev": true + }, + "fastq": { + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.14.0.tgz", + "integrity": "sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "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, + "requires": { + "flat-cache": "^4.0.0" + } + }, + "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, + "requires": { + "minimatch": "^5.0.1" + }, + "dependencies": { + "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, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, + "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, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "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, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "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, + "requires": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + } + }, + "flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true + }, + "fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "optional": true + }, + "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 + }, + "get-east-asian-width": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz", + "integrity": "sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==", + "dev": true + }, + "get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "dev": true + }, + "git-raw-commits": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-4.0.0.tgz", + "integrity": "sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ==", + "dev": true, + "requires": { + "dargs": "^8.0.0", + "meow": "^12.0.1", + "split2": "^4.0.0" + } + }, + "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, + "requires": { + "is-glob": "^4.0.3" + } + }, + "global-directory": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/global-directory/-/global-directory-4.0.1.tgz", + "integrity": "sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==", + "dev": true, + "requires": { + "ini": "4.1.1" + } + }, + "globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true + }, + "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 + }, + "graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "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 + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true + }, + "html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", + "dev": true, + "requires": { + "camel-case": "^4.1.2", + "clean-css": "^5.2.2", + "commander": "^8.3.0", + "he": "^1.2.0", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.10.0" + }, + "dependencies": { + "commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "dev": true + } + } + }, + "human-signals": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "dev": true + }, + "husky": { + "version": "9.1.7", + "resolved": "https://registry.npmjs.org/husky/-/husky-9.1.7.tgz", + "integrity": "sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==", + "dev": true + }, + "ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "dev": true + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "dependencies": { + "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 + } + } + }, + "import-meta-resolve": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz", + "integrity": "sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==", + "dev": true + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true + }, + "ini": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.1.tgz", + "integrity": "sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==", + "dev": true + }, + "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 + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", + "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", + "dev": true + }, + "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, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "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 + }, + "is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true + }, + "is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true + }, + "is-text-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-2.0.0.tgz", + "integrity": "sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==", + "dev": true, + "requires": { + "text-extensions": "^2.0.0" + } + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "jake": { + "version": "10.8.7", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.7.tgz", + "integrity": "sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==", + "dev": true, + "requires": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.4", + "minimatch": "^3.1.2" + } + }, + "jiti": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.4.1.tgz", + "integrity": "sha512-yPBThwecp1wS9DmoA4x4KR2h3QoslacnDR8ypuFM962kI4/456Iy1oHx2RAgh4jfZNdn0bctsdadceiBUgpU1g==", + "dev": true + }, + "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 + }, + "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, + "requires": { + "argparse": "^2.0.1" + } + }, + "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 + }, + "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 + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "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 + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", + "dev": true + }, + "JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dev": true, + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + } + }, + "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, + "requires": { + "json-buffer": "3.0.1" + } + }, + "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, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "lightningcss": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.22.1.tgz", + "integrity": "sha512-Fy45PhibiNXkm0cK5FJCbfO8Y6jUpD/YcHf/BtuI+jvYYqSXKF4muk61jjE8YxCR9y+hDYIWSzHTc+bwhDE6rQ==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "detect-libc": "^1.0.3", + "lightningcss-darwin-arm64": "1.22.1", + "lightningcss-darwin-x64": "1.22.1", + "lightningcss-freebsd-x64": "1.22.1", + "lightningcss-linux-arm-gnueabihf": "1.22.1", + "lightningcss-linux-arm64-gnu": "1.22.1", + "lightningcss-linux-arm64-musl": "1.22.1", + "lightningcss-linux-x64-gnu": "1.22.1", + "lightningcss-linux-x64-musl": "1.22.1", + "lightningcss-win32-x64-msvc": "1.22.1" + } + }, + "lightningcss-darwin-arm64": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.22.1.tgz", + "integrity": "sha512-ldvElu+R0QimNTjsKpaZkUv3zf+uefzLy/R1R19jtgOfSRM+zjUCUgDhfEDRmVqJtMwYsdhMI2aJtJChPC6Osg==", + "dev": true, + "optional": true, + "peer": true + }, + "lightningcss-darwin-x64": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.22.1.tgz", + "integrity": "sha512-5p2rnlVTv6Gpw4PlTLq925nTVh+HFh4MpegX8dPDYJae+NFVjQ67gY7O6iHIzQjLipDiYejFF0yHrhjU3XgLBQ==", + "dev": true, + "optional": true, + "peer": true + }, + "lightningcss-freebsd-x64": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.22.1.tgz", + "integrity": "sha512-1FaBtcFrZqB2hkFbAxY//Pnp8koThvyB6AhjbdVqKD4/pu13Rl91fKt2N9qyeQPUt3xy7ORUvSO+dPk3J6EjXg==", + "dev": true, + "optional": true, + "peer": true + }, + "lightningcss-linux-arm-gnueabihf": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.22.1.tgz", + "integrity": "sha512-6rub98tYGfE5I5j0BP8t/2d4BZyu1S7Iz9vUkm0H26snAFHYxLfj3RbQn0xHHIePSetjLnhcg3QlfwUAkD/FYg==", + "dev": true, + "optional": true, + "peer": true + }, + "lightningcss-linux-arm64-gnu": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.22.1.tgz", + "integrity": "sha512-nYO5qGtb/1kkTZu3FeTiM+2B2TAb7m2DkLCTgQIs2bk2o9aEs7I96fwySKcoHWQAiQDGR9sMux9vkV4KQXqPaQ==", + "dev": true, + "optional": true, + "peer": true + }, + "lightningcss-linux-arm64-musl": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.22.1.tgz", + "integrity": "sha512-MCV6RuRpzXbunvzwY644iz8cw4oQxvW7oer9xPkdadYqlEyiJJ6wl7FyJOH7Q6ZYH4yjGAUCvxDBxPbnDu9ZVg==", + "dev": true, + "optional": true, + "peer": true + }, + "lightningcss-linux-x64-gnu": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.22.1.tgz", + "integrity": "sha512-RjNgpdM20VUXgV7us/VmlO3Vn2ZRiDnc3/bUxCVvySZWPiVPprpqW/QDWuzkGa+NCUf6saAM5CLsZLSxncXJwg==", + "dev": true, + "optional": true, + "peer": true + }, + "lightningcss-linux-x64-musl": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.22.1.tgz", + "integrity": "sha512-ZgO4C7Rd6Hv/5MnyY2KxOYmIlzk4rplVolDt3NbkNR8DndnyX0Q5IR4acJWNTBICQ21j3zySzKbcJaiJpk/4YA==", + "dev": true, + "optional": true, + "peer": true + }, + "lightningcss-win32-x64-msvc": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.22.1.tgz", + "integrity": "sha512-4pozV4eyD0MDET41ZLHAeBo+H04Nm2UEYIk5w/ts40231dRFV7E0cjwbnZvSoc1DXFgecAhiC0L16ruv/ZDCpg==", + "dev": true, + "optional": true, + "peer": true + }, + "lilconfig": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "dev": true + }, + "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 + }, + "lint-staged": { + "version": "15.2.11", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-15.2.11.tgz", + "integrity": "sha512-Ev6ivCTYRTGs9ychvpVw35m/bcNDuBN+mnTeObCL5h+boS5WzBEC6LHI4I9F/++sZm1m+J2LEiy0gxL/R9TBqQ==", + "dev": true, + "requires": { + "chalk": "~5.3.0", + "commander": "~12.1.0", + "debug": "~4.4.0", + "execa": "~8.0.1", + "lilconfig": "~3.1.3", + "listr2": "~8.2.5", + "micromatch": "~4.0.8", + "pidtree": "~0.6.0", + "string-argv": "~0.3.2", + "yaml": "~2.6.1" + }, + "dependencies": { + "chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "dev": true + } + } + }, + "listr2": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-8.2.5.tgz", + "integrity": "sha512-iyAZCeyD+c1gPyE9qpFu8af0Y+MRtmKOncdGoA2S5EY8iFq99dmmvkNnHiWo+pj0s7yH7l3KPIgee77tKpXPWQ==", + "dev": true, + "requires": { + "cli-truncate": "^4.0.0", + "colorette": "^2.0.20", + "eventemitter3": "^5.0.1", + "log-update": "^6.1.0", + "rfdc": "^1.4.1", + "wrap-ansi": "^9.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true + }, + "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 + }, + "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, + "requires": { + "ansi-regex": "^6.0.1" + } + }, + "wrap-ansi": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", + "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", + "dev": true, + "requires": { + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" + } + } + } + }, + "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, + "requires": { + "p-locate": "^5.0.0" + } + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", + "dev": true + }, + "lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "dev": true + }, + "lodash.kebabcase": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", + "integrity": "sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==", + "dev": true + }, + "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 + }, + "lodash.mergewith": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz", + "integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==", + "dev": true + }, + "lodash.snakecase": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz", + "integrity": "sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==", + "dev": true + }, + "lodash.startcase": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.startcase/-/lodash.startcase-4.4.0.tgz", + "integrity": "sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==", + "dev": true + }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", + "dev": true + }, + "lodash.upperfirst": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz", + "integrity": "sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==", + "dev": true + }, + "log-update": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-6.1.0.tgz", + "integrity": "sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==", + "dev": true, + "requires": { + "ansi-escapes": "^7.0.0", + "cli-cursor": "^5.0.0", + "slice-ansi": "^7.1.0", + "strip-ansi": "^7.1.0", + "wrap-ansi": "^9.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true + }, + "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 + }, + "is-fullwidth-code-point": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz", + "integrity": "sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==", + "dev": true, + "requires": { + "get-east-asian-width": "^1.0.0" + } + }, + "slice-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.0.tgz", + "integrity": "sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==", + "dev": true, + "requires": { + "ansi-styles": "^6.2.1", + "is-fullwidth-code-point": "^5.0.0" + } + }, + "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, + "requires": { + "ansi-regex": "^6.0.1" + } + }, + "wrap-ansi": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", + "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", + "dev": true, + "requires": { + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" + } + } + } + }, + "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, + "requires": { + "tslib": "^2.0.3" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "meow": { + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/meow/-/meow-12.1.1.tgz", + "integrity": "sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==", + "dev": true + }, + "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 + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "requires": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + } + }, + "mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true + }, + "mimic-function": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz", + "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==", + "dev": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true + }, + "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 + }, + "nanoid": { + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", + "dev": true + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "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, + "requires": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node-html-parser": { + "version": "5.4.2", + "resolved": "https://registry.npmjs.org/node-html-parser/-/node-html-parser-5.4.2.tgz", + "integrity": "sha512-RaBPP3+51hPne/OolXxcz89iYvQvKOydaqoePpOgXcrOKZhjVIzmpKZz+Hd/RBO2/zN2q6CNJhQzucVz+u3Jyw==", + "dev": true, + "requires": { + "css-select": "^4.2.1", + "he": "1.2.0" + } + }, + "npm-run-path": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "dev": true, + "requires": { + "path-key": "^4.0.0" + }, + "dependencies": { + "path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true + } + } + }, + "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, + "requires": { + "boolbase": "^1.0.0" + } + }, + "onetime": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", + "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", + "dev": true, + "requires": { + "mimic-function": "^5.0.0" + } + }, + "optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dev": true, + "requires": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + } + }, + "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, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "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, + "requires": { + "p-limit": "^3.0.2" + } + }, + "param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "dev": true, + "requires": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "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, + "requires": { + "callsites": "^3.0.0" + } + }, + "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, + "requires": { + "@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" + } + }, + "pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "dev": true, + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "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 + }, + "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 + }, + "pathe": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-0.2.0.tgz", + "integrity": "sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw==", + "dev": true + }, + "phaser": { + "version": "3.87.0", + "resolved": "https://registry.npmjs.org/phaser/-/phaser-3.87.0.tgz", + "integrity": "sha512-AyI1b3T5fp05gzf6WUmu2FNqaZL+Y7w88yBRLf7YZXF9bncUSHpnDrupnTGoPqy/RKHRLBcay7zWeqQ2wiMWcw==", + "requires": { + "eventemitter3": "^5.0.1" + } + }, + "phaser-jsx": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/phaser-jsx/-/phaser-jsx-0.11.0.tgz", + "integrity": "sha512-pvoy3cMJe1eY7T+2VYsb9VzZoFZNo22yTYjBsPr/8t5uyw2osmhqjLBefuFam47q6arOYk8n1lGc35B8nUAfmg==", + "requires": {} + }, + "picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "pidtree": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz", + "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==", + "dev": true + }, + "postcss": { + "version": "8.4.49", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", + "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", + "dev": true, + "requires": { + "nanoid": "^3.3.7", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + } + }, + "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 + }, + "prettier": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.4.2.tgz", + "integrity": "sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==", + "dev": true + }, + "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, + "requires": { + "fast-diff": "^1.1.2" + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "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 + }, + "relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", + "dev": true + }, + "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 + }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, + "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 + }, + "restore-cursor": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", + "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", + "dev": true, + "requires": { + "onetime": "^7.0.0", + "signal-exit": "^4.1.0" + } + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rfdc": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", + "dev": true + }, + "rollup": { + "version": "4.27.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.27.4.tgz", + "integrity": "sha512-RLKxqHEMjh/RGLsDxAEsaLO3mWgyoU6x9w6n1ikAzet4B3gI2/3yP6PWY2p9QzRTh6MfEIXB3MwsOY0Iv3vNrw==", + "dev": true, + "requires": { + "@rollup/rollup-android-arm-eabi": "4.27.4", + "@rollup/rollup-android-arm64": "4.27.4", + "@rollup/rollup-darwin-arm64": "4.27.4", + "@rollup/rollup-darwin-x64": "4.27.4", + "@rollup/rollup-freebsd-arm64": "4.27.4", + "@rollup/rollup-freebsd-x64": "4.27.4", + "@rollup/rollup-linux-arm-gnueabihf": "4.27.4", + "@rollup/rollup-linux-arm-musleabihf": "4.27.4", + "@rollup/rollup-linux-arm64-gnu": "4.27.4", + "@rollup/rollup-linux-arm64-musl": "4.27.4", + "@rollup/rollup-linux-powerpc64le-gnu": "4.27.4", + "@rollup/rollup-linux-riscv64-gnu": "4.27.4", + "@rollup/rollup-linux-s390x-gnu": "4.27.4", + "@rollup/rollup-linux-x64-gnu": "4.27.4", + "@rollup/rollup-linux-x64-musl": "4.27.4", + "@rollup/rollup-win32-arm64-msvc": "4.27.4", + "@rollup/rollup-win32-ia32-msvc": "4.27.4", + "@rollup/rollup-win32-x64-msvc": "4.27.4", + "@types/estree": "1.0.6", + "fsevents": "~2.3.2" + } + }, + "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, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "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, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "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 + }, + "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 + }, + "slice-ansi": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", + "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", + "dev": true, + "requires": { + "ansi-styles": "^6.0.0", + "is-fullwidth-code-point": "^4.0.0" + }, + "dependencies": { + "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 + } + } + }, + "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 + }, + "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==", + "dev": true + }, + "source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "split2": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", + "dev": true + }, + "string-argv": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz", + "integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==", + "dev": true + }, + "string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "dev": true, + "requires": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true + }, + "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, + "requires": { + "ansi-regex": "^6.0.1" + } + } + } + }, + "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, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true + }, + "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 + }, + "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, + "requires": { + "has-flag": "^4.0.0" + } + }, + "synckit": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.1.tgz", + "integrity": "sha512-7gr8p9TQP6RAHusBOSLs46F4564ZrjV8xFmw5zCmgmhGUcw2hxsShhJ6CEiHQMgPDwAQ1fWHPM0ypc4RMAig4A==", + "dev": true, + "requires": { + "@pkgr/core": "^0.1.0", + "tslib": "^2.6.2" + } + }, + "terser": { + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.26.0.tgz", + "integrity": "sha512-dytTGoE2oHgbNV9nTzgBEPaqAWvcJNl66VZ0BkJqlvp71IjO8CxdBx/ykCNb47cLnCmCvRZ6ZR0tLkqvZCdVBQ==", + "dev": true, + "requires": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + } + } + }, + "text-extensions": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-2.4.0.tgz", + "integrity": "sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==", + "dev": true + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true + }, + "tinyexec": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.0.tgz", + "integrity": "sha512-tVGE0mVJPGb0chKhqmsoosjsS+qUnJVGJpZgsHYQcGoPlG3B51R3PouqTgEGH2Dc9jjFyOqOpix6ZHNMXp1FZg==", + "dev": true + }, + "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, + "requires": { + "is-number": "^7.0.0" + } + }, + "ts-api-utils": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", + "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", + "dev": true, + "requires": {} + }, + "tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dev": true + }, + "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, + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "typescript": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.2.tgz", + "integrity": "sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==", + "dev": true + }, + "undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true + }, + "unicorn-magic": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", + "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", + "dev": true + }, + "universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "vite": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.0.3.tgz", + "integrity": "sha512-Cmuo5P0ENTN6HxLSo6IHsjCLn/81Vgrp81oaiFFMRa8gGDj5xEjIcEpf2ZymZtZR8oU0P2JX5WuUp/rlXcHkAw==", + "dev": true, + "requires": { + "esbuild": "^0.24.0", + "fsevents": "~2.3.3", + "postcss": "^8.4.49", + "rollup": "^4.23.0" + } + }, + "vite-plugin-html": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/vite-plugin-html/-/vite-plugin-html-3.2.2.tgz", + "integrity": "sha512-vb9C9kcdzcIo/Oc3CLZVS03dL5pDlOFuhGlZYDCJ840BhWl/0nGeZWf3Qy7NlOayscY4Cm/QRgULCQkEZige5Q==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^4.2.0", + "colorette": "^2.0.16", + "connect-history-api-fallback": "^1.6.0", + "consola": "^2.15.3", + "dotenv": "^16.0.0", + "dotenv-expand": "^8.0.2", + "ejs": "^3.1.6", + "fast-glob": "^3.2.11", + "fs-extra": "^10.0.1", + "html-minifier-terser": "^6.1.0", + "node-html-parser": "^5.3.3", + "pathe": "^0.2.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "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, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "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 + }, + "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 + }, + "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, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + } + } + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "yaml": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.6.1.tgz", + "integrity": "sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==", + "dev": true + }, + "yargs": { + "version": "17.6.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", + "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", + "dev": true, + "requires": { + "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" + }, + "dependencies": { + "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 + }, + "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 + }, + "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, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "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 + } + } + }, + "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 + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..3bc827d --- /dev/null +++ b/package.json @@ -0,0 +1,43 @@ +{ + "name": "phaser-template", + "version": "1.0.0-alpha", + "description": "A template for building Phaser games.", + "author": "Mark ", + "scripts": { + "build": "npm run clean && vite build", + "bundle": "scripts/bundle.sh", + "clean": "rm -rf dist", + "lint": "eslint .", + "lint:fix": "npm run lint -- --fix", + "lint:tsc": "tsc --noEmit", + "prepare": "husky", + "preview": "vite preview", + "start": "vite --open" + }, + "homepage": "https://remarkablegames.org/phaser-template/", + "dependencies": { + "phaser": "3.87.0", + "phaser-jsx": "0.11.0" + }, + "devDependencies": { + "@commitlint/cli": "19.6.1", + "@commitlint/config-conventional": "19.6.0", + "@eslint/compat": "1.2.4", + "@eslint/eslintrc": "3.2.0", + "@eslint/js": "9.17.0", + "@types/gtag.js": "0.0.20", + "@typescript-eslint/eslint-plugin": "8.18.1", + "@typescript-eslint/parser": "8.18.1", + "eslint": "9.17.0", + "eslint-plugin-prettier": "5.2.1", + "eslint-plugin-simple-import-sort": "12.1.1", + "husky": "9.1.7", + "lint-staged": "15.2.11", + "prettier": "3.4.2", + "typescript": "5.7.2", + "vite": "6.0.3", + "vite-plugin-html": "3.2.2" + }, + "private": true, + "license": "MIT" +} diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..4498c50ecd60e6c9f80afe08048c63365d1ddbfd GIT binary patch literal 458 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE(}6TtKSRv1wTBrP7}Y&p978NlFP&`f&Fm;}^u9+>T-U~(`U(16 zVvL+K4jtlfy0Dt}M#h6(M;fM{T@`yEyZ44<^m>nnrY|o)wO(RnZ7tay^KH|cIHqR@ zO?LmTJ2PKaNH9m|s7}|<_$8B)rrmy>yWkn~!H}vR|DNig)Wnied rRqS)p-z)UP8DAfNUN2vtl`IVUb6Bse<5}qoRL$V&>gTe~DWM4f-qyB8 literal 0 HcmV?d00001 diff --git a/public/logo192.png b/public/logo192.png new file mode 100644 index 0000000000000000000000000000000000000000..0af3d2f1ff19b75912f2e7b6d13cda4db4628483 GIT binary patch literal 15817 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 b9ayer5=csg#Mb=>IR#`T6(xR)83q3z{P})1 literal 0 HcmV?d00001 diff --git a/public/logo512.png b/public/logo512.png new file mode 100644 index 0000000000000000000000000000000000000000..9919b3857e88d4896575d46e7007d57a932c9747 GIT binary patch literal 67818 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%0AeMK~;Q?!<1*LD>a%wfBsf$ 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 FHb=bH!_F@* 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

xi5_n2%|ja>w%&c5ivxPb7! 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 z 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 literal 0 HcmV?d00001 diff --git a/src/assets/sky.png b/src/assets/sky.png new file mode 100644 index 0000000000000000000000000000000000000000..5972639f229c7362edac856b42b86b93811ef3f2 GIT binary patch literal 4757 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 literal 0 HcmV?d00001 diff --git a/src/components/Score.tsx b/src/components/Score.tsx new file mode 100644 index 0000000..2d9762c --- /dev/null +++ b/src/components/Score.tsx @@ -0,0 +1,22 @@ +import type Phaser from 'phaser'; +import { Text } from 'phaser-jsx'; + +interface Props { + text: string; + ref: (gameObject: Phaser.GameObjects.Text) => void; +} + +export function Score(props: Props) { + return ( + + ); +} diff --git a/src/components/index.ts b/src/components/index.ts new file mode 100644 index 0000000..98447d6 --- /dev/null +++ b/src/components/index.ts @@ -0,0 +1 @@ +export * from './Score'; diff --git a/src/constants/index.ts b/src/constants/index.ts new file mode 100644 index 0000000..0a33c48 --- /dev/null +++ b/src/constants/index.ts @@ -0,0 +1 @@ +export * from './key'; diff --git a/src/constants/key.ts b/src/constants/key.ts new file mode 100644 index 0000000..861f65e --- /dev/null +++ b/src/constants/key.ts @@ -0,0 +1,16 @@ +const image = { + dude: 'dude', + ground: 'ground', + sky: 'sky', + star: 'star', +} as const; + +const scene = { + boot: 'boot', + main: 'main', +} as const; + +export const key = { + image, + scene, +} as const; diff --git a/src/gameobjects/Player.ts b/src/gameobjects/Player.ts new file mode 100644 index 0000000..2de1443 --- /dev/null +++ b/src/gameobjects/Player.ts @@ -0,0 +1,111 @@ +import Phaser from 'phaser'; + +import { key } from '../constants'; + +enum Animation { + Left = 'PlayerLeft', + Right = 'PlayerRight', + Turn = 'PlayerTurn', +} + +enum Speed { + Horizontal = 160, + Vertical = 330, +} + +export class Player extends Phaser.Physics.Arcade.Sprite { + body!: Phaser.Physics.Arcade.Body; + private cursors: Phaser.Types.Input.Keyboard.CursorKeys; + + constructor( + scene: Phaser.Scene, + x: number, + y: number, + texture = key.image.dude, + frame = 0, + ) { + super(scene, x, y, texture, frame); + + // Add the sprite to the scene + scene.add.existing(this); + + // Enable physics for the sprite + scene.physics.world.enable(this); + + // Add cursor keys + this.cursors = scene.input.keyboard!.createCursorKeys(); + + // Create sprite animations + this.createAnimations(); + + // Player physics properties + // Give the little guy some bounce + this.body.setBounceY(0.2).setCollideWorldBounds(true); + } + + private createAnimations() { + const anims = this.scene.anims; + + // Create left animation + if (!anims.exists(Animation.Left)) { + anims.create({ + key: Animation.Left, + frames: anims.generateFrameNumbers(key.image.dude, { + start: 0, + end: 3, + }), + frameRate: 10, + repeat: -1, + }); + } + + // Create turn animation + if (!anims.exists(Animation.Turn)) { + anims.create({ + key: Animation.Turn, + frames: [{ key: key.image.dude, frame: 4 }], + frameRate: 20, + }); + } + + // Create right animation + if (!anims.exists(Animation.Right)) { + anims.create({ + key: Animation.Right, + frames: anims.generateFrameNumbers(key.image.dude, { + start: 5, + end: 8, + }), + frameRate: 10, + repeat: -1, + }); + } + } + + update() { + switch (true) { + // Move to the left + case this.cursors.left.isDown: + this.body.setVelocityX(-Speed.Horizontal); + this.anims.play(Animation.Left, true); + break; + + // Move to the right + case this.cursors.right.isDown: + this.body.setVelocityX(Speed.Horizontal); + this.anims.play(Animation.Right, true); + break; + + // Stand still + default: + this.body.setVelocityX(0); + this.anims.play(Animation.Turn); + break; + } + + // Allow player to jump if sprite is touching the ground + if (this.cursors.up.isDown && this.body.touching.down) { + this.body.setVelocityY(-Speed.Vertical); + } + } +} diff --git a/src/gameobjects/Star.ts b/src/gameobjects/Star.ts new file mode 100644 index 0000000..dd7fb1e --- /dev/null +++ b/src/gameobjects/Star.ts @@ -0,0 +1,18 @@ +import Phaser from 'phaser'; + +import { key } from '../constants'; + +export class Star extends Phaser.Physics.Arcade.Sprite { + constructor( + scene: Phaser.Scene, + x: number, + y: number, + texture = key.image.star, + frame: string | number, + ) { + super(scene, x, y, texture || key.image.star, frame); + + // Reset drawing position of image to the top-left + this.setOrigin(0); + } +} diff --git a/src/gameobjects/index.ts b/src/gameobjects/index.ts new file mode 100644 index 0000000..6ad3b22 --- /dev/null +++ b/src/gameobjects/index.ts @@ -0,0 +1,2 @@ +export * from './Player'; +export * from './Star'; diff --git a/src/index.ts b/src/index.ts new file mode 100644 index 0000000..3d4eb47 --- /dev/null +++ b/src/index.ts @@ -0,0 +1,34 @@ +import Phaser from 'phaser'; + +import * as scenes from './scenes'; + +/** + * https://rexrainbow.github.io/phaser3-rex-notes/docs/site/game/ + */ +new Phaser.Game({ + width: 800, // 1024 + height: 600, // 768 + title: 'Phaser Template', + url: import.meta.env.VITE_APP_HOMEPAGE, + version: import.meta.env.VITE_APP_VERSION, + scene: [ + scenes.Boot, + ...Object.values(scenes).filter((scene) => scene !== scenes.Boot), + ], + physics: { + default: 'arcade', + arcade: { + gravity: { + x: 0, + y: 300, + }, + debug: import.meta.env.DEV, + }, + }, + disableContextMenu: import.meta.env.PROD, + backgroundColor: '#fff', + scale: { + mode: Phaser.Scale.FIT, + autoCenter: Phaser.Scale.CENTER_BOTH, + }, +}); diff --git a/src/scenes/Boot.ts b/src/scenes/Boot.ts new file mode 100644 index 0000000..493da02 --- /dev/null +++ b/src/scenes/Boot.ts @@ -0,0 +1,24 @@ +import Phaser from 'phaser'; + +import { dude, platform, sky, star } from '../assets'; +import { key } from '../constants'; + +export class Boot extends Phaser.Scene { + constructor() { + super(key.scene.boot); + } + + preload() { + this.load.spritesheet(key.image.dude, dude, { + frameWidth: 32, + frameHeight: 48, + }); + this.load.image(key.image.ground, platform); + this.load.image(key.image.sky, sky); + this.load.image(key.image.star, star); + } + + create() { + this.scene.start(key.scene.main); + } +} diff --git a/src/scenes/Main.tsx b/src/scenes/Main.tsx new file mode 100644 index 0000000..649d21e --- /dev/null +++ b/src/scenes/Main.tsx @@ -0,0 +1,102 @@ +import Phaser from 'phaser'; +import { render } from 'phaser-jsx'; + +import { Score } from '../components'; +import { key } from '../constants'; +import { Player, Star } from '../gameobjects'; + +export class Main extends Phaser.Scene { + private player!: Player; + private text!: Phaser.GameObjects.Text; + + constructor() { + super(key.scene.main); + } + + create() { + // A simple background for our game. + this.add.image(0, 0, key.image.sky).setOrigin(0); + + // The platforms group contains the ground and the 2 ledges we can jump on. + // It's created after the background so the order of layers (z-depth) is + // maintained (otherwise, the platforms will be hidden by the background). + const platforms = this.physics.add.staticGroup({ + defaultKey: key.image.ground, + }); + + // Create the ground (scale it to fit the width of the game). + // The original sprite is 400x32 in size. + platforms + .get(0, Number(this.game.config.height) - 64) + .setOrigin(0) + .setScale(2) + .refreshBody(); + + // Now let's create three ledges. + [ + [600, 400], + [50, 250], + [750, 220], + ].forEach((coordinates) => { + platforms.get(...coordinates); + }); + + // Create stars group. + const stars = this.physics.add.group({ + classType: Star, + }); + + // Here we'll create 12 of them evenly spaced apart. + for (let i = 0; i < 12; i++) { + const star = stars.get(i * 70, 0); + + // Give the star some bounce. + star.body.setBounceY(Phaser.Math.FloatBetween(0.4, 0.8)); + } + + // Collide the star with the platform or else the star will fall through. + this.physics.add.collider(stars, platforms); + + // Create player. + this.player = new Player(this, 32, Number(this.game.config.height) - 150); + + // Collide the player with the platform or else the player will fall through. + this.physics.add.collider(this.player, platforms); + + // Check for overlap between the player and the star. + this.physics.add.overlap( + this.player, + stars, + (player, star) => { + // Make the star inactive and invisible. + (star as Phaser.Physics.Arcade.Sprite).disableBody(true, true); + + // Add to the score and update the text. + this.text.data.set('score', this.text.getData('score') + 10); + this.text.setText(this.renderScoreText()); + }, + undefined, + this, + ); + + // Display score. + render( + { + text.setData('score', 0); + this.text = text; + }} + />, + this, + ); + } + + private renderScoreText() { + return `Score: ${this.text?.getData('score') || 0}`; + } + + update() { + this.player.update(); + } +} diff --git a/src/scenes/index.ts b/src/scenes/index.ts new file mode 100644 index 0000000..8cd933f --- /dev/null +++ b/src/scenes/index.ts @@ -0,0 +1,2 @@ +export * from './Boot'; +export * from './Main'; diff --git a/src/style.css b/src/style.css new file mode 100644 index 0000000..03a40c4 --- /dev/null +++ b/src/style.css @@ -0,0 +1,6 @@ +html, +body { + background: #000; + margin: 0; + padding: 0; +} diff --git a/src/types/vite-env.d.ts b/src/types/vite-env.d.ts new file mode 100644 index 0000000..c4a23a2 --- /dev/null +++ b/src/types/vite-env.d.ts @@ -0,0 +1,68 @@ +/// + +interface ImportMetaEnv { + readonly DEV: boolean; + readonly VITE_APP_HOMEPAGE: string; + readonly VITE_APP_NAME: string; + readonly VITE_APP_VERSION: string; + readonly VITE_GOOGLE_ANALYTICS_ID: string; +} + +interface ImportMeta { + readonly env: ImportMetaEnv; +} + +declare module '*.avif' { + const src: string; + export default src; +} + +declare module '*.bmp' { + const src: string; + export default src; +} + +declare module '*.gif' { + const src: string; + export default src; +} + +declare module '*.jpg' { + const src: string; + export default src; +} + +declare module '*.jpeg' { + const src: string; + export default src; +} + +declare module '*.png' { + const src: string; + export default src; +} + +declare module '*.webp' { + const src: string; + export default src; +} + +declare module '*.svg' { + const src: string; + export default src; +} + +declare module '*.ogg' { + const src: string; + export default src; +} + +declare module '*.mp3' { + const src: string; + export default src; +} + +declare module '*.wav' { + const src: string; + export default src; +} diff --git a/src/utils/analytics.ts b/src/utils/analytics.ts new file mode 100644 index 0000000..6ba39e5 --- /dev/null +++ b/src/utils/analytics.ts @@ -0,0 +1,19 @@ +/** + * Global site tag (gtag.js) - Google Analytics + * + * https://developers.google.com/analytics/devguides/collection/gtagjs + */ +export const gtag = window.gtag; + +const googleAnalyticsId = import.meta.env.VITE_GOOGLE_ANALYTICS_ID; + +gtag('config', googleAnalyticsId); + +(window as unknown as Record)[ + `ga-disable-${googleAnalyticsId}` +] = import.meta.env.DEV; + +const script = document.createElement('script'); +script.async = true; +script.src = `https://www.googletagmanager.com/gtag/js?id=${googleAnalyticsId}`; +document.head.appendChild(script); diff --git a/src/utils/index.ts b/src/utils/index.ts new file mode 100644 index 0000000..77dc4f5 --- /dev/null +++ b/src/utils/index.ts @@ -0,0 +1 @@ +export * from './analytics'; diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..5b6fbad --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,21 @@ +{ + "compilerOptions": { + "target": "es5", + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "skipLibCheck": true, + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "noFallthroughCasesInSwitch": true, + "module": "esnext", + "moduleResolution": "node", + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx", + "jsxImportSource": "phaser-jsx" + }, + "include": ["src"] +} diff --git a/vite.config.mts b/vite.config.mts new file mode 100644 index 0000000..87f8d1d --- /dev/null +++ b/vite.config.mts @@ -0,0 +1,9 @@ +import { defineConfig } from 'vite'; +import { createHtmlPlugin } from 'vite-plugin-html'; + +export default defineConfig({ + build: { + assetsInlineLimit: 0, + }, + plugins: [createHtmlPlugin()], +});