├── .changeset ├── README.md └── config.json ├── .eslintignore ├── .eslintrc.js ├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md └── workflows │ └── ci.yml ├── .gitignore ├── .prettierignore ├── .prettierrc ├── CHANGELOG.md ├── LICENSE ├── README.md ├── examples ├── .env.example └── basic-bot.ts ├── package.json ├── pnpm-lock.yaml ├── src ├── client │ └── client.ts ├── core │ ├── kickApi.ts │ ├── messageHandling.ts │ ├── requestHelper.ts │ └── websocket.ts ├── index.ts ├── types │ ├── channels.ts │ ├── client.ts │ ├── events.ts │ ├── types.ts │ └── video.ts └── utils │ └── utils.ts ├── tsconfig.json └── tsup.config.ts /.changeset/README.md: -------------------------------------------------------------------------------- 1 | # Changesets 2 | 3 | Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works 4 | with multi-package repos, or single-package repos to help you version and publish your code. You can 5 | find the full documentation for it [in our repository](https://github.com/changesets/changesets) 6 | 7 | We have a quick list of common questions to get you started engaging with this project in 8 | [our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md) 9 | -------------------------------------------------------------------------------- /.changeset/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://unpkg.com/@changesets/config@3.0.3/schema.json", 3 | "changelog": "@changesets/cli/changelog", 4 | "commit": true, 5 | "fixed": [], 6 | "linked": [], 7 | "access": "public", 8 | "baseBranch": "main", 9 | "updateInternalDependencies": "patch", 10 | "ignore": [] 11 | } 12 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | dist/* 2 | .cache 3 | public 4 | node_modules 5 | *.esm.js 6 | -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | // eslint-disable-next-line @typescript-eslint/no-var-requires 2 | const path = require("path"); 3 | 4 | /** @type {import("eslint").Linter.Config} */ 5 | const config = { 6 | overrides: [ 7 | { 8 | extends: [ 9 | "plugin:@typescript-eslint/recommended-requiring-type-checking", 10 | ], 11 | files: ["*.ts"], 12 | parserOptions: { 13 | project: path.join(__dirname, "tsconfig.json"), 14 | }, 15 | }, 16 | ], 17 | parser: "@typescript-eslint/parser", 18 | parserOptions: { 19 | project: path.join(__dirname, "tsconfig.json"), 20 | }, 21 | plugins: ["@typescript-eslint"], 22 | extends: ["plugin:@typescript-eslint/recommended"], 23 | rules: { 24 | "@typescript-eslint/consistent-type-imports": [ 25 | "warn", 26 | { 27 | prefer: "type-imports", 28 | fixStyle: "inline-type-imports", 29 | }, 30 | ], 31 | "@typescript-eslint/no-unused-vars": ["warn", { argsIgnorePattern: "^_" }], 32 | "@typescript-eslint/no-misused-promises": [ 33 | 2, 34 | { 35 | checksVoidReturn: { attributes: false }, 36 | }, 37 | ], 38 | "@typescript-eslint/naming-convention": [ 39 | "warn", 40 | { 41 | selector: ["parameter"], 42 | leadingUnderscore: "require", 43 | format: ["camelCase"], 44 | modifiers: ["unused"], 45 | }, 46 | ], 47 | }, 48 | ignorePatterns: [ 49 | "temp.js", 50 | "config/*", 51 | "dist/*", 52 | ".cache", 53 | "public", 54 | "node_modules", 55 | "*.esm.js", 56 | ], 57 | }; 58 | 59 | module.exports = config; 60 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: "" 5 | labels: bug 6 | assignees: retconned 7 | --- 8 | 9 | **Describe the bug** 10 | A clear and concise description of what the bug is. 11 | 12 | **To Reproduce** 13 | Steps to reproduce the behavior: 14 | 15 | 1. Go to '...' 16 | 2. Click on '....' 17 | 3. Scroll down to '....' 18 | 4. See error 19 | 20 | **Expected behavior** 21 | A clear and concise description of what you expected to happen. 22 | 23 | **Screenshots** 24 | If applicable, add screenshots to help explain your problem. 25 | 26 | **System (please complete the following information):** 27 | 28 | - OS: [e.g. Windows, Linux, Mac] 29 | - Runtime [e.g. Node, Bun] 30 | - Runtime Version [e.g. 22] 31 | 32 | **Additional context** 33 | Add any other context about the problem here. 34 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: "[Feature Request]" 5 | labels: enhancement 6 | assignees: "" 7 | --- 8 | 9 | **Is your feature request related to a problem? Please describe.** 10 | A clear and concise description of what the problem is. 11 | 12 | **Describe the solution you'd like** 13 | A clear and concise description of what you want to happen. 14 | 15 | **Additional context** 16 | Add any other context or screenshots about the feature request here. 17 | -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | name: CI 2 | 3 | on: 4 | pull_request: 5 | push: 6 | branches: 7 | - main 8 | 9 | concurrency: 10 | group: ${{ github.workflow }}-${{ github.ref }} 11 | cancel-in-progress: true 12 | 13 | jobs: 14 | ci: 15 | runs-on: ubuntu-latest 16 | 17 | steps: 18 | - uses: actions/checkout@v4 19 | 20 | - name: Use Node.js 21 | uses: actions/setup-node@v4 22 | with: 23 | node-version: "20" 24 | 25 | - name: Install dependencies 26 | run: npm install 27 | 28 | - name: Run CI 29 | run: npm run ci 30 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist 3 | release 4 | .env -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | cache 2 | .cache 3 | package.json 4 | package-lock.json 5 | public 6 | CHANGELOG.md 7 | .yarn 8 | dist 9 | node_modules 10 | .next 11 | build 12 | .contentlayer -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "semi": true, 3 | "trailingComma": "all", 4 | "printWidth": 80, 5 | "tabWidth": 2 6 | } 7 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # @retconned/kickjs 2 | 3 | ## 0.5.3 4 | 5 | ### Patch Changes 6 | 7 | - fda33e9: adds xsrf to sendMessage headers 8 | 9 | ## 0.5.2 10 | 11 | ### Patch Changes 12 | 13 | - f0de3f0: fixes sendMessages and viewport issues 14 | 15 | ## 0.5.1 16 | 17 | ### Patch Changes 18 | 19 | - ac3e959: fixes readme 20 | 21 | ## 0.5.0 22 | 23 | ### Minor Changes 24 | 25 | - 3d46ec4: adds token auth, fixes sending messages 26 | 27 | ## 0.4.5 28 | 29 | ### Patch Changes 30 | 31 | - 7ce0119: improves auth error handling 32 | 33 | ## 0.4.4 34 | 35 | ### Patch Changes 36 | 37 | - 26bed3d: fixes div timeout 38 | 39 | ## 0.4.3 40 | 41 | ### Patch Changes 42 | 43 | - cea93c2: adds polls, leaderboard, timeouts support, cloudflare error handling 44 | 45 | ## 0.4.2 46 | 47 | ### Patch Changes 48 | 49 | - 6e9408c: fixes example code in readme 50 | 51 | ## 0.4.1 52 | 53 | ### Patch Changes 54 | 55 | - 2c07d86: minor publishing misshap 56 | 57 | ## 0.4.0 58 | 59 | ### Minor Changes 60 | 61 | - 59e5f76: authentication implementation 62 | 63 | ## 0.3.0 64 | 65 | ### Minor Changes 66 | 67 | - d96ca4b: adds a vods data feature 68 | 69 | ## 0.2.0 70 | 71 | ### Minor Changes 72 | 73 | - b59672c: missing type fix & updated readme 74 | 75 | ## 0.1.2 76 | 77 | ### Patch Changes 78 | 79 | - 9106a7d: basic functionality implemented 80 | 81 | ## 0.1.1 82 | 83 | ### Patch Changes 84 | 85 | - 66750c2: Initial release 86 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2024 retconned 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ![Version](https://img.shields.io/npm/v/@retconned/kick-js?label=Version) 2 | ![License](https://img.shields.io/npm/l/@retconned/kick-js?label=License) 3 | 4 | ❇️ **@retconned/kick-js** 5 | 6 | ## **What is kick-js** 7 | 8 | **kick-js** is a TypeScript-based library for [kick.com](https://kick.com)'s chat system. It provides a simple interface that allows developers to build chat bots and other chat-related applications. 9 | 10 | ### :construction: This is a new rewrite of the kick-js library, it is not compatible with the previous version. :construction: 11 | 12 | ## Features :rocket: 13 | 14 | - Supports reading & writing to Kick.com chat. 15 | - Moderation actions (ban, slowmode). 16 | - Written in TypeScript. 17 | 18 | ## Installation :package: 19 | 20 | Install the @retconned/kick-js package using the following command: 21 | 22 | ```sh 23 | npm install @retconned/kick-js 24 | ``` 25 | 26 | ## Example code :computer: 27 | 28 | ```ts 29 | import { createClient } from "@retconned/kick-js"; 30 | import "dotenv/config"; 31 | 32 | const client = createClient("xqc", { logger: true, readOnly: true }); 33 | // readOnly: true will make the client only read messages from the chat, and disable all other authenticated actions. 34 | 35 | client.login({ 36 | type: "login", 37 | credentials: { 38 | username: "xqc", 39 | password: "bigschnozer420", 40 | otp_secret: "your-2fa-secret", 41 | }, 42 | }); 43 | // to get your OTP secret, you need to go to https://kick.com/settings/security and enable Two-Factor Authentication and copy the secret from there 44 | 45 | // you can also authenticate using tokens obtained from the kick website directly by switching the type to 'tokens' 46 | client.login({ 47 | type: "tokens", 48 | credentials: { 49 | bearerToken: process.env.BEARER_TOKEN, 50 | cookies: process.env.COOKIES, 51 | }, 52 | }); 53 | 54 | client.on("ready", () => { 55 | console.log(`Bot ready & logged into ${client.user?.tag}!`); 56 | }); 57 | 58 | client.on("ChatMessage", async (message) => { 59 | console.log(`${message.sender.username}: ${message.content}`); 60 | }); 61 | 62 | // get information about a vod 63 | // your-video-id = vod uuid 64 | const { title, duration, thumbnail, views } = await client.vod("your-video-id"); 65 | 66 | // get leaderboards for a channel 67 | const leaderboards = await client.getLeaderboards(); 68 | // you can also pass in a kick-channel-name to get leaderboards for a different channel 69 | // example: const leaderboards = await client.getLeaderboards("xqc"); 70 | 71 | // get polls for a channel 72 | const polls = await client.getPolls(); 73 | // you can also pass in a kick-channel-name to get polls for a different channel 74 | // example: const polls = await client.getPolls("xqc"); 75 | ``` 76 | 77 | ## Disclaimer :warning: 78 | 79 | @retconned/kick-js is not affiliated with or endorsed by [Kick.com](https://kick.com). It is an independent tool created to facilitate making moderation bots & other chat-related applications. 80 | -------------------------------------------------------------------------------- /examples/.env.example: -------------------------------------------------------------------------------- 1 | USERNAME="" 2 | PASSWORD="" 3 | OTP_SECRET="" 4 | 5 | 6 | # for a OTP secret, you need to go to https://kick.com/settings/security and enable Two-Factor Authentication and copy the secret from there -------------------------------------------------------------------------------- /examples/basic-bot.ts: -------------------------------------------------------------------------------- 1 | import { createClient, type MessageData } from "@retconned/kick-js"; 2 | import "dotenv/config"; 3 | 4 | const client = createClient("xqc", { logger: true, readOnly: false }); 5 | 6 | // client.login({ 7 | // type: "login", 8 | // credentials: { 9 | // username: process.env.USERNAME!, 10 | // password: process.env.PASSWORD!, 11 | // otp_secret: process.env.OTP_SECRET!, 12 | // }, 13 | // }); 14 | 15 | client.login({ 16 | type: "tokens", 17 | credentials: { 18 | bearerToken: process.env.BEARER_TOKEN!, 19 | xsrfToken: process.env.XSRF_TOKEN!, 20 | cookies: process.env.COOKIES!, 21 | }, 22 | }); 23 | 24 | client.on("ready", () => { 25 | console.log(`Bot ready & logged into ${client.user?.tag}!`); 26 | }); 27 | 28 | client.on("ChatMessage", async (message: MessageData) => { 29 | console.log(`${message.sender.username}: ${message.content}`); 30 | 31 | if (message.content.match("!ping")) { 32 | client.sendMessage(Math.random().toString(36).substring(7)); 33 | } 34 | 35 | if (message.content.match("!slowmode on")) { 36 | const splitMessage = message.content.split(" "); 37 | const duration = splitMessage[1]; 38 | if (duration) { 39 | const durationInSeconds = parseInt(duration); 40 | client.slowMode("on", durationInSeconds); 41 | } 42 | } 43 | if (message.content.match("!slowmode off")) { 44 | client.slowMode("off"); 45 | } 46 | }); 47 | 48 | client.on("Subscription", async (subscription) => { 49 | console.log(`New subscription 💰 : ${subscription.username}`); 50 | }); 51 | 52 | // get information about a vod 53 | const { title, duration, thumbnail, views } = await client.vod("your-video-id"); 54 | 55 | // to get the current poll in a channel in the channel the bot is in 56 | const poll = await client.getPoll(); 57 | // or you can pass a specific channel to get the poll in that channel. 58 | // example: const poll = await client.getPoll("xqc"); 59 | 60 | // get leaderboards for the channel the bot is in 61 | const leaderboards = await client.getLeaderboards(); 62 | // or you can pass a specific channel to get the leaderboards in that channel. 63 | // example: const leaderboards = await client.getLeaderboards("xqc"); 64 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@retconned/kick-js", 3 | "version": "0.5.3", 4 | "description": "A typescript bot interface for kick.com", 5 | "keywords": [ 6 | "Kick.com", 7 | "Kick Streaming", 8 | "Livestream", 9 | "Kick Chat", 10 | "Kick Bot", 11 | "Kick Api", 12 | "Kick Api Wrapper", 13 | "Kick library" 14 | ], 15 | "homepage": "https://github.com/retconned/kick-js", 16 | "bugs": { 17 | "url": "https://github.com/retconned/kick-js/issues" 18 | }, 19 | "author": "retconned ", 20 | "repository": { 21 | "type": "git", 22 | "url": "git+https://github.com/retconned/kick-js.git" 23 | }, 24 | "files": [ 25 | "dist" 26 | ], 27 | "type": "module", 28 | "license": "MIT", 29 | "main": "dist/index.js", 30 | "scripts": { 31 | "build": "tsup", 32 | "format:fix": "prettier --write \"src/**/*.{ts,tsx}\"", 33 | "format:check": "prettier --check \"src/**/*.{ts,tsx}\"", 34 | "lint:ts": "tsc", 35 | "lint:check": "eslint \"src/**/*.{ts,js}\"", 36 | "lint:fix": "eslint --fix \"src/**/*.{ts,js}\"", 37 | "ci": "npm run build && npm run format:check && npm run check-exports && npm run lint:ts", 38 | "check-exports": "attw --pack . --ignore-rules=cjs-resolves-to-esm", 39 | "test": "vitest run", 40 | "dev": "vitest", 41 | "local:release": "changeset version && changeset publish", 42 | "local:pack": "npm run build && rm -rf release && mkdir release && pnpm pack --pack-destination release", 43 | "prepublishOnly": "npm run ci" 44 | }, 45 | "exports": { 46 | "./package.json": "./package.json", 47 | ".": { 48 | "import": "./dist/index.js", 49 | "default": "./dist/index.cjs" 50 | } 51 | }, 52 | "devDependencies": { 53 | "@arethetypeswrong/cli": "^0.15.4", 54 | "@changesets/cli": "^2.27.8", 55 | "@types/ws": "^8.5.12", 56 | "@typescript-eslint/eslint-plugin": "^8.4.0", 57 | "@typescript-eslint/parser": "^8.4.0", 58 | "eslint": "8", 59 | "eslint-config-prettier": "^9.1.0", 60 | "prettier": "^3.3.3", 61 | "tsup": "^8.2.4", 62 | "tsx": "^4.19.1", 63 | "typescript": "^5.5.4", 64 | "vitest": "^2.1.1" 65 | }, 66 | "dependencies": { 67 | "axios": "^1.7.7", 68 | "otplib": "^12.0.1", 69 | "puppeteer": "^23.3.0", 70 | "puppeteer-extra": "3.3.6", 71 | "puppeteer-extra-plugin-stealth": "2.11.2", 72 | "ws": "^8.18.0" 73 | } 74 | } 75 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '9.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | importers: 8 | 9 | .: 10 | dependencies: 11 | axios: 12 | specifier: ^1.7.7 13 | version: 1.7.7 14 | otplib: 15 | specifier: ^12.0.1 16 | version: 12.0.1 17 | puppeteer: 18 | specifier: ^23.3.0 19 | version: 23.3.0(typescript@5.5.4) 20 | puppeteer-extra: 21 | specifier: 3.3.6 22 | version: 3.3.6(puppeteer-core@23.3.0)(puppeteer@23.3.0(typescript@5.5.4)) 23 | puppeteer-extra-plugin-stealth: 24 | specifier: 2.11.2 25 | version: 2.11.2(puppeteer-extra@3.3.6(puppeteer-core@23.3.0)(puppeteer@23.3.0(typescript@5.5.4))) 26 | ws: 27 | specifier: ^8.18.0 28 | version: 8.18.0 29 | devDependencies: 30 | '@arethetypeswrong/cli': 31 | specifier: ^0.15.4 32 | version: 0.15.4 33 | '@changesets/cli': 34 | specifier: ^2.27.8 35 | version: 2.27.8 36 | '@types/ws': 37 | specifier: ^8.5.12 38 | version: 8.5.12 39 | '@typescript-eslint/eslint-plugin': 40 | specifier: ^8.4.0 41 | version: 8.4.0(@typescript-eslint/parser@8.4.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4) 42 | '@typescript-eslint/parser': 43 | specifier: ^8.4.0 44 | version: 8.4.0(eslint@8.57.0)(typescript@5.5.4) 45 | eslint: 46 | specifier: '8' 47 | version: 8.57.0 48 | eslint-config-prettier: 49 | specifier: ^9.1.0 50 | version: 9.1.0(eslint@8.57.0) 51 | prettier: 52 | specifier: ^3.3.3 53 | version: 3.3.3 54 | tsup: 55 | specifier: ^8.2.4 56 | version: 8.2.4(postcss@8.4.45)(tsx@4.19.1)(typescript@5.5.4) 57 | tsx: 58 | specifier: ^4.19.1 59 | version: 4.19.1 60 | typescript: 61 | specifier: ^5.5.4 62 | version: 5.5.4 63 | vitest: 64 | specifier: ^2.1.1 65 | version: 2.1.1(@types/node@22.5.5) 66 | 67 | packages: 68 | 69 | '@andrewbranch/untar.js@1.0.3': 70 | resolution: {integrity: sha512-Jh15/qVmrLGhkKJBdXlK1+9tY4lZruYjsgkDFj08ZmDiWVBLJcqkok7Z0/R0In+i1rScBpJlSvrTS2Lm41Pbnw==} 71 | 72 | '@arethetypeswrong/cli@0.15.4': 73 | resolution: {integrity: sha512-YDbImAi1MGkouT7f2yAECpUMFhhA1J0EaXzIqoC5GGtK0xDgauLtcsZezm8tNq7d3wOFXH7OnY+IORYcG212rw==} 74 | engines: {node: '>=18'} 75 | hasBin: true 76 | 77 | '@arethetypeswrong/core@0.15.1': 78 | resolution: {integrity: sha512-FYp6GBAgsNz81BkfItRz8RLZO03w5+BaeiPma1uCfmxTnxbtuMrI/dbzGiOk8VghO108uFI0oJo0OkewdSHw7g==} 79 | engines: {node: '>=18'} 80 | 81 | '@babel/code-frame@7.24.7': 82 | resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} 83 | engines: {node: '>=6.9.0'} 84 | 85 | '@babel/helper-validator-identifier@7.24.7': 86 | resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} 87 | engines: {node: '>=6.9.0'} 88 | 89 | '@babel/highlight@7.24.7': 90 | resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} 91 | engines: {node: '>=6.9.0'} 92 | 93 | '@babel/runtime@7.25.6': 94 | resolution: {integrity: sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ==} 95 | engines: {node: '>=6.9.0'} 96 | 97 | '@changesets/apply-release-plan@7.0.5': 98 | resolution: {integrity: sha512-1cWCk+ZshEkSVEZrm2fSj1Gz8sYvxgUL4Q78+1ZZqeqfuevPTPk033/yUZ3df8BKMohkqqHfzj0HOOrG0KtXTw==} 99 | 100 | '@changesets/assemble-release-plan@6.0.4': 101 | resolution: {integrity: sha512-nqICnvmrwWj4w2x0fOhVj2QEGdlUuwVAwESrUo5HLzWMI1rE5SWfsr9ln+rDqWB6RQ2ZyaMZHUcU7/IRaUJS+Q==} 102 | 103 | '@changesets/changelog-git@0.2.0': 104 | resolution: {integrity: sha512-bHOx97iFI4OClIT35Lok3sJAwM31VbUM++gnMBV16fdbtBhgYu4dxsphBF/0AZZsyAHMrnM0yFcj5gZM1py6uQ==} 105 | 106 | '@changesets/cli@2.27.8': 107 | resolution: {integrity: sha512-gZNyh+LdSsI82wBSHLQ3QN5J30P4uHKJ4fXgoGwQxfXwYFTJzDdvIJasZn8rYQtmKhyQuiBj4SSnLuKlxKWq4w==} 108 | hasBin: true 109 | 110 | '@changesets/config@3.0.3': 111 | resolution: {integrity: sha512-vqgQZMyIcuIpw9nqFIpTSNyc/wgm/Lu1zKN5vECy74u95Qx/Wa9g27HdgO4NkVAaq+BGA8wUc/qvbvVNs93n6A==} 112 | 113 | '@changesets/errors@0.2.0': 114 | resolution: {integrity: sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==} 115 | 116 | '@changesets/get-dependents-graph@2.1.2': 117 | resolution: {integrity: sha512-sgcHRkiBY9i4zWYBwlVyAjEM9sAzs4wYVwJUdnbDLnVG3QwAaia1Mk5P8M7kraTOZN+vBET7n8KyB0YXCbFRLQ==} 118 | 119 | '@changesets/get-release-plan@4.0.4': 120 | resolution: {integrity: sha512-SicG/S67JmPTrdcc9Vpu0wSQt7IiuN0dc8iR5VScnnTVPfIaLvKmEGRvIaF0kcn8u5ZqLbormZNTO77bCEvyWw==} 121 | 122 | '@changesets/get-version-range-type@0.4.0': 123 | resolution: {integrity: sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==} 124 | 125 | '@changesets/git@3.0.1': 126 | resolution: {integrity: sha512-pdgHcYBLCPcLd82aRcuO0kxCDbw/yISlOtkmwmE8Odo1L6hSiZrBOsRl84eYG7DRCab/iHnOkWqExqc4wxk2LQ==} 127 | 128 | '@changesets/logger@0.1.1': 129 | resolution: {integrity: sha512-OQtR36ZlnuTxKqoW4Sv6x5YIhOmClRd5pWsjZsddYxpWs517R0HkyiefQPIytCVh4ZcC5x9XaG8KTdd5iRQUfg==} 130 | 131 | '@changesets/parse@0.4.0': 132 | resolution: {integrity: sha512-TS/9KG2CdGXS27S+QxbZXgr8uPsP4yNJYb4BC2/NeFUj80Rni3TeD2qwWmabymxmrLo7JEsytXH1FbpKTbvivw==} 133 | 134 | '@changesets/pre@2.0.1': 135 | resolution: {integrity: sha512-vvBJ/If4jKM4tPz9JdY2kGOgWmCowUYOi5Ycv8dyLnEE8FgpYYUo1mgJZxcdtGGP3aG8rAQulGLyyXGSLkIMTQ==} 136 | 137 | '@changesets/read@0.6.1': 138 | resolution: {integrity: sha512-jYMbyXQk3nwP25nRzQQGa1nKLY0KfoOV7VLgwucI0bUO8t8ZLCr6LZmgjXsiKuRDc+5A6doKPr9w2d+FEJ55zQ==} 139 | 140 | '@changesets/should-skip-package@0.1.1': 141 | resolution: {integrity: sha512-H9LjLbF6mMHLtJIc/eHR9Na+MifJ3VxtgP/Y+XLn4BF7tDTEN1HNYtH6QMcjP1uxp9sjaFYmW8xqloaCi/ckTg==} 142 | 143 | '@changesets/types@4.1.0': 144 | resolution: {integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==} 145 | 146 | '@changesets/types@6.0.0': 147 | resolution: {integrity: sha512-b1UkfNulgKoWfqyHtzKS5fOZYSJO+77adgL7DLRDr+/7jhChN+QcHnbjiQVOz/U+Ts3PGNySq7diAItzDgugfQ==} 148 | 149 | '@changesets/write@0.3.2': 150 | resolution: {integrity: sha512-kDxDrPNpUgsjDbWBvUo27PzKX4gqeKOlhibaOXDJA6kuBisGqNHv/HwGJrAu8U/dSf8ZEFIeHIPtvSlZI1kULw==} 151 | 152 | '@colors/colors@1.5.0': 153 | resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} 154 | engines: {node: '>=0.1.90'} 155 | 156 | '@esbuild/aix-ppc64@0.21.5': 157 | resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} 158 | engines: {node: '>=12'} 159 | cpu: [ppc64] 160 | os: [aix] 161 | 162 | '@esbuild/aix-ppc64@0.23.1': 163 | resolution: {integrity: sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==} 164 | engines: {node: '>=18'} 165 | cpu: [ppc64] 166 | os: [aix] 167 | 168 | '@esbuild/android-arm64@0.21.5': 169 | resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} 170 | engines: {node: '>=12'} 171 | cpu: [arm64] 172 | os: [android] 173 | 174 | '@esbuild/android-arm64@0.23.1': 175 | resolution: {integrity: sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==} 176 | engines: {node: '>=18'} 177 | cpu: [arm64] 178 | os: [android] 179 | 180 | '@esbuild/android-arm@0.21.5': 181 | resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} 182 | engines: {node: '>=12'} 183 | cpu: [arm] 184 | os: [android] 185 | 186 | '@esbuild/android-arm@0.23.1': 187 | resolution: {integrity: sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==} 188 | engines: {node: '>=18'} 189 | cpu: [arm] 190 | os: [android] 191 | 192 | '@esbuild/android-x64@0.21.5': 193 | resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} 194 | engines: {node: '>=12'} 195 | cpu: [x64] 196 | os: [android] 197 | 198 | '@esbuild/android-x64@0.23.1': 199 | resolution: {integrity: sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==} 200 | engines: {node: '>=18'} 201 | cpu: [x64] 202 | os: [android] 203 | 204 | '@esbuild/darwin-arm64@0.21.5': 205 | resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} 206 | engines: {node: '>=12'} 207 | cpu: [arm64] 208 | os: [darwin] 209 | 210 | '@esbuild/darwin-arm64@0.23.1': 211 | resolution: {integrity: sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==} 212 | engines: {node: '>=18'} 213 | cpu: [arm64] 214 | os: [darwin] 215 | 216 | '@esbuild/darwin-x64@0.21.5': 217 | resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} 218 | engines: {node: '>=12'} 219 | cpu: [x64] 220 | os: [darwin] 221 | 222 | '@esbuild/darwin-x64@0.23.1': 223 | resolution: {integrity: sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==} 224 | engines: {node: '>=18'} 225 | cpu: [x64] 226 | os: [darwin] 227 | 228 | '@esbuild/freebsd-arm64@0.21.5': 229 | resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} 230 | engines: {node: '>=12'} 231 | cpu: [arm64] 232 | os: [freebsd] 233 | 234 | '@esbuild/freebsd-arm64@0.23.1': 235 | resolution: {integrity: sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==} 236 | engines: {node: '>=18'} 237 | cpu: [arm64] 238 | os: [freebsd] 239 | 240 | '@esbuild/freebsd-x64@0.21.5': 241 | resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} 242 | engines: {node: '>=12'} 243 | cpu: [x64] 244 | os: [freebsd] 245 | 246 | '@esbuild/freebsd-x64@0.23.1': 247 | resolution: {integrity: sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==} 248 | engines: {node: '>=18'} 249 | cpu: [x64] 250 | os: [freebsd] 251 | 252 | '@esbuild/linux-arm64@0.21.5': 253 | resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} 254 | engines: {node: '>=12'} 255 | cpu: [arm64] 256 | os: [linux] 257 | 258 | '@esbuild/linux-arm64@0.23.1': 259 | resolution: {integrity: sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==} 260 | engines: {node: '>=18'} 261 | cpu: [arm64] 262 | os: [linux] 263 | 264 | '@esbuild/linux-arm@0.21.5': 265 | resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} 266 | engines: {node: '>=12'} 267 | cpu: [arm] 268 | os: [linux] 269 | 270 | '@esbuild/linux-arm@0.23.1': 271 | resolution: {integrity: sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==} 272 | engines: {node: '>=18'} 273 | cpu: [arm] 274 | os: [linux] 275 | 276 | '@esbuild/linux-ia32@0.21.5': 277 | resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} 278 | engines: {node: '>=12'} 279 | cpu: [ia32] 280 | os: [linux] 281 | 282 | '@esbuild/linux-ia32@0.23.1': 283 | resolution: {integrity: sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==} 284 | engines: {node: '>=18'} 285 | cpu: [ia32] 286 | os: [linux] 287 | 288 | '@esbuild/linux-loong64@0.21.5': 289 | resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} 290 | engines: {node: '>=12'} 291 | cpu: [loong64] 292 | os: [linux] 293 | 294 | '@esbuild/linux-loong64@0.23.1': 295 | resolution: {integrity: sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==} 296 | engines: {node: '>=18'} 297 | cpu: [loong64] 298 | os: [linux] 299 | 300 | '@esbuild/linux-mips64el@0.21.5': 301 | resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} 302 | engines: {node: '>=12'} 303 | cpu: [mips64el] 304 | os: [linux] 305 | 306 | '@esbuild/linux-mips64el@0.23.1': 307 | resolution: {integrity: sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==} 308 | engines: {node: '>=18'} 309 | cpu: [mips64el] 310 | os: [linux] 311 | 312 | '@esbuild/linux-ppc64@0.21.5': 313 | resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} 314 | engines: {node: '>=12'} 315 | cpu: [ppc64] 316 | os: [linux] 317 | 318 | '@esbuild/linux-ppc64@0.23.1': 319 | resolution: {integrity: sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==} 320 | engines: {node: '>=18'} 321 | cpu: [ppc64] 322 | os: [linux] 323 | 324 | '@esbuild/linux-riscv64@0.21.5': 325 | resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} 326 | engines: {node: '>=12'} 327 | cpu: [riscv64] 328 | os: [linux] 329 | 330 | '@esbuild/linux-riscv64@0.23.1': 331 | resolution: {integrity: sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==} 332 | engines: {node: '>=18'} 333 | cpu: [riscv64] 334 | os: [linux] 335 | 336 | '@esbuild/linux-s390x@0.21.5': 337 | resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} 338 | engines: {node: '>=12'} 339 | cpu: [s390x] 340 | os: [linux] 341 | 342 | '@esbuild/linux-s390x@0.23.1': 343 | resolution: {integrity: sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==} 344 | engines: {node: '>=18'} 345 | cpu: [s390x] 346 | os: [linux] 347 | 348 | '@esbuild/linux-x64@0.21.5': 349 | resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} 350 | engines: {node: '>=12'} 351 | cpu: [x64] 352 | os: [linux] 353 | 354 | '@esbuild/linux-x64@0.23.1': 355 | resolution: {integrity: sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==} 356 | engines: {node: '>=18'} 357 | cpu: [x64] 358 | os: [linux] 359 | 360 | '@esbuild/netbsd-x64@0.21.5': 361 | resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} 362 | engines: {node: '>=12'} 363 | cpu: [x64] 364 | os: [netbsd] 365 | 366 | '@esbuild/netbsd-x64@0.23.1': 367 | resolution: {integrity: sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==} 368 | engines: {node: '>=18'} 369 | cpu: [x64] 370 | os: [netbsd] 371 | 372 | '@esbuild/openbsd-arm64@0.23.1': 373 | resolution: {integrity: sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==} 374 | engines: {node: '>=18'} 375 | cpu: [arm64] 376 | os: [openbsd] 377 | 378 | '@esbuild/openbsd-x64@0.21.5': 379 | resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} 380 | engines: {node: '>=12'} 381 | cpu: [x64] 382 | os: [openbsd] 383 | 384 | '@esbuild/openbsd-x64@0.23.1': 385 | resolution: {integrity: sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==} 386 | engines: {node: '>=18'} 387 | cpu: [x64] 388 | os: [openbsd] 389 | 390 | '@esbuild/sunos-x64@0.21.5': 391 | resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} 392 | engines: {node: '>=12'} 393 | cpu: [x64] 394 | os: [sunos] 395 | 396 | '@esbuild/sunos-x64@0.23.1': 397 | resolution: {integrity: sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==} 398 | engines: {node: '>=18'} 399 | cpu: [x64] 400 | os: [sunos] 401 | 402 | '@esbuild/win32-arm64@0.21.5': 403 | resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} 404 | engines: {node: '>=12'} 405 | cpu: [arm64] 406 | os: [win32] 407 | 408 | '@esbuild/win32-arm64@0.23.1': 409 | resolution: {integrity: sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==} 410 | engines: {node: '>=18'} 411 | cpu: [arm64] 412 | os: [win32] 413 | 414 | '@esbuild/win32-ia32@0.21.5': 415 | resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} 416 | engines: {node: '>=12'} 417 | cpu: [ia32] 418 | os: [win32] 419 | 420 | '@esbuild/win32-ia32@0.23.1': 421 | resolution: {integrity: sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==} 422 | engines: {node: '>=18'} 423 | cpu: [ia32] 424 | os: [win32] 425 | 426 | '@esbuild/win32-x64@0.21.5': 427 | resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} 428 | engines: {node: '>=12'} 429 | cpu: [x64] 430 | os: [win32] 431 | 432 | '@esbuild/win32-x64@0.23.1': 433 | resolution: {integrity: sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==} 434 | engines: {node: '>=18'} 435 | cpu: [x64] 436 | os: [win32] 437 | 438 | '@eslint-community/eslint-utils@4.4.0': 439 | resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} 440 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 441 | peerDependencies: 442 | eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 443 | 444 | '@eslint-community/regexpp@4.11.0': 445 | resolution: {integrity: sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==} 446 | engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} 447 | 448 | '@eslint/eslintrc@2.1.4': 449 | resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} 450 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 451 | 452 | '@eslint/js@8.57.0': 453 | resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} 454 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 455 | 456 | '@humanwhocodes/config-array@0.11.14': 457 | resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} 458 | engines: {node: '>=10.10.0'} 459 | deprecated: Use @eslint/config-array instead 460 | 461 | '@humanwhocodes/module-importer@1.0.1': 462 | resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} 463 | engines: {node: '>=12.22'} 464 | 465 | '@humanwhocodes/object-schema@2.0.3': 466 | resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} 467 | deprecated: Use @eslint/object-schema instead 468 | 469 | '@isaacs/cliui@8.0.2': 470 | resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} 471 | engines: {node: '>=12'} 472 | 473 | '@jridgewell/gen-mapping@0.3.5': 474 | resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} 475 | engines: {node: '>=6.0.0'} 476 | 477 | '@jridgewell/resolve-uri@3.1.2': 478 | resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} 479 | engines: {node: '>=6.0.0'} 480 | 481 | '@jridgewell/set-array@1.2.1': 482 | resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} 483 | engines: {node: '>=6.0.0'} 484 | 485 | '@jridgewell/sourcemap-codec@1.5.0': 486 | resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} 487 | 488 | '@jridgewell/trace-mapping@0.3.25': 489 | resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} 490 | 491 | '@manypkg/find-root@1.1.0': 492 | resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} 493 | 494 | '@manypkg/get-packages@1.1.3': 495 | resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==} 496 | 497 | '@nodelib/fs.scandir@2.1.5': 498 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 499 | engines: {node: '>= 8'} 500 | 501 | '@nodelib/fs.stat@2.0.5': 502 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 503 | engines: {node: '>= 8'} 504 | 505 | '@nodelib/fs.walk@1.2.8': 506 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 507 | engines: {node: '>= 8'} 508 | 509 | '@otplib/core@12.0.1': 510 | resolution: {integrity: sha512-4sGntwbA/AC+SbPhbsziRiD+jNDdIzsZ3JUyfZwjtKyc/wufl1pnSIaG4Uqx8ymPagujub0o92kgBnB89cuAMA==} 511 | 512 | '@otplib/plugin-crypto@12.0.1': 513 | resolution: {integrity: sha512-qPuhN3QrT7ZZLcLCyKOSNhuijUi9G5guMRVrxq63r9YNOxxQjPm59gVxLM+7xGnHnM6cimY57tuKsjK7y9LM1g==} 514 | 515 | '@otplib/plugin-thirty-two@12.0.1': 516 | resolution: {integrity: sha512-MtT+uqRso909UkbrrYpJ6XFjj9D+x2Py7KjTO9JDPhL0bJUYVu5kFP4TFZW4NFAywrAtFRxOVY261u0qwb93gA==} 517 | 518 | '@otplib/preset-default@12.0.1': 519 | resolution: {integrity: sha512-xf1v9oOJRyXfluBhMdpOkr+bsE+Irt+0D5uHtvg6x1eosfmHCsCC6ej/m7FXiWqdo0+ZUI6xSKDhJwc8yfiOPQ==} 520 | 521 | '@otplib/preset-v11@12.0.1': 522 | resolution: {integrity: sha512-9hSetMI7ECqbFiKICrNa4w70deTUfArtwXykPUvSHWOdzOlfa9ajglu7mNCntlvxycTiOAXkQGwjQCzzDEMRMg==} 523 | 524 | '@pkgjs/parseargs@0.11.0': 525 | resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} 526 | engines: {node: '>=14'} 527 | 528 | '@puppeteer/browsers@2.4.0': 529 | resolution: {integrity: sha512-x8J1csfIygOwf6D6qUAZ0ASk3z63zPb7wkNeHRerCMh82qWKUrOgkuP005AJC8lDL6/evtXETGEJVcwykKT4/g==} 530 | engines: {node: '>=18'} 531 | hasBin: true 532 | 533 | '@rollup/rollup-android-arm-eabi@4.21.2': 534 | resolution: {integrity: sha512-fSuPrt0ZO8uXeS+xP3b+yYTCBUd05MoSp2N/MFOgjhhUhMmchXlpTQrTpI8T+YAwAQuK7MafsCOxW7VrPMrJcg==} 535 | cpu: [arm] 536 | os: [android] 537 | 538 | '@rollup/rollup-android-arm64@4.21.2': 539 | resolution: {integrity: sha512-xGU5ZQmPlsjQS6tzTTGwMsnKUtu0WVbl0hYpTPauvbRAnmIvpInhJtgjj3mcuJpEiuUw4v1s4BimkdfDWlh7gA==} 540 | cpu: [arm64] 541 | os: [android] 542 | 543 | '@rollup/rollup-darwin-arm64@4.21.2': 544 | resolution: {integrity: sha512-99AhQ3/ZMxU7jw34Sq8brzXqWH/bMnf7ZVhvLk9QU2cOepbQSVTns6qoErJmSiAvU3InRqC2RRZ5ovh1KN0d0Q==} 545 | cpu: [arm64] 546 | os: [darwin] 547 | 548 | '@rollup/rollup-darwin-x64@4.21.2': 549 | resolution: {integrity: sha512-ZbRaUvw2iN/y37x6dY50D8m2BnDbBjlnMPotDi/qITMJ4sIxNY33HArjikDyakhSv0+ybdUxhWxE6kTI4oX26w==} 550 | cpu: [x64] 551 | os: [darwin] 552 | 553 | '@rollup/rollup-linux-arm-gnueabihf@4.21.2': 554 | resolution: {integrity: sha512-ztRJJMiE8nnU1YFcdbd9BcH6bGWG1z+jP+IPW2oDUAPxPjo9dverIOyXz76m6IPA6udEL12reYeLojzW2cYL7w==} 555 | cpu: [arm] 556 | os: [linux] 557 | 558 | '@rollup/rollup-linux-arm-musleabihf@4.21.2': 559 | resolution: {integrity: sha512-flOcGHDZajGKYpLV0JNc0VFH361M7rnV1ee+NTeC/BQQ1/0pllYcFmxpagltANYt8FYf9+kL6RSk80Ziwyhr7w==} 560 | cpu: [arm] 561 | os: [linux] 562 | 563 | '@rollup/rollup-linux-arm64-gnu@4.21.2': 564 | resolution: {integrity: sha512-69CF19Kp3TdMopyteO/LJbWufOzqqXzkrv4L2sP8kfMaAQ6iwky7NoXTp7bD6/irKgknDKM0P9E/1l5XxVQAhw==} 565 | cpu: [arm64] 566 | os: [linux] 567 | 568 | '@rollup/rollup-linux-arm64-musl@4.21.2': 569 | resolution: {integrity: sha512-48pD/fJkTiHAZTnZwR0VzHrao70/4MlzJrq0ZsILjLW/Ab/1XlVUStYyGt7tdyIiVSlGZbnliqmult/QGA2O2w==} 570 | cpu: [arm64] 571 | os: [linux] 572 | 573 | '@rollup/rollup-linux-powerpc64le-gnu@4.21.2': 574 | resolution: {integrity: sha512-cZdyuInj0ofc7mAQpKcPR2a2iu4YM4FQfuUzCVA2u4HI95lCwzjoPtdWjdpDKyHxI0UO82bLDoOaLfpZ/wviyQ==} 575 | cpu: [ppc64] 576 | os: [linux] 577 | 578 | '@rollup/rollup-linux-riscv64-gnu@4.21.2': 579 | resolution: {integrity: sha512-RL56JMT6NwQ0lXIQmMIWr1SW28z4E4pOhRRNqwWZeXpRlykRIlEpSWdsgNWJbYBEWD84eocjSGDu/XxbYeCmwg==} 580 | cpu: [riscv64] 581 | os: [linux] 582 | 583 | '@rollup/rollup-linux-s390x-gnu@4.21.2': 584 | resolution: {integrity: sha512-PMxkrWS9z38bCr3rWvDFVGD6sFeZJw4iQlhrup7ReGmfn7Oukrr/zweLhYX6v2/8J6Cep9IEA/SmjXjCmSbrMQ==} 585 | cpu: [s390x] 586 | os: [linux] 587 | 588 | '@rollup/rollup-linux-x64-gnu@4.21.2': 589 | resolution: {integrity: sha512-B90tYAUoLhU22olrafY3JQCFLnT3NglazdwkHyxNDYF/zAxJt5fJUB/yBoWFoIQ7SQj+KLe3iL4BhOMa9fzgpw==} 590 | cpu: [x64] 591 | os: [linux] 592 | 593 | '@rollup/rollup-linux-x64-musl@4.21.2': 594 | resolution: {integrity: sha512-7twFizNXudESmC9oneLGIUmoHiiLppz/Xs5uJQ4ShvE6234K0VB1/aJYU3f/4g7PhssLGKBVCC37uRkkOi8wjg==} 595 | cpu: [x64] 596 | os: [linux] 597 | 598 | '@rollup/rollup-win32-arm64-msvc@4.21.2': 599 | resolution: {integrity: sha512-9rRero0E7qTeYf6+rFh3AErTNU1VCQg2mn7CQcI44vNUWM9Ze7MSRS/9RFuSsox+vstRt97+x3sOhEey024FRQ==} 600 | cpu: [arm64] 601 | os: [win32] 602 | 603 | '@rollup/rollup-win32-ia32-msvc@4.21.2': 604 | resolution: {integrity: sha512-5rA4vjlqgrpbFVVHX3qkrCo/fZTj1q0Xxpg+Z7yIo3J2AilW7t2+n6Q8Jrx+4MrYpAnjttTYF8rr7bP46BPzRw==} 605 | cpu: [ia32] 606 | os: [win32] 607 | 608 | '@rollup/rollup-win32-x64-msvc@4.21.2': 609 | resolution: {integrity: sha512-6UUxd0+SKomjdzuAcp+HAmxw1FlGBnl1v2yEPSabtx4lBfdXHDVsW7+lQkgz9cNFJGY3AWR7+V8P5BqkD9L9nA==} 610 | cpu: [x64] 611 | os: [win32] 612 | 613 | '@sindresorhus/is@4.6.0': 614 | resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} 615 | engines: {node: '>=10'} 616 | 617 | '@tootallnate/quickjs-emscripten@0.23.0': 618 | resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==} 619 | 620 | '@types/debug@4.1.12': 621 | resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} 622 | 623 | '@types/estree@1.0.5': 624 | resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} 625 | 626 | '@types/ms@0.7.34': 627 | resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} 628 | 629 | '@types/node@12.20.55': 630 | resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} 631 | 632 | '@types/node@22.5.5': 633 | resolution: {integrity: sha512-Xjs4y5UPO/CLdzpgR6GirZJx36yScjh73+2NlLlkFRSoQN8B0DpfXPdZGnvVmLRLOsqDpOfTNv7D9trgGhmOIA==} 634 | 635 | '@types/semver@7.5.8': 636 | resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} 637 | 638 | '@types/ws@8.5.12': 639 | resolution: {integrity: sha512-3tPRkv1EtkDpzlgyKyI8pGsGZAGPEaXeu0DOj5DI25Ja91bdAYddYHbADRYVrZMRbfW+1l5YwXVDKohDJNQxkQ==} 640 | 641 | '@types/yauzl@2.10.3': 642 | resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} 643 | 644 | '@typescript-eslint/eslint-plugin@8.4.0': 645 | resolution: {integrity: sha512-rg8LGdv7ri3oAlenMACk9e+AR4wUV0yrrG+XKsGKOK0EVgeEDqurkXMPILG2836fW4ibokTB5v4b6Z9+GYQDEw==} 646 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 647 | peerDependencies: 648 | '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 649 | eslint: ^8.57.0 || ^9.0.0 650 | typescript: '*' 651 | peerDependenciesMeta: 652 | typescript: 653 | optional: true 654 | 655 | '@typescript-eslint/parser@8.4.0': 656 | resolution: {integrity: sha512-NHgWmKSgJk5K9N16GIhQ4jSobBoJwrmURaLErad0qlLjrpP5bECYg+wxVTGlGZmJbU03jj/dfnb6V9bw+5icsA==} 657 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 658 | peerDependencies: 659 | eslint: ^8.57.0 || ^9.0.0 660 | typescript: '*' 661 | peerDependenciesMeta: 662 | typescript: 663 | optional: true 664 | 665 | '@typescript-eslint/scope-manager@8.4.0': 666 | resolution: {integrity: sha512-n2jFxLeY0JmKfUqy3P70rs6vdoPjHK8P/w+zJcV3fk0b0BwRXC/zxRTEnAsgYT7MwdQDt/ZEbtdzdVC+hcpF0A==} 667 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 668 | 669 | '@typescript-eslint/type-utils@8.4.0': 670 | resolution: {integrity: sha512-pu2PAmNrl9KX6TtirVOrbLPLwDmASpZhK/XU7WvoKoCUkdtq9zF7qQ7gna0GBZFN0hci0vHaSusiL2WpsQk37A==} 671 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 672 | peerDependencies: 673 | typescript: '*' 674 | peerDependenciesMeta: 675 | typescript: 676 | optional: true 677 | 678 | '@typescript-eslint/types@8.4.0': 679 | resolution: {integrity: sha512-T1RB3KQdskh9t3v/qv7niK6P8yvn7ja1mS7QK7XfRVL6wtZ8/mFs/FHf4fKvTA0rKnqnYxl/uHFNbnEt0phgbw==} 680 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 681 | 682 | '@typescript-eslint/typescript-estree@8.4.0': 683 | resolution: {integrity: sha512-kJ2OIP4dQw5gdI4uXsaxUZHRwWAGpREJ9Zq6D5L0BweyOrWsL6Sz0YcAZGWhvKnH7fm1J5YFE1JrQL0c9dd53A==} 684 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 685 | peerDependencies: 686 | typescript: '*' 687 | peerDependenciesMeta: 688 | typescript: 689 | optional: true 690 | 691 | '@typescript-eslint/utils@8.4.0': 692 | resolution: {integrity: sha512-swULW8n1IKLjRAgciCkTCafyTHHfwVQFt8DovmaF69sKbOxTSFMmIZaSHjqO9i/RV0wIblaawhzvtva8Nmm7lQ==} 693 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 694 | peerDependencies: 695 | eslint: ^8.57.0 || ^9.0.0 696 | 697 | '@typescript-eslint/visitor-keys@8.4.0': 698 | resolution: {integrity: sha512-zTQD6WLNTre1hj5wp09nBIDiOc2U5r/qmzo7wxPn4ZgAjHql09EofqhF9WF+fZHzL5aCyaIpPcT2hyxl73kr9A==} 699 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 700 | 701 | '@ungap/structured-clone@1.2.0': 702 | resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} 703 | 704 | '@vitest/expect@2.1.1': 705 | resolution: {integrity: sha512-YeueunS0HiHiQxk+KEOnq/QMzlUuOzbU1Go+PgAsHvvv3tUkJPm9xWt+6ITNTlzsMXUjmgm5T+U7KBPK2qQV6w==} 706 | 707 | '@vitest/mocker@2.1.1': 708 | resolution: {integrity: sha512-LNN5VwOEdJqCmJ/2XJBywB11DLlkbY0ooDJW3uRX5cZyYCrc4PI/ePX0iQhE3BiEGiQmK4GE7Q/PqCkkaiPnrA==} 709 | peerDependencies: 710 | '@vitest/spy': 2.1.1 711 | msw: ^2.3.5 712 | vite: ^5.0.0 713 | peerDependenciesMeta: 714 | msw: 715 | optional: true 716 | vite: 717 | optional: true 718 | 719 | '@vitest/pretty-format@2.1.1': 720 | resolution: {integrity: sha512-SjxPFOtuINDUW8/UkElJYQSFtnWX7tMksSGW0vfjxMneFqxVr8YJ979QpMbDW7g+BIiq88RAGDjf7en6rvLPPQ==} 721 | 722 | '@vitest/runner@2.1.1': 723 | resolution: {integrity: sha512-uTPuY6PWOYitIkLPidaY5L3t0JJITdGTSwBtwMjKzo5O6RCOEncz9PUN+0pDidX8kTHYjO0EwUIvhlGpnGpxmA==} 724 | 725 | '@vitest/snapshot@2.1.1': 726 | resolution: {integrity: sha512-BnSku1WFy7r4mm96ha2FzN99AZJgpZOWrAhtQfoxjUU5YMRpq1zmHRq7a5K9/NjqonebO7iVDla+VvZS8BOWMw==} 727 | 728 | '@vitest/spy@2.1.1': 729 | resolution: {integrity: sha512-ZM39BnZ9t/xZ/nF4UwRH5il0Sw93QnZXd9NAZGRpIgj0yvVwPpLd702s/Cx955rGaMlyBQkZJ2Ir7qyY48VZ+g==} 730 | 731 | '@vitest/utils@2.1.1': 732 | resolution: {integrity: sha512-Y6Q9TsI+qJ2CC0ZKj6VBb+T8UPz593N113nnUykqwANqhgf3QkZeHFlusgKLTqrnVHbj/XDKZcDHol+dxVT+rQ==} 733 | 734 | acorn-jsx@5.3.2: 735 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} 736 | peerDependencies: 737 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 738 | 739 | acorn@8.12.1: 740 | resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} 741 | engines: {node: '>=0.4.0'} 742 | hasBin: true 743 | 744 | agent-base@7.1.1: 745 | resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==} 746 | engines: {node: '>= 14'} 747 | 748 | ajv@6.12.6: 749 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} 750 | 751 | ansi-colors@4.1.3: 752 | resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} 753 | engines: {node: '>=6'} 754 | 755 | ansi-escapes@7.0.0: 756 | resolution: {integrity: sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==} 757 | engines: {node: '>=18'} 758 | 759 | ansi-regex@5.0.1: 760 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 761 | engines: {node: '>=8'} 762 | 763 | ansi-regex@6.0.1: 764 | resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} 765 | engines: {node: '>=12'} 766 | 767 | ansi-styles@3.2.1: 768 | resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} 769 | engines: {node: '>=4'} 770 | 771 | ansi-styles@4.3.0: 772 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 773 | engines: {node: '>=8'} 774 | 775 | ansi-styles@6.2.1: 776 | resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} 777 | engines: {node: '>=12'} 778 | 779 | any-promise@1.3.0: 780 | resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} 781 | 782 | anymatch@3.1.3: 783 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 784 | engines: {node: '>= 8'} 785 | 786 | argparse@1.0.10: 787 | resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} 788 | 789 | argparse@2.0.1: 790 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} 791 | 792 | arr-union@3.1.0: 793 | resolution: {integrity: sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==} 794 | engines: {node: '>=0.10.0'} 795 | 796 | array-union@2.1.0: 797 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} 798 | engines: {node: '>=8'} 799 | 800 | assertion-error@2.0.1: 801 | resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} 802 | engines: {node: '>=12'} 803 | 804 | ast-types@0.13.4: 805 | resolution: {integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==} 806 | engines: {node: '>=4'} 807 | 808 | asynckit@0.4.0: 809 | resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} 810 | 811 | axios@1.7.7: 812 | resolution: {integrity: sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==} 813 | 814 | b4a@1.6.6: 815 | resolution: {integrity: sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==} 816 | 817 | balanced-match@1.0.2: 818 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 819 | 820 | bare-events@2.4.2: 821 | resolution: {integrity: sha512-qMKFd2qG/36aA4GwvKq8MxnPgCQAmBWmSyLWsJcbn8v03wvIPQ/hG1Ms8bPzndZxMDoHpxez5VOS+gC9Yi24/Q==} 822 | 823 | bare-fs@2.3.3: 824 | resolution: {integrity: sha512-7RYKL+vZVCyAsMLi5SPu7QGauGGT8avnP/HO571ndEuV4MYdGXvLhtW67FuLPeEI8EiIY7zbbRR9x7x7HU0kgw==} 825 | 826 | bare-os@2.4.2: 827 | resolution: {integrity: sha512-HZoJwzC+rZ9lqEemTMiO0luOePoGYNBgsLLgegKR/cljiJvcDNhDZQkzC+NC5Oh0aHbdBNSOHpghwMuB5tqhjg==} 828 | 829 | bare-path@2.1.3: 830 | resolution: {integrity: sha512-lh/eITfU8hrj9Ru5quUp0Io1kJWIk1bTjzo7JH1P5dWmQ2EL4hFUlfI8FonAhSlgIfhn63p84CDY/x+PisgcXA==} 831 | 832 | bare-stream@2.2.1: 833 | resolution: {integrity: sha512-YTB47kHwBW9zSG8LD77MIBAAQXjU2WjAkMHeeb7hUplVs6+IoM5I7uEVQNPMB7lj9r8I76UMdoMkGnCodHOLqg==} 834 | 835 | base64-js@1.5.1: 836 | resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} 837 | 838 | basic-ftp@5.0.5: 839 | resolution: {integrity: sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==} 840 | engines: {node: '>=10.0.0'} 841 | 842 | better-path-resolve@1.0.0: 843 | resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} 844 | engines: {node: '>=4'} 845 | 846 | binary-extensions@2.3.0: 847 | resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} 848 | engines: {node: '>=8'} 849 | 850 | brace-expansion@1.1.11: 851 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 852 | 853 | brace-expansion@2.0.1: 854 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} 855 | 856 | braces@3.0.3: 857 | resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} 858 | engines: {node: '>=8'} 859 | 860 | buffer-crc32@0.2.13: 861 | resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} 862 | 863 | buffer@5.7.1: 864 | resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} 865 | 866 | bundle-require@5.0.0: 867 | resolution: {integrity: sha512-GuziW3fSSmopcx4KRymQEJVbZUfqlCqcq7dvs6TYwKRZiegK/2buMxQTPs6MGlNv50wms1699qYO54R8XfRX4w==} 868 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 869 | peerDependencies: 870 | esbuild: '>=0.18' 871 | 872 | cac@6.7.14: 873 | resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} 874 | engines: {node: '>=8'} 875 | 876 | callsites@3.1.0: 877 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 878 | engines: {node: '>=6'} 879 | 880 | chai@5.1.1: 881 | resolution: {integrity: sha512-pT1ZgP8rPNqUgieVaEY+ryQr6Q4HXNg8Ei9UnLUrjN4IA7dvQC5JB+/kxVcPNDHyBcc/26CXPkbNzq3qwrOEKA==} 882 | engines: {node: '>=12'} 883 | 884 | chalk@2.4.2: 885 | resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} 886 | engines: {node: '>=4'} 887 | 888 | chalk@4.1.2: 889 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 890 | engines: {node: '>=10'} 891 | 892 | chalk@5.3.0: 893 | resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} 894 | engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} 895 | 896 | char-regex@1.0.2: 897 | resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} 898 | engines: {node: '>=10'} 899 | 900 | chardet@0.7.0: 901 | resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} 902 | 903 | check-error@2.1.1: 904 | resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} 905 | engines: {node: '>= 16'} 906 | 907 | chokidar@3.6.0: 908 | resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} 909 | engines: {node: '>= 8.10.0'} 910 | 911 | chromium-bidi@0.6.5: 912 | resolution: {integrity: sha512-RuLrmzYrxSb0s9SgpB+QN5jJucPduZQ/9SIe76MDxYJuecPW5mxMdacJ1f4EtgiV+R0p3sCkznTMvH0MPGFqjA==} 913 | peerDependencies: 914 | devtools-protocol: '*' 915 | 916 | ci-info@3.9.0: 917 | resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} 918 | engines: {node: '>=8'} 919 | 920 | cli-highlight@2.1.11: 921 | resolution: {integrity: sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==} 922 | engines: {node: '>=8.0.0', npm: '>=5.0.0'} 923 | hasBin: true 924 | 925 | cli-table3@0.6.5: 926 | resolution: {integrity: sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==} 927 | engines: {node: 10.* || >= 12.*} 928 | 929 | cliui@7.0.4: 930 | resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} 931 | 932 | cliui@8.0.1: 933 | resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} 934 | engines: {node: '>=12'} 935 | 936 | clone-deep@0.2.4: 937 | resolution: {integrity: sha512-we+NuQo2DHhSl+DP6jlUiAhyAjBQrYnpOk15rN6c6JSPScjiCLh8IbSU+VTcph6YS3o7mASE8a0+gbZ7ChLpgg==} 938 | engines: {node: '>=0.10.0'} 939 | 940 | color-convert@1.9.3: 941 | resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} 942 | 943 | color-convert@2.0.1: 944 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 945 | engines: {node: '>=7.0.0'} 946 | 947 | color-name@1.1.3: 948 | resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} 949 | 950 | color-name@1.1.4: 951 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 952 | 953 | combined-stream@1.0.8: 954 | resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} 955 | engines: {node: '>= 0.8'} 956 | 957 | commander@10.0.1: 958 | resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} 959 | engines: {node: '>=14'} 960 | 961 | commander@4.1.1: 962 | resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} 963 | engines: {node: '>= 6'} 964 | 965 | concat-map@0.0.1: 966 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 967 | 968 | consola@3.2.3: 969 | resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} 970 | engines: {node: ^14.18.0 || >=16.10.0} 971 | 972 | cosmiconfig@9.0.0: 973 | resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} 974 | engines: {node: '>=14'} 975 | peerDependencies: 976 | typescript: '>=4.9.5' 977 | peerDependenciesMeta: 978 | typescript: 979 | optional: true 980 | 981 | cross-spawn@5.1.0: 982 | resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} 983 | 984 | cross-spawn@7.0.3: 985 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} 986 | engines: {node: '>= 8'} 987 | 988 | data-uri-to-buffer@6.0.2: 989 | resolution: {integrity: sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==} 990 | engines: {node: '>= 14'} 991 | 992 | debug@4.3.6: 993 | resolution: {integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==} 994 | engines: {node: '>=6.0'} 995 | peerDependencies: 996 | supports-color: '*' 997 | peerDependenciesMeta: 998 | supports-color: 999 | optional: true 1000 | 1001 | deep-eql@5.0.2: 1002 | resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} 1003 | engines: {node: '>=6'} 1004 | 1005 | deep-is@0.1.4: 1006 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} 1007 | 1008 | deepmerge@4.3.1: 1009 | resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} 1010 | engines: {node: '>=0.10.0'} 1011 | 1012 | degenerator@5.0.1: 1013 | resolution: {integrity: sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==} 1014 | engines: {node: '>= 14'} 1015 | 1016 | delayed-stream@1.0.0: 1017 | resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} 1018 | engines: {node: '>=0.4.0'} 1019 | 1020 | detect-indent@6.1.0: 1021 | resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} 1022 | engines: {node: '>=8'} 1023 | 1024 | devtools-protocol@0.0.1330662: 1025 | resolution: {integrity: sha512-pzh6YQ8zZfz3iKlCvgzVCu22NdpZ8hNmwU6WnQjNVquh0A9iVosPtNLWDwaWVGyrntQlltPFztTMK5Cg6lfCuw==} 1026 | 1027 | dir-glob@3.0.1: 1028 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} 1029 | engines: {node: '>=8'} 1030 | 1031 | doctrine@3.0.0: 1032 | resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} 1033 | engines: {node: '>=6.0.0'} 1034 | 1035 | eastasianwidth@0.2.0: 1036 | resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} 1037 | 1038 | emoji-regex@8.0.0: 1039 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 1040 | 1041 | emoji-regex@9.2.2: 1042 | resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} 1043 | 1044 | emojilib@2.4.0: 1045 | resolution: {integrity: sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==} 1046 | 1047 | end-of-stream@1.4.4: 1048 | resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} 1049 | 1050 | enquirer@2.4.1: 1051 | resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} 1052 | engines: {node: '>=8.6'} 1053 | 1054 | env-paths@2.2.1: 1055 | resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} 1056 | engines: {node: '>=6'} 1057 | 1058 | environment@1.1.0: 1059 | resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==} 1060 | engines: {node: '>=18'} 1061 | 1062 | error-ex@1.3.2: 1063 | resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} 1064 | 1065 | esbuild@0.21.5: 1066 | resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} 1067 | engines: {node: '>=12'} 1068 | hasBin: true 1069 | 1070 | esbuild@0.23.1: 1071 | resolution: {integrity: sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==} 1072 | engines: {node: '>=18'} 1073 | hasBin: true 1074 | 1075 | escalade@3.2.0: 1076 | resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} 1077 | engines: {node: '>=6'} 1078 | 1079 | escape-string-regexp@1.0.5: 1080 | resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} 1081 | engines: {node: '>=0.8.0'} 1082 | 1083 | escape-string-regexp@4.0.0: 1084 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 1085 | engines: {node: '>=10'} 1086 | 1087 | escodegen@2.1.0: 1088 | resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} 1089 | engines: {node: '>=6.0'} 1090 | hasBin: true 1091 | 1092 | eslint-config-prettier@9.1.0: 1093 | resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} 1094 | hasBin: true 1095 | peerDependencies: 1096 | eslint: '>=7.0.0' 1097 | 1098 | eslint-scope@7.2.2: 1099 | resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} 1100 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1101 | 1102 | eslint-visitor-keys@3.4.3: 1103 | resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} 1104 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1105 | 1106 | eslint@8.57.0: 1107 | resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} 1108 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1109 | hasBin: true 1110 | 1111 | espree@9.6.1: 1112 | resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} 1113 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1114 | 1115 | esprima@4.0.1: 1116 | resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} 1117 | engines: {node: '>=4'} 1118 | hasBin: true 1119 | 1120 | esquery@1.6.0: 1121 | resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} 1122 | engines: {node: '>=0.10'} 1123 | 1124 | esrecurse@4.3.0: 1125 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} 1126 | engines: {node: '>=4.0'} 1127 | 1128 | estraverse@5.3.0: 1129 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} 1130 | engines: {node: '>=4.0'} 1131 | 1132 | estree-walker@3.0.3: 1133 | resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} 1134 | 1135 | esutils@2.0.3: 1136 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 1137 | engines: {node: '>=0.10.0'} 1138 | 1139 | execa@5.1.1: 1140 | resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} 1141 | engines: {node: '>=10'} 1142 | 1143 | extendable-error@0.1.7: 1144 | resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==} 1145 | 1146 | external-editor@3.1.0: 1147 | resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} 1148 | engines: {node: '>=4'} 1149 | 1150 | extract-zip@2.0.1: 1151 | resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==} 1152 | engines: {node: '>= 10.17.0'} 1153 | hasBin: true 1154 | 1155 | fast-deep-equal@3.1.3: 1156 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 1157 | 1158 | fast-fifo@1.3.2: 1159 | resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} 1160 | 1161 | fast-glob@3.3.2: 1162 | resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} 1163 | engines: {node: '>=8.6.0'} 1164 | 1165 | fast-json-stable-stringify@2.1.0: 1166 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} 1167 | 1168 | fast-levenshtein@2.0.6: 1169 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} 1170 | 1171 | fastq@1.17.1: 1172 | resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} 1173 | 1174 | fd-slicer@1.1.0: 1175 | resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} 1176 | 1177 | fflate@0.8.2: 1178 | resolution: {integrity: sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==} 1179 | 1180 | file-entry-cache@6.0.1: 1181 | resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} 1182 | engines: {node: ^10.12.0 || >=12.0.0} 1183 | 1184 | fill-range@7.1.1: 1185 | resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} 1186 | engines: {node: '>=8'} 1187 | 1188 | find-up@4.1.0: 1189 | resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} 1190 | engines: {node: '>=8'} 1191 | 1192 | find-up@5.0.0: 1193 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} 1194 | engines: {node: '>=10'} 1195 | 1196 | flat-cache@3.2.0: 1197 | resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} 1198 | engines: {node: ^10.12.0 || >=12.0.0} 1199 | 1200 | flatted@3.3.1: 1201 | resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} 1202 | 1203 | follow-redirects@1.15.9: 1204 | resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} 1205 | engines: {node: '>=4.0'} 1206 | peerDependencies: 1207 | debug: '*' 1208 | peerDependenciesMeta: 1209 | debug: 1210 | optional: true 1211 | 1212 | for-in@0.1.8: 1213 | resolution: {integrity: sha512-F0to7vbBSHP8E3l6dCjxNOLuSFAACIxFy3UehTUlG7svlXi37HHsDkyVcHo0Pq8QwrE+pXvWSVX3ZT1T9wAZ9g==} 1214 | engines: {node: '>=0.10.0'} 1215 | 1216 | for-in@1.0.2: 1217 | resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==} 1218 | engines: {node: '>=0.10.0'} 1219 | 1220 | for-own@0.1.5: 1221 | resolution: {integrity: sha512-SKmowqGTJoPzLO1T0BBJpkfp3EMacCMOuH40hOUbrbzElVktk4DioXVM99QkLCyKoiuOmyjgcWMpVz2xjE7LZw==} 1222 | engines: {node: '>=0.10.0'} 1223 | 1224 | foreground-child@3.3.0: 1225 | resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} 1226 | engines: {node: '>=14'} 1227 | 1228 | form-data@4.0.0: 1229 | resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} 1230 | engines: {node: '>= 6'} 1231 | 1232 | fs-extra@10.1.0: 1233 | resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} 1234 | engines: {node: '>=12'} 1235 | 1236 | fs-extra@11.2.0: 1237 | resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} 1238 | engines: {node: '>=14.14'} 1239 | 1240 | fs-extra@7.0.1: 1241 | resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} 1242 | engines: {node: '>=6 <7 || >=8'} 1243 | 1244 | fs-extra@8.1.0: 1245 | resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} 1246 | engines: {node: '>=6 <7 || >=8'} 1247 | 1248 | fs.realpath@1.0.0: 1249 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} 1250 | 1251 | fsevents@2.3.3: 1252 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 1253 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 1254 | os: [darwin] 1255 | 1256 | get-caller-file@2.0.5: 1257 | resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} 1258 | engines: {node: 6.* || 8.* || >= 10.*} 1259 | 1260 | get-func-name@2.0.2: 1261 | resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} 1262 | 1263 | get-stream@5.2.0: 1264 | resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} 1265 | engines: {node: '>=8'} 1266 | 1267 | get-stream@6.0.1: 1268 | resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} 1269 | engines: {node: '>=10'} 1270 | 1271 | get-tsconfig@4.8.1: 1272 | resolution: {integrity: sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==} 1273 | 1274 | get-uri@6.0.3: 1275 | resolution: {integrity: sha512-BzUrJBS9EcUb4cFol8r4W3v1cPsSyajLSthNkz5BxbpDcHN5tIrM10E2eNvfnvBn3DaT3DUgx0OpsBKkaOpanw==} 1276 | engines: {node: '>= 14'} 1277 | 1278 | glob-parent@5.1.2: 1279 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 1280 | engines: {node: '>= 6'} 1281 | 1282 | glob-parent@6.0.2: 1283 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 1284 | engines: {node: '>=10.13.0'} 1285 | 1286 | glob@10.4.5: 1287 | resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} 1288 | hasBin: true 1289 | 1290 | glob@7.2.3: 1291 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} 1292 | deprecated: Glob versions prior to v9 are no longer supported 1293 | 1294 | globals@13.24.0: 1295 | resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} 1296 | engines: {node: '>=8'} 1297 | 1298 | globby@11.1.0: 1299 | resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} 1300 | engines: {node: '>=10'} 1301 | 1302 | graceful-fs@4.2.11: 1303 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} 1304 | 1305 | graphemer@1.4.0: 1306 | resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} 1307 | 1308 | has-flag@3.0.0: 1309 | resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} 1310 | engines: {node: '>=4'} 1311 | 1312 | has-flag@4.0.0: 1313 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 1314 | engines: {node: '>=8'} 1315 | 1316 | highlight.js@10.7.3: 1317 | resolution: {integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==} 1318 | 1319 | http-proxy-agent@7.0.2: 1320 | resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} 1321 | engines: {node: '>= 14'} 1322 | 1323 | https-proxy-agent@7.0.5: 1324 | resolution: {integrity: sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==} 1325 | engines: {node: '>= 14'} 1326 | 1327 | human-id@1.0.2: 1328 | resolution: {integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==} 1329 | 1330 | human-signals@2.1.0: 1331 | resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} 1332 | engines: {node: '>=10.17.0'} 1333 | 1334 | iconv-lite@0.4.24: 1335 | resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} 1336 | engines: {node: '>=0.10.0'} 1337 | 1338 | ieee754@1.2.1: 1339 | resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} 1340 | 1341 | ignore@5.3.2: 1342 | resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} 1343 | engines: {node: '>= 4'} 1344 | 1345 | import-fresh@3.3.0: 1346 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} 1347 | engines: {node: '>=6'} 1348 | 1349 | imurmurhash@0.1.4: 1350 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} 1351 | engines: {node: '>=0.8.19'} 1352 | 1353 | inflight@1.0.6: 1354 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 1355 | deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. 1356 | 1357 | inherits@2.0.4: 1358 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 1359 | 1360 | ip-address@9.0.5: 1361 | resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==} 1362 | engines: {node: '>= 12'} 1363 | 1364 | is-arrayish@0.2.1: 1365 | resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} 1366 | 1367 | is-binary-path@2.1.0: 1368 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 1369 | engines: {node: '>=8'} 1370 | 1371 | is-buffer@1.1.6: 1372 | resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} 1373 | 1374 | is-extendable@0.1.1: 1375 | resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} 1376 | engines: {node: '>=0.10.0'} 1377 | 1378 | is-extglob@2.1.1: 1379 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 1380 | engines: {node: '>=0.10.0'} 1381 | 1382 | is-fullwidth-code-point@3.0.0: 1383 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 1384 | engines: {node: '>=8'} 1385 | 1386 | is-glob@4.0.3: 1387 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 1388 | engines: {node: '>=0.10.0'} 1389 | 1390 | is-number@7.0.0: 1391 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 1392 | engines: {node: '>=0.12.0'} 1393 | 1394 | is-path-inside@3.0.3: 1395 | resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} 1396 | engines: {node: '>=8'} 1397 | 1398 | is-plain-object@2.0.4: 1399 | resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} 1400 | engines: {node: '>=0.10.0'} 1401 | 1402 | is-stream@2.0.1: 1403 | resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} 1404 | engines: {node: '>=8'} 1405 | 1406 | is-subdir@1.2.0: 1407 | resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} 1408 | engines: {node: '>=4'} 1409 | 1410 | is-windows@1.0.2: 1411 | resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} 1412 | engines: {node: '>=0.10.0'} 1413 | 1414 | isexe@2.0.0: 1415 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 1416 | 1417 | isobject@3.0.1: 1418 | resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} 1419 | engines: {node: '>=0.10.0'} 1420 | 1421 | jackspeak@3.4.3: 1422 | resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} 1423 | 1424 | joycon@3.1.1: 1425 | resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} 1426 | engines: {node: '>=10'} 1427 | 1428 | js-tokens@4.0.0: 1429 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 1430 | 1431 | js-yaml@3.14.1: 1432 | resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} 1433 | hasBin: true 1434 | 1435 | js-yaml@4.1.0: 1436 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} 1437 | hasBin: true 1438 | 1439 | jsbn@1.1.0: 1440 | resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==} 1441 | 1442 | json-buffer@3.0.1: 1443 | resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} 1444 | 1445 | json-parse-even-better-errors@2.3.1: 1446 | resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} 1447 | 1448 | json-schema-traverse@0.4.1: 1449 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} 1450 | 1451 | json-stable-stringify-without-jsonify@1.0.1: 1452 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} 1453 | 1454 | jsonfile@4.0.0: 1455 | resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} 1456 | 1457 | jsonfile@6.1.0: 1458 | resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} 1459 | 1460 | keyv@4.5.4: 1461 | resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} 1462 | 1463 | kind-of@2.0.1: 1464 | resolution: {integrity: sha512-0u8i1NZ/mg0b+W3MGGw5I7+6Eib2nx72S/QvXa0hYjEkjTknYmEYQJwGu3mLC0BrhtJjtQafTkyRUQ75Kx0LVg==} 1465 | engines: {node: '>=0.10.0'} 1466 | 1467 | kind-of@3.2.2: 1468 | resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==} 1469 | engines: {node: '>=0.10.0'} 1470 | 1471 | lazy-cache@0.2.7: 1472 | resolution: {integrity: sha512-gkX52wvU/R8DVMMt78ATVPFMJqfW8FPz1GZ1sVHBVQHmu/WvhIWE4cE1GBzhJNFicDeYhnwp6Rl35BcAIM3YOQ==} 1473 | engines: {node: '>=0.10.0'} 1474 | 1475 | lazy-cache@1.0.4: 1476 | resolution: {integrity: sha512-RE2g0b5VGZsOCFOCgP7omTRYFqydmZkBwl5oNnQ1lDYC57uyO9KqNnNVxT7COSHTxrRCWVcAVOcbjk+tvh/rgQ==} 1477 | engines: {node: '>=0.10.0'} 1478 | 1479 | levn@0.4.1: 1480 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} 1481 | engines: {node: '>= 0.8.0'} 1482 | 1483 | lilconfig@3.1.2: 1484 | resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==} 1485 | engines: {node: '>=14'} 1486 | 1487 | lines-and-columns@1.2.4: 1488 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} 1489 | 1490 | load-tsconfig@0.2.5: 1491 | resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} 1492 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1493 | 1494 | locate-path@5.0.0: 1495 | resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} 1496 | engines: {node: '>=8'} 1497 | 1498 | locate-path@6.0.0: 1499 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} 1500 | engines: {node: '>=10'} 1501 | 1502 | lodash.merge@4.6.2: 1503 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 1504 | 1505 | lodash.sortby@4.7.0: 1506 | resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} 1507 | 1508 | lodash.startcase@4.4.0: 1509 | resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} 1510 | 1511 | loupe@3.1.1: 1512 | resolution: {integrity: sha512-edNu/8D5MKVfGVFRhFf8aAxiTM6Wumfz5XsaatSxlD3w4R1d/WEKUTydCdPGbl9K7QG/Ca3GnDV2sIKIpXRQcw==} 1513 | 1514 | lru-cache@10.4.3: 1515 | resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} 1516 | 1517 | lru-cache@4.1.5: 1518 | resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} 1519 | 1520 | lru-cache@7.18.3: 1521 | resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} 1522 | engines: {node: '>=12'} 1523 | 1524 | magic-string@0.30.11: 1525 | resolution: {integrity: sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==} 1526 | 1527 | marked-terminal@7.1.0: 1528 | resolution: {integrity: sha512-+pvwa14KZL74MVXjYdPR3nSInhGhNvPce/3mqLVZT2oUvt654sL1XImFuLZ1pkA866IYZ3ikDTOFUIC7XzpZZg==} 1529 | engines: {node: '>=16.0.0'} 1530 | peerDependencies: 1531 | marked: '>=1 <14' 1532 | 1533 | marked@9.1.6: 1534 | resolution: {integrity: sha512-jcByLnIFkd5gSXZmjNvS1TlmRhCXZjIzHYlaGkPlLIekG55JDR2Z4va9tZwCiP+/RDERiNhMOFu01xd6O5ct1Q==} 1535 | engines: {node: '>= 16'} 1536 | hasBin: true 1537 | 1538 | merge-deep@3.0.3: 1539 | resolution: {integrity: sha512-qtmzAS6t6grwEkNrunqTBdn0qKwFgNWvlxUbAV8es9M7Ot1EbyApytCnvE0jALPa46ZpKDUo527kKiaWplmlFA==} 1540 | engines: {node: '>=0.10.0'} 1541 | 1542 | merge-stream@2.0.0: 1543 | resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} 1544 | 1545 | merge2@1.4.1: 1546 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 1547 | engines: {node: '>= 8'} 1548 | 1549 | micromatch@4.0.8: 1550 | resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} 1551 | engines: {node: '>=8.6'} 1552 | 1553 | mime-db@1.52.0: 1554 | resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} 1555 | engines: {node: '>= 0.6'} 1556 | 1557 | mime-types@2.1.35: 1558 | resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} 1559 | engines: {node: '>= 0.6'} 1560 | 1561 | mimic-fn@2.1.0: 1562 | resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} 1563 | engines: {node: '>=6'} 1564 | 1565 | minimatch@3.1.2: 1566 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 1567 | 1568 | minimatch@9.0.5: 1569 | resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} 1570 | engines: {node: '>=16 || 14 >=14.17'} 1571 | 1572 | minipass@7.1.2: 1573 | resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} 1574 | engines: {node: '>=16 || 14 >=14.17'} 1575 | 1576 | mitt@3.0.1: 1577 | resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} 1578 | 1579 | mixin-object@2.0.1: 1580 | resolution: {integrity: sha512-ALGF1Jt9ouehcaXaHhn6t1yGWRqGaHkPFndtFVHfZXOvkIZ/yoGaSi0AHVTafb3ZBGg4dr/bDwnaEKqCXzchMA==} 1581 | engines: {node: '>=0.10.0'} 1582 | 1583 | mri@1.2.0: 1584 | resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} 1585 | engines: {node: '>=4'} 1586 | 1587 | ms@2.1.2: 1588 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 1589 | 1590 | mz@2.7.0: 1591 | resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} 1592 | 1593 | nanoid@3.3.7: 1594 | resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} 1595 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 1596 | hasBin: true 1597 | 1598 | natural-compare@1.4.0: 1599 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} 1600 | 1601 | netmask@2.0.2: 1602 | resolution: {integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==} 1603 | engines: {node: '>= 0.4.0'} 1604 | 1605 | node-emoji@2.1.3: 1606 | resolution: {integrity: sha512-E2WEOVsgs7O16zsURJ/eH8BqhF029wGpEOnv7Urwdo2wmQanOACwJQh0devF9D9RhoZru0+9JXIS0dBXIAz+lA==} 1607 | engines: {node: '>=18'} 1608 | 1609 | normalize-path@3.0.0: 1610 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 1611 | engines: {node: '>=0.10.0'} 1612 | 1613 | npm-run-path@4.0.1: 1614 | resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} 1615 | engines: {node: '>=8'} 1616 | 1617 | object-assign@4.1.1: 1618 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} 1619 | engines: {node: '>=0.10.0'} 1620 | 1621 | once@1.4.0: 1622 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 1623 | 1624 | onetime@5.1.2: 1625 | resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} 1626 | engines: {node: '>=6'} 1627 | 1628 | optionator@0.9.4: 1629 | resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} 1630 | engines: {node: '>= 0.8.0'} 1631 | 1632 | os-tmpdir@1.0.2: 1633 | resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} 1634 | engines: {node: '>=0.10.0'} 1635 | 1636 | otplib@12.0.1: 1637 | resolution: {integrity: sha512-xDGvUOQjop7RDgxTQ+o4pOol0/3xSZzawTiPKRrHnQWAy0WjhNs/5HdIDJCrqC4MBynmjXgULc6YfioaxZeFgg==} 1638 | 1639 | outdent@0.5.0: 1640 | resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==} 1641 | 1642 | p-filter@2.1.0: 1643 | resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} 1644 | engines: {node: '>=8'} 1645 | 1646 | p-limit@2.3.0: 1647 | resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} 1648 | engines: {node: '>=6'} 1649 | 1650 | p-limit@3.1.0: 1651 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} 1652 | engines: {node: '>=10'} 1653 | 1654 | p-locate@4.1.0: 1655 | resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} 1656 | engines: {node: '>=8'} 1657 | 1658 | p-locate@5.0.0: 1659 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} 1660 | engines: {node: '>=10'} 1661 | 1662 | p-map@2.1.0: 1663 | resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} 1664 | engines: {node: '>=6'} 1665 | 1666 | p-try@2.2.0: 1667 | resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} 1668 | engines: {node: '>=6'} 1669 | 1670 | pac-proxy-agent@7.0.2: 1671 | resolution: {integrity: sha512-BFi3vZnO9X5Qt6NRz7ZOaPja3ic0PhlsmCRYLOpN11+mWBCR6XJDqW5RF3j8jm4WGGQZtBA+bTfxYzeKW73eHg==} 1672 | engines: {node: '>= 14'} 1673 | 1674 | pac-resolver@7.0.1: 1675 | resolution: {integrity: sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==} 1676 | engines: {node: '>= 14'} 1677 | 1678 | package-json-from-dist@1.0.0: 1679 | resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==} 1680 | 1681 | package-manager-detector@0.2.0: 1682 | resolution: {integrity: sha512-E385OSk9qDcXhcM9LNSe4sdhx8a9mAPrZ4sMLW+tmxl5ZuGtPUcdFu+MPP2jbgiWAZ6Pfe5soGFMd+0Db5Vrog==} 1683 | 1684 | parent-module@1.0.1: 1685 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 1686 | engines: {node: '>=6'} 1687 | 1688 | parse-json@5.2.0: 1689 | resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} 1690 | engines: {node: '>=8'} 1691 | 1692 | parse5-htmlparser2-tree-adapter@6.0.1: 1693 | resolution: {integrity: sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==} 1694 | 1695 | parse5@5.1.1: 1696 | resolution: {integrity: sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==} 1697 | 1698 | parse5@6.0.1: 1699 | resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} 1700 | 1701 | path-exists@4.0.0: 1702 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 1703 | engines: {node: '>=8'} 1704 | 1705 | path-is-absolute@1.0.1: 1706 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} 1707 | engines: {node: '>=0.10.0'} 1708 | 1709 | path-key@3.1.1: 1710 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 1711 | engines: {node: '>=8'} 1712 | 1713 | path-scurry@1.11.1: 1714 | resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} 1715 | engines: {node: '>=16 || 14 >=14.18'} 1716 | 1717 | path-type@4.0.0: 1718 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 1719 | engines: {node: '>=8'} 1720 | 1721 | pathe@1.1.2: 1722 | resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} 1723 | 1724 | pathval@2.0.0: 1725 | resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} 1726 | engines: {node: '>= 14.16'} 1727 | 1728 | pend@1.2.0: 1729 | resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} 1730 | 1731 | picocolors@1.1.0: 1732 | resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==} 1733 | 1734 | picomatch@2.3.1: 1735 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 1736 | engines: {node: '>=8.6'} 1737 | 1738 | pify@4.0.1: 1739 | resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} 1740 | engines: {node: '>=6'} 1741 | 1742 | pirates@4.0.6: 1743 | resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} 1744 | engines: {node: '>= 6'} 1745 | 1746 | postcss-load-config@6.0.1: 1747 | resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==} 1748 | engines: {node: '>= 18'} 1749 | peerDependencies: 1750 | jiti: '>=1.21.0' 1751 | postcss: '>=8.0.9' 1752 | tsx: ^4.8.1 1753 | yaml: ^2.4.2 1754 | peerDependenciesMeta: 1755 | jiti: 1756 | optional: true 1757 | postcss: 1758 | optional: true 1759 | tsx: 1760 | optional: true 1761 | yaml: 1762 | optional: true 1763 | 1764 | postcss@8.4.45: 1765 | resolution: {integrity: sha512-7KTLTdzdZZYscUc65XmjFiB73vBhBfbPztCYdUNvlaso9PrzjzcmjqBPR0lNGkcVlcO4BjiO5rK/qNz+XAen1Q==} 1766 | engines: {node: ^10 || ^12 || >=14} 1767 | 1768 | prelude-ls@1.2.1: 1769 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} 1770 | engines: {node: '>= 0.8.0'} 1771 | 1772 | prettier@2.8.8: 1773 | resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} 1774 | engines: {node: '>=10.13.0'} 1775 | hasBin: true 1776 | 1777 | prettier@3.3.3: 1778 | resolution: {integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==} 1779 | engines: {node: '>=14'} 1780 | hasBin: true 1781 | 1782 | progress@2.0.3: 1783 | resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} 1784 | engines: {node: '>=0.4.0'} 1785 | 1786 | proxy-agent@6.4.0: 1787 | resolution: {integrity: sha512-u0piLU+nCOHMgGjRbimiXmA9kM/L9EHh3zL81xCdp7m+Y2pHIsnmbdDoEDoAz5geaonNR6q6+yOPQs6n4T6sBQ==} 1788 | engines: {node: '>= 14'} 1789 | 1790 | proxy-from-env@1.1.0: 1791 | resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} 1792 | 1793 | pseudomap@1.0.2: 1794 | resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} 1795 | 1796 | pump@3.0.0: 1797 | resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} 1798 | 1799 | punycode@2.3.1: 1800 | resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} 1801 | engines: {node: '>=6'} 1802 | 1803 | puppeteer-core@23.3.0: 1804 | resolution: {integrity: sha512-sB2SsVMFs4gKad5OCdv6w5vocvtEUrRl0zQqSyRPbo/cj1Ktbarmhxy02Zyb9R9HrssBcJDZbkrvBnbaesPyYg==} 1805 | engines: {node: '>=18'} 1806 | 1807 | puppeteer-extra-plugin-stealth@2.11.2: 1808 | resolution: {integrity: sha512-bUemM5XmTj9i2ZerBzsk2AN5is0wHMNE6K0hXBzBXOzP5m5G3Wl0RHhiqKeHToe/uIH8AoZiGhc1tCkLZQPKTQ==} 1809 | engines: {node: '>=8'} 1810 | peerDependencies: 1811 | playwright-extra: '*' 1812 | puppeteer-extra: '*' 1813 | peerDependenciesMeta: 1814 | playwright-extra: 1815 | optional: true 1816 | puppeteer-extra: 1817 | optional: true 1818 | 1819 | puppeteer-extra-plugin-user-data-dir@2.4.1: 1820 | resolution: {integrity: sha512-kH1GnCcqEDoBXO7epAse4TBPJh9tEpVEK/vkedKfjOVOhZAvLkHGc9swMs5ChrJbRnf8Hdpug6TJlEuimXNQ+g==} 1821 | engines: {node: '>=8'} 1822 | peerDependencies: 1823 | playwright-extra: '*' 1824 | puppeteer-extra: '*' 1825 | peerDependenciesMeta: 1826 | playwright-extra: 1827 | optional: true 1828 | puppeteer-extra: 1829 | optional: true 1830 | 1831 | puppeteer-extra-plugin-user-preferences@2.4.1: 1832 | resolution: {integrity: sha512-i1oAZxRbc1bk8MZufKCruCEC3CCafO9RKMkkodZltI4OqibLFXF3tj6HZ4LZ9C5vCXZjYcDWazgtY69mnmrQ9A==} 1833 | engines: {node: '>=8'} 1834 | peerDependencies: 1835 | playwright-extra: '*' 1836 | puppeteer-extra: '*' 1837 | peerDependenciesMeta: 1838 | playwright-extra: 1839 | optional: true 1840 | puppeteer-extra: 1841 | optional: true 1842 | 1843 | puppeteer-extra-plugin@3.2.3: 1844 | resolution: {integrity: sha512-6RNy0e6pH8vaS3akPIKGg28xcryKscczt4wIl0ePciZENGE2yoaQJNd17UiEbdmh5/6WW6dPcfRWT9lxBwCi2Q==} 1845 | engines: {node: '>=9.11.2'} 1846 | peerDependencies: 1847 | playwright-extra: '*' 1848 | puppeteer-extra: '*' 1849 | peerDependenciesMeta: 1850 | playwright-extra: 1851 | optional: true 1852 | puppeteer-extra: 1853 | optional: true 1854 | 1855 | puppeteer-extra@3.3.6: 1856 | resolution: {integrity: sha512-rsLBE/6mMxAjlLd06LuGacrukP2bqbzKCLzV1vrhHFavqQE/taQ2UXv3H5P0Ls7nsrASa+6x3bDbXHpqMwq+7A==} 1857 | engines: {node: '>=8'} 1858 | peerDependencies: 1859 | '@types/puppeteer': '*' 1860 | puppeteer: '*' 1861 | puppeteer-core: '*' 1862 | peerDependenciesMeta: 1863 | '@types/puppeteer': 1864 | optional: true 1865 | puppeteer: 1866 | optional: true 1867 | puppeteer-core: 1868 | optional: true 1869 | 1870 | puppeteer@23.3.0: 1871 | resolution: {integrity: sha512-e2jY8cdWSUGsrLxqGm3hIbJq/UIk1uOY8XY7SM51leXkH7shrIyE91lK90Q9byX6tte+cyL3HKqlWBEd6TjWTA==} 1872 | engines: {node: '>=18'} 1873 | hasBin: true 1874 | 1875 | queue-microtask@1.2.3: 1876 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 1877 | 1878 | queue-tick@1.0.1: 1879 | resolution: {integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==} 1880 | 1881 | read-yaml-file@1.1.0: 1882 | resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==} 1883 | engines: {node: '>=6'} 1884 | 1885 | readdirp@3.6.0: 1886 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 1887 | engines: {node: '>=8.10.0'} 1888 | 1889 | regenerator-runtime@0.14.1: 1890 | resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} 1891 | 1892 | require-directory@2.1.1: 1893 | resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} 1894 | engines: {node: '>=0.10.0'} 1895 | 1896 | resolve-from@4.0.0: 1897 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 1898 | engines: {node: '>=4'} 1899 | 1900 | resolve-from@5.0.0: 1901 | resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} 1902 | engines: {node: '>=8'} 1903 | 1904 | resolve-pkg-maps@1.0.0: 1905 | resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} 1906 | 1907 | reusify@1.0.4: 1908 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 1909 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 1910 | 1911 | rimraf@3.0.2: 1912 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} 1913 | deprecated: Rimraf versions prior to v4 are no longer supported 1914 | hasBin: true 1915 | 1916 | rollup@4.21.2: 1917 | resolution: {integrity: sha512-e3TapAgYf9xjdLvKQCkQTnbTKd4a6jwlpQSJJFokHGaX2IVjoEqkIIhiQfqsi0cdwlOD+tQGuOd5AJkc5RngBw==} 1918 | engines: {node: '>=18.0.0', npm: '>=8.0.0'} 1919 | hasBin: true 1920 | 1921 | run-parallel@1.2.0: 1922 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 1923 | 1924 | safer-buffer@2.1.2: 1925 | resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} 1926 | 1927 | semver@7.6.3: 1928 | resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} 1929 | engines: {node: '>=10'} 1930 | hasBin: true 1931 | 1932 | shallow-clone@0.1.2: 1933 | resolution: {integrity: sha512-J1zdXCky5GmNnuauESROVu31MQSnLoYvlyEn6j2Ztk6Q5EHFIhxkMhYcv6vuDzl2XEzoRr856QwzMgWM/TmZgw==} 1934 | engines: {node: '>=0.10.0'} 1935 | 1936 | shebang-command@1.2.0: 1937 | resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} 1938 | engines: {node: '>=0.10.0'} 1939 | 1940 | shebang-command@2.0.0: 1941 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 1942 | engines: {node: '>=8'} 1943 | 1944 | shebang-regex@1.0.0: 1945 | resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} 1946 | engines: {node: '>=0.10.0'} 1947 | 1948 | shebang-regex@3.0.0: 1949 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 1950 | engines: {node: '>=8'} 1951 | 1952 | siginfo@2.0.0: 1953 | resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} 1954 | 1955 | signal-exit@3.0.7: 1956 | resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} 1957 | 1958 | signal-exit@4.1.0: 1959 | resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} 1960 | engines: {node: '>=14'} 1961 | 1962 | skin-tone@2.0.0: 1963 | resolution: {integrity: sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==} 1964 | engines: {node: '>=8'} 1965 | 1966 | slash@3.0.0: 1967 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} 1968 | engines: {node: '>=8'} 1969 | 1970 | smart-buffer@4.2.0: 1971 | resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} 1972 | engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} 1973 | 1974 | socks-proxy-agent@8.0.4: 1975 | resolution: {integrity: sha512-GNAq/eg8Udq2x0eNiFkr9gRg5bA7PXEWagQdeRX4cPSG+X/8V38v637gim9bjFptMk1QWsCTr0ttrJEiXbNnRw==} 1976 | engines: {node: '>= 14'} 1977 | 1978 | socks@2.8.3: 1979 | resolution: {integrity: sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==} 1980 | engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} 1981 | 1982 | source-map-js@1.2.0: 1983 | resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} 1984 | engines: {node: '>=0.10.0'} 1985 | 1986 | source-map@0.6.1: 1987 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} 1988 | engines: {node: '>=0.10.0'} 1989 | 1990 | source-map@0.8.0-beta.0: 1991 | resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} 1992 | engines: {node: '>= 8'} 1993 | 1994 | spawndamnit@2.0.0: 1995 | resolution: {integrity: sha512-j4JKEcncSjFlqIwU5L/rp2N5SIPsdxaRsIv678+TZxZ0SRDJTm8JrxJMjE/XuiEZNEir3S8l0Fa3Ke339WI4qA==} 1996 | 1997 | sprintf-js@1.0.3: 1998 | resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} 1999 | 2000 | sprintf-js@1.1.3: 2001 | resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} 2002 | 2003 | stackback@0.0.2: 2004 | resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} 2005 | 2006 | std-env@3.7.0: 2007 | resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} 2008 | 2009 | streamx@2.20.0: 2010 | resolution: {integrity: sha512-ZGd1LhDeGFucr1CUCTBOS58ZhEendd0ttpGT3usTvosS4ntIwKN9LJFp+OeCSprsCPL14BXVRZlHGRY1V9PVzQ==} 2011 | 2012 | string-width@4.2.3: 2013 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 2014 | engines: {node: '>=8'} 2015 | 2016 | string-width@5.1.2: 2017 | resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} 2018 | engines: {node: '>=12'} 2019 | 2020 | strip-ansi@6.0.1: 2021 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 2022 | engines: {node: '>=8'} 2023 | 2024 | strip-ansi@7.1.0: 2025 | resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} 2026 | engines: {node: '>=12'} 2027 | 2028 | strip-bom@3.0.0: 2029 | resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} 2030 | engines: {node: '>=4'} 2031 | 2032 | strip-final-newline@2.0.0: 2033 | resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} 2034 | engines: {node: '>=6'} 2035 | 2036 | strip-json-comments@3.1.1: 2037 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 2038 | engines: {node: '>=8'} 2039 | 2040 | sucrase@3.35.0: 2041 | resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} 2042 | engines: {node: '>=16 || 14 >=14.17'} 2043 | hasBin: true 2044 | 2045 | supports-color@5.5.0: 2046 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} 2047 | engines: {node: '>=4'} 2048 | 2049 | supports-color@7.2.0: 2050 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 2051 | engines: {node: '>=8'} 2052 | 2053 | supports-hyperlinks@3.1.0: 2054 | resolution: {integrity: sha512-2rn0BZ+/f7puLOHZm1HOJfwBggfaHXUpPUSSG/SWM4TWp5KCfmNYwnC3hruy2rZlMnmWZ+QAGpZfchu3f3695A==} 2055 | engines: {node: '>=14.18'} 2056 | 2057 | tar-fs@3.0.6: 2058 | resolution: {integrity: sha512-iokBDQQkUyeXhgPYaZxmczGPhnhXZ0CmrqI+MOb/WFGS9DW5wnfrLgtjUJBvz50vQ3qfRwJ62QVoCFu8mPVu5w==} 2059 | 2060 | tar-stream@3.1.7: 2061 | resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==} 2062 | 2063 | term-size@2.2.1: 2064 | resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} 2065 | engines: {node: '>=8'} 2066 | 2067 | text-decoder@1.1.1: 2068 | resolution: {integrity: sha512-8zll7REEv4GDD3x4/0pW+ppIxSNs7H1J10IKFZsuOMscumCdM2a+toDGLPA3T+1+fLBql4zbt5z83GEQGGV5VA==} 2069 | 2070 | text-table@0.2.0: 2071 | resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} 2072 | 2073 | thenify-all@1.6.0: 2074 | resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} 2075 | engines: {node: '>=0.8'} 2076 | 2077 | thenify@3.3.1: 2078 | resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} 2079 | 2080 | thirty-two@1.0.2: 2081 | resolution: {integrity: sha512-OEI0IWCe+Dw46019YLl6V10Us5bi574EvlJEOcAkB29IzQ/mYD1A6RyNHLjZPiHCmuodxvgF6U+vZO1L15lxVA==} 2082 | engines: {node: '>=0.2.6'} 2083 | 2084 | through@2.3.8: 2085 | resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} 2086 | 2087 | tinybench@2.9.0: 2088 | resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} 2089 | 2090 | tinyexec@0.3.0: 2091 | resolution: {integrity: sha512-tVGE0mVJPGb0chKhqmsoosjsS+qUnJVGJpZgsHYQcGoPlG3B51R3PouqTgEGH2Dc9jjFyOqOpix6ZHNMXp1FZg==} 2092 | 2093 | tinypool@1.0.1: 2094 | resolution: {integrity: sha512-URZYihUbRPcGv95En+sz6MfghfIc2OJ1sv/RmhWZLouPY0/8Vo80viwPvg3dlaS9fuq7fQMEfgRRK7BBZThBEA==} 2095 | engines: {node: ^18.0.0 || >=20.0.0} 2096 | 2097 | tinyrainbow@1.2.0: 2098 | resolution: {integrity: sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==} 2099 | engines: {node: '>=14.0.0'} 2100 | 2101 | tinyspy@3.0.2: 2102 | resolution: {integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==} 2103 | engines: {node: '>=14.0.0'} 2104 | 2105 | tmp@0.0.33: 2106 | resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} 2107 | engines: {node: '>=0.6.0'} 2108 | 2109 | to-regex-range@5.0.1: 2110 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 2111 | engines: {node: '>=8.0'} 2112 | 2113 | tr46@1.0.1: 2114 | resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} 2115 | 2116 | tree-kill@1.2.2: 2117 | resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} 2118 | hasBin: true 2119 | 2120 | ts-api-utils@1.3.0: 2121 | resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} 2122 | engines: {node: '>=16'} 2123 | peerDependencies: 2124 | typescript: '>=4.2.0' 2125 | 2126 | ts-expose-internals-conditionally@1.0.0-empty.0: 2127 | resolution: {integrity: sha512-F8m9NOF6ZhdOClDVdlM8gj3fDCav4ZIFSs/EI3ksQbAAXVSCN/Jh5OCJDDZWBuBy9psFc6jULGDlPwjMYMhJDw==} 2128 | 2129 | ts-interface-checker@0.1.13: 2130 | resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} 2131 | 2132 | tslib@2.7.0: 2133 | resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==} 2134 | 2135 | tsup@8.2.4: 2136 | resolution: {integrity: sha512-akpCPePnBnC/CXgRrcy72ZSntgIEUa1jN0oJbbvpALWKNOz1B7aM+UVDWGRGIO/T/PZugAESWDJUAb5FD48o8Q==} 2137 | engines: {node: '>=18'} 2138 | hasBin: true 2139 | peerDependencies: 2140 | '@microsoft/api-extractor': ^7.36.0 2141 | '@swc/core': ^1 2142 | postcss: ^8.4.12 2143 | typescript: '>=4.5.0' 2144 | peerDependenciesMeta: 2145 | '@microsoft/api-extractor': 2146 | optional: true 2147 | '@swc/core': 2148 | optional: true 2149 | postcss: 2150 | optional: true 2151 | typescript: 2152 | optional: true 2153 | 2154 | tsx@4.19.1: 2155 | resolution: {integrity: sha512-0flMz1lh74BR4wOvBjuh9olbnwqCPc35OOlfyzHba0Dc+QNUeWX/Gq2YTbnwcWPO3BMd8fkzRVrHcsR+a7z7rA==} 2156 | engines: {node: '>=18.0.0'} 2157 | hasBin: true 2158 | 2159 | type-check@0.4.0: 2160 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} 2161 | engines: {node: '>= 0.8.0'} 2162 | 2163 | type-fest@0.20.2: 2164 | resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} 2165 | engines: {node: '>=10'} 2166 | 2167 | typed-query-selector@2.12.0: 2168 | resolution: {integrity: sha512-SbklCd1F0EiZOyPiW192rrHZzZ5sBijB6xM+cpmrwDqObvdtunOHHIk9fCGsoK5JVIYXoyEp4iEdE3upFH3PAg==} 2169 | 2170 | typescript@5.3.3: 2171 | resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} 2172 | engines: {node: '>=14.17'} 2173 | hasBin: true 2174 | 2175 | typescript@5.5.4: 2176 | resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==} 2177 | engines: {node: '>=14.17'} 2178 | hasBin: true 2179 | 2180 | unbzip2-stream@1.4.3: 2181 | resolution: {integrity: sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==} 2182 | 2183 | undici-types@6.19.8: 2184 | resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} 2185 | 2186 | unicode-emoji-modifier-base@1.0.0: 2187 | resolution: {integrity: sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==} 2188 | engines: {node: '>=4'} 2189 | 2190 | universalify@0.1.2: 2191 | resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} 2192 | engines: {node: '>= 4.0.0'} 2193 | 2194 | universalify@2.0.1: 2195 | resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} 2196 | engines: {node: '>= 10.0.0'} 2197 | 2198 | uri-js@4.4.1: 2199 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 2200 | 2201 | urlpattern-polyfill@10.0.0: 2202 | resolution: {integrity: sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg==} 2203 | 2204 | validate-npm-package-name@5.0.1: 2205 | resolution: {integrity: sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==} 2206 | engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} 2207 | 2208 | vite-node@2.1.1: 2209 | resolution: {integrity: sha512-N/mGckI1suG/5wQI35XeR9rsMsPqKXzq1CdUndzVstBj/HvyxxGctwnK6WX43NGt5L3Z5tcRf83g4TITKJhPrA==} 2210 | engines: {node: ^18.0.0 || >=20.0.0} 2211 | hasBin: true 2212 | 2213 | vite@5.4.5: 2214 | resolution: {integrity: sha512-pXqR0qtb2bTwLkev4SE3r4abCNioP3GkjvIDLlzziPpXtHgiJIjuKl+1GN6ESOT3wMjG3JTeARopj2SwYaHTOA==} 2215 | engines: {node: ^18.0.0 || >=20.0.0} 2216 | hasBin: true 2217 | peerDependencies: 2218 | '@types/node': ^18.0.0 || >=20.0.0 2219 | less: '*' 2220 | lightningcss: ^1.21.0 2221 | sass: '*' 2222 | sass-embedded: '*' 2223 | stylus: '*' 2224 | sugarss: '*' 2225 | terser: ^5.4.0 2226 | peerDependenciesMeta: 2227 | '@types/node': 2228 | optional: true 2229 | less: 2230 | optional: true 2231 | lightningcss: 2232 | optional: true 2233 | sass: 2234 | optional: true 2235 | sass-embedded: 2236 | optional: true 2237 | stylus: 2238 | optional: true 2239 | sugarss: 2240 | optional: true 2241 | terser: 2242 | optional: true 2243 | 2244 | vitest@2.1.1: 2245 | resolution: {integrity: sha512-97We7/VC0e9X5zBVkvt7SGQMGrRtn3KtySFQG5fpaMlS+l62eeXRQO633AYhSTC3z7IMebnPPNjGXVGNRFlxBA==} 2246 | engines: {node: ^18.0.0 || >=20.0.0} 2247 | hasBin: true 2248 | peerDependencies: 2249 | '@edge-runtime/vm': '*' 2250 | '@types/node': ^18.0.0 || >=20.0.0 2251 | '@vitest/browser': 2.1.1 2252 | '@vitest/ui': 2.1.1 2253 | happy-dom: '*' 2254 | jsdom: '*' 2255 | peerDependenciesMeta: 2256 | '@edge-runtime/vm': 2257 | optional: true 2258 | '@types/node': 2259 | optional: true 2260 | '@vitest/browser': 2261 | optional: true 2262 | '@vitest/ui': 2263 | optional: true 2264 | happy-dom: 2265 | optional: true 2266 | jsdom: 2267 | optional: true 2268 | 2269 | webidl-conversions@4.0.2: 2270 | resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} 2271 | 2272 | whatwg-url@7.1.0: 2273 | resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} 2274 | 2275 | which@1.3.1: 2276 | resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} 2277 | hasBin: true 2278 | 2279 | which@2.0.2: 2280 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 2281 | engines: {node: '>= 8'} 2282 | hasBin: true 2283 | 2284 | why-is-node-running@2.3.0: 2285 | resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} 2286 | engines: {node: '>=8'} 2287 | hasBin: true 2288 | 2289 | word-wrap@1.2.5: 2290 | resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} 2291 | engines: {node: '>=0.10.0'} 2292 | 2293 | wrap-ansi@7.0.0: 2294 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} 2295 | engines: {node: '>=10'} 2296 | 2297 | wrap-ansi@8.1.0: 2298 | resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} 2299 | engines: {node: '>=12'} 2300 | 2301 | wrappy@1.0.2: 2302 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 2303 | 2304 | ws@8.18.0: 2305 | resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} 2306 | engines: {node: '>=10.0.0'} 2307 | peerDependencies: 2308 | bufferutil: ^4.0.1 2309 | utf-8-validate: '>=5.0.2' 2310 | peerDependenciesMeta: 2311 | bufferutil: 2312 | optional: true 2313 | utf-8-validate: 2314 | optional: true 2315 | 2316 | y18n@5.0.8: 2317 | resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} 2318 | engines: {node: '>=10'} 2319 | 2320 | yallist@2.1.2: 2321 | resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==} 2322 | 2323 | yargs-parser@20.2.9: 2324 | resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} 2325 | engines: {node: '>=10'} 2326 | 2327 | yargs-parser@21.1.1: 2328 | resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} 2329 | engines: {node: '>=12'} 2330 | 2331 | yargs@16.2.0: 2332 | resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} 2333 | engines: {node: '>=10'} 2334 | 2335 | yargs@17.7.2: 2336 | resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} 2337 | engines: {node: '>=12'} 2338 | 2339 | yauzl@2.10.0: 2340 | resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==} 2341 | 2342 | yocto-queue@0.1.0: 2343 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 2344 | engines: {node: '>=10'} 2345 | 2346 | zod@3.23.8: 2347 | resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} 2348 | 2349 | snapshots: 2350 | 2351 | '@andrewbranch/untar.js@1.0.3': {} 2352 | 2353 | '@arethetypeswrong/cli@0.15.4': 2354 | dependencies: 2355 | '@arethetypeswrong/core': 0.15.1 2356 | chalk: 4.1.2 2357 | cli-table3: 0.6.5 2358 | commander: 10.0.1 2359 | marked: 9.1.6 2360 | marked-terminal: 7.1.0(marked@9.1.6) 2361 | semver: 7.6.3 2362 | 2363 | '@arethetypeswrong/core@0.15.1': 2364 | dependencies: 2365 | '@andrewbranch/untar.js': 1.0.3 2366 | fflate: 0.8.2 2367 | semver: 7.6.3 2368 | ts-expose-internals-conditionally: 1.0.0-empty.0 2369 | typescript: 5.3.3 2370 | validate-npm-package-name: 5.0.1 2371 | 2372 | '@babel/code-frame@7.24.7': 2373 | dependencies: 2374 | '@babel/highlight': 7.24.7 2375 | picocolors: 1.1.0 2376 | 2377 | '@babel/helper-validator-identifier@7.24.7': {} 2378 | 2379 | '@babel/highlight@7.24.7': 2380 | dependencies: 2381 | '@babel/helper-validator-identifier': 7.24.7 2382 | chalk: 2.4.2 2383 | js-tokens: 4.0.0 2384 | picocolors: 1.1.0 2385 | 2386 | '@babel/runtime@7.25.6': 2387 | dependencies: 2388 | regenerator-runtime: 0.14.1 2389 | 2390 | '@changesets/apply-release-plan@7.0.5': 2391 | dependencies: 2392 | '@changesets/config': 3.0.3 2393 | '@changesets/get-version-range-type': 0.4.0 2394 | '@changesets/git': 3.0.1 2395 | '@changesets/should-skip-package': 0.1.1 2396 | '@changesets/types': 6.0.0 2397 | '@manypkg/get-packages': 1.1.3 2398 | detect-indent: 6.1.0 2399 | fs-extra: 7.0.1 2400 | lodash.startcase: 4.4.0 2401 | outdent: 0.5.0 2402 | prettier: 2.8.8 2403 | resolve-from: 5.0.0 2404 | semver: 7.6.3 2405 | 2406 | '@changesets/assemble-release-plan@6.0.4': 2407 | dependencies: 2408 | '@changesets/errors': 0.2.0 2409 | '@changesets/get-dependents-graph': 2.1.2 2410 | '@changesets/should-skip-package': 0.1.1 2411 | '@changesets/types': 6.0.0 2412 | '@manypkg/get-packages': 1.1.3 2413 | semver: 7.6.3 2414 | 2415 | '@changesets/changelog-git@0.2.0': 2416 | dependencies: 2417 | '@changesets/types': 6.0.0 2418 | 2419 | '@changesets/cli@2.27.8': 2420 | dependencies: 2421 | '@changesets/apply-release-plan': 7.0.5 2422 | '@changesets/assemble-release-plan': 6.0.4 2423 | '@changesets/changelog-git': 0.2.0 2424 | '@changesets/config': 3.0.3 2425 | '@changesets/errors': 0.2.0 2426 | '@changesets/get-dependents-graph': 2.1.2 2427 | '@changesets/get-release-plan': 4.0.4 2428 | '@changesets/git': 3.0.1 2429 | '@changesets/logger': 0.1.1 2430 | '@changesets/pre': 2.0.1 2431 | '@changesets/read': 0.6.1 2432 | '@changesets/should-skip-package': 0.1.1 2433 | '@changesets/types': 6.0.0 2434 | '@changesets/write': 0.3.2 2435 | '@manypkg/get-packages': 1.1.3 2436 | '@types/semver': 7.5.8 2437 | ansi-colors: 4.1.3 2438 | ci-info: 3.9.0 2439 | enquirer: 2.4.1 2440 | external-editor: 3.1.0 2441 | fs-extra: 7.0.1 2442 | mri: 1.2.0 2443 | outdent: 0.5.0 2444 | p-limit: 2.3.0 2445 | package-manager-detector: 0.2.0 2446 | picocolors: 1.1.0 2447 | resolve-from: 5.0.0 2448 | semver: 7.6.3 2449 | spawndamnit: 2.0.0 2450 | term-size: 2.2.1 2451 | 2452 | '@changesets/config@3.0.3': 2453 | dependencies: 2454 | '@changesets/errors': 0.2.0 2455 | '@changesets/get-dependents-graph': 2.1.2 2456 | '@changesets/logger': 0.1.1 2457 | '@changesets/types': 6.0.0 2458 | '@manypkg/get-packages': 1.1.3 2459 | fs-extra: 7.0.1 2460 | micromatch: 4.0.8 2461 | 2462 | '@changesets/errors@0.2.0': 2463 | dependencies: 2464 | extendable-error: 0.1.7 2465 | 2466 | '@changesets/get-dependents-graph@2.1.2': 2467 | dependencies: 2468 | '@changesets/types': 6.0.0 2469 | '@manypkg/get-packages': 1.1.3 2470 | picocolors: 1.1.0 2471 | semver: 7.6.3 2472 | 2473 | '@changesets/get-release-plan@4.0.4': 2474 | dependencies: 2475 | '@changesets/assemble-release-plan': 6.0.4 2476 | '@changesets/config': 3.0.3 2477 | '@changesets/pre': 2.0.1 2478 | '@changesets/read': 0.6.1 2479 | '@changesets/types': 6.0.0 2480 | '@manypkg/get-packages': 1.1.3 2481 | 2482 | '@changesets/get-version-range-type@0.4.0': {} 2483 | 2484 | '@changesets/git@3.0.1': 2485 | dependencies: 2486 | '@changesets/errors': 0.2.0 2487 | '@manypkg/get-packages': 1.1.3 2488 | is-subdir: 1.2.0 2489 | micromatch: 4.0.8 2490 | spawndamnit: 2.0.0 2491 | 2492 | '@changesets/logger@0.1.1': 2493 | dependencies: 2494 | picocolors: 1.1.0 2495 | 2496 | '@changesets/parse@0.4.0': 2497 | dependencies: 2498 | '@changesets/types': 6.0.0 2499 | js-yaml: 3.14.1 2500 | 2501 | '@changesets/pre@2.0.1': 2502 | dependencies: 2503 | '@changesets/errors': 0.2.0 2504 | '@changesets/types': 6.0.0 2505 | '@manypkg/get-packages': 1.1.3 2506 | fs-extra: 7.0.1 2507 | 2508 | '@changesets/read@0.6.1': 2509 | dependencies: 2510 | '@changesets/git': 3.0.1 2511 | '@changesets/logger': 0.1.1 2512 | '@changesets/parse': 0.4.0 2513 | '@changesets/types': 6.0.0 2514 | fs-extra: 7.0.1 2515 | p-filter: 2.1.0 2516 | picocolors: 1.1.0 2517 | 2518 | '@changesets/should-skip-package@0.1.1': 2519 | dependencies: 2520 | '@changesets/types': 6.0.0 2521 | '@manypkg/get-packages': 1.1.3 2522 | 2523 | '@changesets/types@4.1.0': {} 2524 | 2525 | '@changesets/types@6.0.0': {} 2526 | 2527 | '@changesets/write@0.3.2': 2528 | dependencies: 2529 | '@changesets/types': 6.0.0 2530 | fs-extra: 7.0.1 2531 | human-id: 1.0.2 2532 | prettier: 2.8.8 2533 | 2534 | '@colors/colors@1.5.0': 2535 | optional: true 2536 | 2537 | '@esbuild/aix-ppc64@0.21.5': 2538 | optional: true 2539 | 2540 | '@esbuild/aix-ppc64@0.23.1': 2541 | optional: true 2542 | 2543 | '@esbuild/android-arm64@0.21.5': 2544 | optional: true 2545 | 2546 | '@esbuild/android-arm64@0.23.1': 2547 | optional: true 2548 | 2549 | '@esbuild/android-arm@0.21.5': 2550 | optional: true 2551 | 2552 | '@esbuild/android-arm@0.23.1': 2553 | optional: true 2554 | 2555 | '@esbuild/android-x64@0.21.5': 2556 | optional: true 2557 | 2558 | '@esbuild/android-x64@0.23.1': 2559 | optional: true 2560 | 2561 | '@esbuild/darwin-arm64@0.21.5': 2562 | optional: true 2563 | 2564 | '@esbuild/darwin-arm64@0.23.1': 2565 | optional: true 2566 | 2567 | '@esbuild/darwin-x64@0.21.5': 2568 | optional: true 2569 | 2570 | '@esbuild/darwin-x64@0.23.1': 2571 | optional: true 2572 | 2573 | '@esbuild/freebsd-arm64@0.21.5': 2574 | optional: true 2575 | 2576 | '@esbuild/freebsd-arm64@0.23.1': 2577 | optional: true 2578 | 2579 | '@esbuild/freebsd-x64@0.21.5': 2580 | optional: true 2581 | 2582 | '@esbuild/freebsd-x64@0.23.1': 2583 | optional: true 2584 | 2585 | '@esbuild/linux-arm64@0.21.5': 2586 | optional: true 2587 | 2588 | '@esbuild/linux-arm64@0.23.1': 2589 | optional: true 2590 | 2591 | '@esbuild/linux-arm@0.21.5': 2592 | optional: true 2593 | 2594 | '@esbuild/linux-arm@0.23.1': 2595 | optional: true 2596 | 2597 | '@esbuild/linux-ia32@0.21.5': 2598 | optional: true 2599 | 2600 | '@esbuild/linux-ia32@0.23.1': 2601 | optional: true 2602 | 2603 | '@esbuild/linux-loong64@0.21.5': 2604 | optional: true 2605 | 2606 | '@esbuild/linux-loong64@0.23.1': 2607 | optional: true 2608 | 2609 | '@esbuild/linux-mips64el@0.21.5': 2610 | optional: true 2611 | 2612 | '@esbuild/linux-mips64el@0.23.1': 2613 | optional: true 2614 | 2615 | '@esbuild/linux-ppc64@0.21.5': 2616 | optional: true 2617 | 2618 | '@esbuild/linux-ppc64@0.23.1': 2619 | optional: true 2620 | 2621 | '@esbuild/linux-riscv64@0.21.5': 2622 | optional: true 2623 | 2624 | '@esbuild/linux-riscv64@0.23.1': 2625 | optional: true 2626 | 2627 | '@esbuild/linux-s390x@0.21.5': 2628 | optional: true 2629 | 2630 | '@esbuild/linux-s390x@0.23.1': 2631 | optional: true 2632 | 2633 | '@esbuild/linux-x64@0.21.5': 2634 | optional: true 2635 | 2636 | '@esbuild/linux-x64@0.23.1': 2637 | optional: true 2638 | 2639 | '@esbuild/netbsd-x64@0.21.5': 2640 | optional: true 2641 | 2642 | '@esbuild/netbsd-x64@0.23.1': 2643 | optional: true 2644 | 2645 | '@esbuild/openbsd-arm64@0.23.1': 2646 | optional: true 2647 | 2648 | '@esbuild/openbsd-x64@0.21.5': 2649 | optional: true 2650 | 2651 | '@esbuild/openbsd-x64@0.23.1': 2652 | optional: true 2653 | 2654 | '@esbuild/sunos-x64@0.21.5': 2655 | optional: true 2656 | 2657 | '@esbuild/sunos-x64@0.23.1': 2658 | optional: true 2659 | 2660 | '@esbuild/win32-arm64@0.21.5': 2661 | optional: true 2662 | 2663 | '@esbuild/win32-arm64@0.23.1': 2664 | optional: true 2665 | 2666 | '@esbuild/win32-ia32@0.21.5': 2667 | optional: true 2668 | 2669 | '@esbuild/win32-ia32@0.23.1': 2670 | optional: true 2671 | 2672 | '@esbuild/win32-x64@0.21.5': 2673 | optional: true 2674 | 2675 | '@esbuild/win32-x64@0.23.1': 2676 | optional: true 2677 | 2678 | '@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)': 2679 | dependencies: 2680 | eslint: 8.57.0 2681 | eslint-visitor-keys: 3.4.3 2682 | 2683 | '@eslint-community/regexpp@4.11.0': {} 2684 | 2685 | '@eslint/eslintrc@2.1.4': 2686 | dependencies: 2687 | ajv: 6.12.6 2688 | debug: 4.3.6 2689 | espree: 9.6.1 2690 | globals: 13.24.0 2691 | ignore: 5.3.2 2692 | import-fresh: 3.3.0 2693 | js-yaml: 4.1.0 2694 | minimatch: 3.1.2 2695 | strip-json-comments: 3.1.1 2696 | transitivePeerDependencies: 2697 | - supports-color 2698 | 2699 | '@eslint/js@8.57.0': {} 2700 | 2701 | '@humanwhocodes/config-array@0.11.14': 2702 | dependencies: 2703 | '@humanwhocodes/object-schema': 2.0.3 2704 | debug: 4.3.6 2705 | minimatch: 3.1.2 2706 | transitivePeerDependencies: 2707 | - supports-color 2708 | 2709 | '@humanwhocodes/module-importer@1.0.1': {} 2710 | 2711 | '@humanwhocodes/object-schema@2.0.3': {} 2712 | 2713 | '@isaacs/cliui@8.0.2': 2714 | dependencies: 2715 | string-width: 5.1.2 2716 | string-width-cjs: string-width@4.2.3 2717 | strip-ansi: 7.1.0 2718 | strip-ansi-cjs: strip-ansi@6.0.1 2719 | wrap-ansi: 8.1.0 2720 | wrap-ansi-cjs: wrap-ansi@7.0.0 2721 | 2722 | '@jridgewell/gen-mapping@0.3.5': 2723 | dependencies: 2724 | '@jridgewell/set-array': 1.2.1 2725 | '@jridgewell/sourcemap-codec': 1.5.0 2726 | '@jridgewell/trace-mapping': 0.3.25 2727 | 2728 | '@jridgewell/resolve-uri@3.1.2': {} 2729 | 2730 | '@jridgewell/set-array@1.2.1': {} 2731 | 2732 | '@jridgewell/sourcemap-codec@1.5.0': {} 2733 | 2734 | '@jridgewell/trace-mapping@0.3.25': 2735 | dependencies: 2736 | '@jridgewell/resolve-uri': 3.1.2 2737 | '@jridgewell/sourcemap-codec': 1.5.0 2738 | 2739 | '@manypkg/find-root@1.1.0': 2740 | dependencies: 2741 | '@babel/runtime': 7.25.6 2742 | '@types/node': 12.20.55 2743 | find-up: 4.1.0 2744 | fs-extra: 8.1.0 2745 | 2746 | '@manypkg/get-packages@1.1.3': 2747 | dependencies: 2748 | '@babel/runtime': 7.25.6 2749 | '@changesets/types': 4.1.0 2750 | '@manypkg/find-root': 1.1.0 2751 | fs-extra: 8.1.0 2752 | globby: 11.1.0 2753 | read-yaml-file: 1.1.0 2754 | 2755 | '@nodelib/fs.scandir@2.1.5': 2756 | dependencies: 2757 | '@nodelib/fs.stat': 2.0.5 2758 | run-parallel: 1.2.0 2759 | 2760 | '@nodelib/fs.stat@2.0.5': {} 2761 | 2762 | '@nodelib/fs.walk@1.2.8': 2763 | dependencies: 2764 | '@nodelib/fs.scandir': 2.1.5 2765 | fastq: 1.17.1 2766 | 2767 | '@otplib/core@12.0.1': {} 2768 | 2769 | '@otplib/plugin-crypto@12.0.1': 2770 | dependencies: 2771 | '@otplib/core': 12.0.1 2772 | 2773 | '@otplib/plugin-thirty-two@12.0.1': 2774 | dependencies: 2775 | '@otplib/core': 12.0.1 2776 | thirty-two: 1.0.2 2777 | 2778 | '@otplib/preset-default@12.0.1': 2779 | dependencies: 2780 | '@otplib/core': 12.0.1 2781 | '@otplib/plugin-crypto': 12.0.1 2782 | '@otplib/plugin-thirty-two': 12.0.1 2783 | 2784 | '@otplib/preset-v11@12.0.1': 2785 | dependencies: 2786 | '@otplib/core': 12.0.1 2787 | '@otplib/plugin-crypto': 12.0.1 2788 | '@otplib/plugin-thirty-two': 12.0.1 2789 | 2790 | '@pkgjs/parseargs@0.11.0': 2791 | optional: true 2792 | 2793 | '@puppeteer/browsers@2.4.0': 2794 | dependencies: 2795 | debug: 4.3.6 2796 | extract-zip: 2.0.1 2797 | progress: 2.0.3 2798 | proxy-agent: 6.4.0 2799 | semver: 7.6.3 2800 | tar-fs: 3.0.6 2801 | unbzip2-stream: 1.4.3 2802 | yargs: 17.7.2 2803 | transitivePeerDependencies: 2804 | - supports-color 2805 | 2806 | '@rollup/rollup-android-arm-eabi@4.21.2': 2807 | optional: true 2808 | 2809 | '@rollup/rollup-android-arm64@4.21.2': 2810 | optional: true 2811 | 2812 | '@rollup/rollup-darwin-arm64@4.21.2': 2813 | optional: true 2814 | 2815 | '@rollup/rollup-darwin-x64@4.21.2': 2816 | optional: true 2817 | 2818 | '@rollup/rollup-linux-arm-gnueabihf@4.21.2': 2819 | optional: true 2820 | 2821 | '@rollup/rollup-linux-arm-musleabihf@4.21.2': 2822 | optional: true 2823 | 2824 | '@rollup/rollup-linux-arm64-gnu@4.21.2': 2825 | optional: true 2826 | 2827 | '@rollup/rollup-linux-arm64-musl@4.21.2': 2828 | optional: true 2829 | 2830 | '@rollup/rollup-linux-powerpc64le-gnu@4.21.2': 2831 | optional: true 2832 | 2833 | '@rollup/rollup-linux-riscv64-gnu@4.21.2': 2834 | optional: true 2835 | 2836 | '@rollup/rollup-linux-s390x-gnu@4.21.2': 2837 | optional: true 2838 | 2839 | '@rollup/rollup-linux-x64-gnu@4.21.2': 2840 | optional: true 2841 | 2842 | '@rollup/rollup-linux-x64-musl@4.21.2': 2843 | optional: true 2844 | 2845 | '@rollup/rollup-win32-arm64-msvc@4.21.2': 2846 | optional: true 2847 | 2848 | '@rollup/rollup-win32-ia32-msvc@4.21.2': 2849 | optional: true 2850 | 2851 | '@rollup/rollup-win32-x64-msvc@4.21.2': 2852 | optional: true 2853 | 2854 | '@sindresorhus/is@4.6.0': {} 2855 | 2856 | '@tootallnate/quickjs-emscripten@0.23.0': {} 2857 | 2858 | '@types/debug@4.1.12': 2859 | dependencies: 2860 | '@types/ms': 0.7.34 2861 | 2862 | '@types/estree@1.0.5': {} 2863 | 2864 | '@types/ms@0.7.34': {} 2865 | 2866 | '@types/node@12.20.55': {} 2867 | 2868 | '@types/node@22.5.5': 2869 | dependencies: 2870 | undici-types: 6.19.8 2871 | 2872 | '@types/semver@7.5.8': {} 2873 | 2874 | '@types/ws@8.5.12': 2875 | dependencies: 2876 | '@types/node': 22.5.5 2877 | 2878 | '@types/yauzl@2.10.3': 2879 | dependencies: 2880 | '@types/node': 22.5.5 2881 | optional: true 2882 | 2883 | '@typescript-eslint/eslint-plugin@8.4.0(@typescript-eslint/parser@8.4.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4)': 2884 | dependencies: 2885 | '@eslint-community/regexpp': 4.11.0 2886 | '@typescript-eslint/parser': 8.4.0(eslint@8.57.0)(typescript@5.5.4) 2887 | '@typescript-eslint/scope-manager': 8.4.0 2888 | '@typescript-eslint/type-utils': 8.4.0(eslint@8.57.0)(typescript@5.5.4) 2889 | '@typescript-eslint/utils': 8.4.0(eslint@8.57.0)(typescript@5.5.4) 2890 | '@typescript-eslint/visitor-keys': 8.4.0 2891 | eslint: 8.57.0 2892 | graphemer: 1.4.0 2893 | ignore: 5.3.2 2894 | natural-compare: 1.4.0 2895 | ts-api-utils: 1.3.0(typescript@5.5.4) 2896 | optionalDependencies: 2897 | typescript: 5.5.4 2898 | transitivePeerDependencies: 2899 | - supports-color 2900 | 2901 | '@typescript-eslint/parser@8.4.0(eslint@8.57.0)(typescript@5.5.4)': 2902 | dependencies: 2903 | '@typescript-eslint/scope-manager': 8.4.0 2904 | '@typescript-eslint/types': 8.4.0 2905 | '@typescript-eslint/typescript-estree': 8.4.0(typescript@5.5.4) 2906 | '@typescript-eslint/visitor-keys': 8.4.0 2907 | debug: 4.3.6 2908 | eslint: 8.57.0 2909 | optionalDependencies: 2910 | typescript: 5.5.4 2911 | transitivePeerDependencies: 2912 | - supports-color 2913 | 2914 | '@typescript-eslint/scope-manager@8.4.0': 2915 | dependencies: 2916 | '@typescript-eslint/types': 8.4.0 2917 | '@typescript-eslint/visitor-keys': 8.4.0 2918 | 2919 | '@typescript-eslint/type-utils@8.4.0(eslint@8.57.0)(typescript@5.5.4)': 2920 | dependencies: 2921 | '@typescript-eslint/typescript-estree': 8.4.0(typescript@5.5.4) 2922 | '@typescript-eslint/utils': 8.4.0(eslint@8.57.0)(typescript@5.5.4) 2923 | debug: 4.3.6 2924 | ts-api-utils: 1.3.0(typescript@5.5.4) 2925 | optionalDependencies: 2926 | typescript: 5.5.4 2927 | transitivePeerDependencies: 2928 | - eslint 2929 | - supports-color 2930 | 2931 | '@typescript-eslint/types@8.4.0': {} 2932 | 2933 | '@typescript-eslint/typescript-estree@8.4.0(typescript@5.5.4)': 2934 | dependencies: 2935 | '@typescript-eslint/types': 8.4.0 2936 | '@typescript-eslint/visitor-keys': 8.4.0 2937 | debug: 4.3.6 2938 | fast-glob: 3.3.2 2939 | is-glob: 4.0.3 2940 | minimatch: 9.0.5 2941 | semver: 7.6.3 2942 | ts-api-utils: 1.3.0(typescript@5.5.4) 2943 | optionalDependencies: 2944 | typescript: 5.5.4 2945 | transitivePeerDependencies: 2946 | - supports-color 2947 | 2948 | '@typescript-eslint/utils@8.4.0(eslint@8.57.0)(typescript@5.5.4)': 2949 | dependencies: 2950 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) 2951 | '@typescript-eslint/scope-manager': 8.4.0 2952 | '@typescript-eslint/types': 8.4.0 2953 | '@typescript-eslint/typescript-estree': 8.4.0(typescript@5.5.4) 2954 | eslint: 8.57.0 2955 | transitivePeerDependencies: 2956 | - supports-color 2957 | - typescript 2958 | 2959 | '@typescript-eslint/visitor-keys@8.4.0': 2960 | dependencies: 2961 | '@typescript-eslint/types': 8.4.0 2962 | eslint-visitor-keys: 3.4.3 2963 | 2964 | '@ungap/structured-clone@1.2.0': {} 2965 | 2966 | '@vitest/expect@2.1.1': 2967 | dependencies: 2968 | '@vitest/spy': 2.1.1 2969 | '@vitest/utils': 2.1.1 2970 | chai: 5.1.1 2971 | tinyrainbow: 1.2.0 2972 | 2973 | '@vitest/mocker@2.1.1(@vitest/spy@2.1.1)(vite@5.4.5(@types/node@22.5.5))': 2974 | dependencies: 2975 | '@vitest/spy': 2.1.1 2976 | estree-walker: 3.0.3 2977 | magic-string: 0.30.11 2978 | optionalDependencies: 2979 | vite: 5.4.5(@types/node@22.5.5) 2980 | 2981 | '@vitest/pretty-format@2.1.1': 2982 | dependencies: 2983 | tinyrainbow: 1.2.0 2984 | 2985 | '@vitest/runner@2.1.1': 2986 | dependencies: 2987 | '@vitest/utils': 2.1.1 2988 | pathe: 1.1.2 2989 | 2990 | '@vitest/snapshot@2.1.1': 2991 | dependencies: 2992 | '@vitest/pretty-format': 2.1.1 2993 | magic-string: 0.30.11 2994 | pathe: 1.1.2 2995 | 2996 | '@vitest/spy@2.1.1': 2997 | dependencies: 2998 | tinyspy: 3.0.2 2999 | 3000 | '@vitest/utils@2.1.1': 3001 | dependencies: 3002 | '@vitest/pretty-format': 2.1.1 3003 | loupe: 3.1.1 3004 | tinyrainbow: 1.2.0 3005 | 3006 | acorn-jsx@5.3.2(acorn@8.12.1): 3007 | dependencies: 3008 | acorn: 8.12.1 3009 | 3010 | acorn@8.12.1: {} 3011 | 3012 | agent-base@7.1.1: 3013 | dependencies: 3014 | debug: 4.3.6 3015 | transitivePeerDependencies: 3016 | - supports-color 3017 | 3018 | ajv@6.12.6: 3019 | dependencies: 3020 | fast-deep-equal: 3.1.3 3021 | fast-json-stable-stringify: 2.1.0 3022 | json-schema-traverse: 0.4.1 3023 | uri-js: 4.4.1 3024 | 3025 | ansi-colors@4.1.3: {} 3026 | 3027 | ansi-escapes@7.0.0: 3028 | dependencies: 3029 | environment: 1.1.0 3030 | 3031 | ansi-regex@5.0.1: {} 3032 | 3033 | ansi-regex@6.0.1: {} 3034 | 3035 | ansi-styles@3.2.1: 3036 | dependencies: 3037 | color-convert: 1.9.3 3038 | 3039 | ansi-styles@4.3.0: 3040 | dependencies: 3041 | color-convert: 2.0.1 3042 | 3043 | ansi-styles@6.2.1: {} 3044 | 3045 | any-promise@1.3.0: {} 3046 | 3047 | anymatch@3.1.3: 3048 | dependencies: 3049 | normalize-path: 3.0.0 3050 | picomatch: 2.3.1 3051 | 3052 | argparse@1.0.10: 3053 | dependencies: 3054 | sprintf-js: 1.0.3 3055 | 3056 | argparse@2.0.1: {} 3057 | 3058 | arr-union@3.1.0: {} 3059 | 3060 | array-union@2.1.0: {} 3061 | 3062 | assertion-error@2.0.1: {} 3063 | 3064 | ast-types@0.13.4: 3065 | dependencies: 3066 | tslib: 2.7.0 3067 | 3068 | asynckit@0.4.0: {} 3069 | 3070 | axios@1.7.7: 3071 | dependencies: 3072 | follow-redirects: 1.15.9 3073 | form-data: 4.0.0 3074 | proxy-from-env: 1.1.0 3075 | transitivePeerDependencies: 3076 | - debug 3077 | 3078 | b4a@1.6.6: {} 3079 | 3080 | balanced-match@1.0.2: {} 3081 | 3082 | bare-events@2.4.2: 3083 | optional: true 3084 | 3085 | bare-fs@2.3.3: 3086 | dependencies: 3087 | bare-events: 2.4.2 3088 | bare-path: 2.1.3 3089 | bare-stream: 2.2.1 3090 | optional: true 3091 | 3092 | bare-os@2.4.2: 3093 | optional: true 3094 | 3095 | bare-path@2.1.3: 3096 | dependencies: 3097 | bare-os: 2.4.2 3098 | optional: true 3099 | 3100 | bare-stream@2.2.1: 3101 | dependencies: 3102 | b4a: 1.6.6 3103 | streamx: 2.20.0 3104 | optional: true 3105 | 3106 | base64-js@1.5.1: {} 3107 | 3108 | basic-ftp@5.0.5: {} 3109 | 3110 | better-path-resolve@1.0.0: 3111 | dependencies: 3112 | is-windows: 1.0.2 3113 | 3114 | binary-extensions@2.3.0: {} 3115 | 3116 | brace-expansion@1.1.11: 3117 | dependencies: 3118 | balanced-match: 1.0.2 3119 | concat-map: 0.0.1 3120 | 3121 | brace-expansion@2.0.1: 3122 | dependencies: 3123 | balanced-match: 1.0.2 3124 | 3125 | braces@3.0.3: 3126 | dependencies: 3127 | fill-range: 7.1.1 3128 | 3129 | buffer-crc32@0.2.13: {} 3130 | 3131 | buffer@5.7.1: 3132 | dependencies: 3133 | base64-js: 1.5.1 3134 | ieee754: 1.2.1 3135 | 3136 | bundle-require@5.0.0(esbuild@0.23.1): 3137 | dependencies: 3138 | esbuild: 0.23.1 3139 | load-tsconfig: 0.2.5 3140 | 3141 | cac@6.7.14: {} 3142 | 3143 | callsites@3.1.0: {} 3144 | 3145 | chai@5.1.1: 3146 | dependencies: 3147 | assertion-error: 2.0.1 3148 | check-error: 2.1.1 3149 | deep-eql: 5.0.2 3150 | loupe: 3.1.1 3151 | pathval: 2.0.0 3152 | 3153 | chalk@2.4.2: 3154 | dependencies: 3155 | ansi-styles: 3.2.1 3156 | escape-string-regexp: 1.0.5 3157 | supports-color: 5.5.0 3158 | 3159 | chalk@4.1.2: 3160 | dependencies: 3161 | ansi-styles: 4.3.0 3162 | supports-color: 7.2.0 3163 | 3164 | chalk@5.3.0: {} 3165 | 3166 | char-regex@1.0.2: {} 3167 | 3168 | chardet@0.7.0: {} 3169 | 3170 | check-error@2.1.1: {} 3171 | 3172 | chokidar@3.6.0: 3173 | dependencies: 3174 | anymatch: 3.1.3 3175 | braces: 3.0.3 3176 | glob-parent: 5.1.2 3177 | is-binary-path: 2.1.0 3178 | is-glob: 4.0.3 3179 | normalize-path: 3.0.0 3180 | readdirp: 3.6.0 3181 | optionalDependencies: 3182 | fsevents: 2.3.3 3183 | 3184 | chromium-bidi@0.6.5(devtools-protocol@0.0.1330662): 3185 | dependencies: 3186 | devtools-protocol: 0.0.1330662 3187 | mitt: 3.0.1 3188 | urlpattern-polyfill: 10.0.0 3189 | zod: 3.23.8 3190 | 3191 | ci-info@3.9.0: {} 3192 | 3193 | cli-highlight@2.1.11: 3194 | dependencies: 3195 | chalk: 4.1.2 3196 | highlight.js: 10.7.3 3197 | mz: 2.7.0 3198 | parse5: 5.1.1 3199 | parse5-htmlparser2-tree-adapter: 6.0.1 3200 | yargs: 16.2.0 3201 | 3202 | cli-table3@0.6.5: 3203 | dependencies: 3204 | string-width: 4.2.3 3205 | optionalDependencies: 3206 | '@colors/colors': 1.5.0 3207 | 3208 | cliui@7.0.4: 3209 | dependencies: 3210 | string-width: 4.2.3 3211 | strip-ansi: 6.0.1 3212 | wrap-ansi: 7.0.0 3213 | 3214 | cliui@8.0.1: 3215 | dependencies: 3216 | string-width: 4.2.3 3217 | strip-ansi: 6.0.1 3218 | wrap-ansi: 7.0.0 3219 | 3220 | clone-deep@0.2.4: 3221 | dependencies: 3222 | for-own: 0.1.5 3223 | is-plain-object: 2.0.4 3224 | kind-of: 3.2.2 3225 | lazy-cache: 1.0.4 3226 | shallow-clone: 0.1.2 3227 | 3228 | color-convert@1.9.3: 3229 | dependencies: 3230 | color-name: 1.1.3 3231 | 3232 | color-convert@2.0.1: 3233 | dependencies: 3234 | color-name: 1.1.4 3235 | 3236 | color-name@1.1.3: {} 3237 | 3238 | color-name@1.1.4: {} 3239 | 3240 | combined-stream@1.0.8: 3241 | dependencies: 3242 | delayed-stream: 1.0.0 3243 | 3244 | commander@10.0.1: {} 3245 | 3246 | commander@4.1.1: {} 3247 | 3248 | concat-map@0.0.1: {} 3249 | 3250 | consola@3.2.3: {} 3251 | 3252 | cosmiconfig@9.0.0(typescript@5.5.4): 3253 | dependencies: 3254 | env-paths: 2.2.1 3255 | import-fresh: 3.3.0 3256 | js-yaml: 4.1.0 3257 | parse-json: 5.2.0 3258 | optionalDependencies: 3259 | typescript: 5.5.4 3260 | 3261 | cross-spawn@5.1.0: 3262 | dependencies: 3263 | lru-cache: 4.1.5 3264 | shebang-command: 1.2.0 3265 | which: 1.3.1 3266 | 3267 | cross-spawn@7.0.3: 3268 | dependencies: 3269 | path-key: 3.1.1 3270 | shebang-command: 2.0.0 3271 | which: 2.0.2 3272 | 3273 | data-uri-to-buffer@6.0.2: {} 3274 | 3275 | debug@4.3.6: 3276 | dependencies: 3277 | ms: 2.1.2 3278 | 3279 | deep-eql@5.0.2: {} 3280 | 3281 | deep-is@0.1.4: {} 3282 | 3283 | deepmerge@4.3.1: {} 3284 | 3285 | degenerator@5.0.1: 3286 | dependencies: 3287 | ast-types: 0.13.4 3288 | escodegen: 2.1.0 3289 | esprima: 4.0.1 3290 | 3291 | delayed-stream@1.0.0: {} 3292 | 3293 | detect-indent@6.1.0: {} 3294 | 3295 | devtools-protocol@0.0.1330662: {} 3296 | 3297 | dir-glob@3.0.1: 3298 | dependencies: 3299 | path-type: 4.0.0 3300 | 3301 | doctrine@3.0.0: 3302 | dependencies: 3303 | esutils: 2.0.3 3304 | 3305 | eastasianwidth@0.2.0: {} 3306 | 3307 | emoji-regex@8.0.0: {} 3308 | 3309 | emoji-regex@9.2.2: {} 3310 | 3311 | emojilib@2.4.0: {} 3312 | 3313 | end-of-stream@1.4.4: 3314 | dependencies: 3315 | once: 1.4.0 3316 | 3317 | enquirer@2.4.1: 3318 | dependencies: 3319 | ansi-colors: 4.1.3 3320 | strip-ansi: 6.0.1 3321 | 3322 | env-paths@2.2.1: {} 3323 | 3324 | environment@1.1.0: {} 3325 | 3326 | error-ex@1.3.2: 3327 | dependencies: 3328 | is-arrayish: 0.2.1 3329 | 3330 | esbuild@0.21.5: 3331 | optionalDependencies: 3332 | '@esbuild/aix-ppc64': 0.21.5 3333 | '@esbuild/android-arm': 0.21.5 3334 | '@esbuild/android-arm64': 0.21.5 3335 | '@esbuild/android-x64': 0.21.5 3336 | '@esbuild/darwin-arm64': 0.21.5 3337 | '@esbuild/darwin-x64': 0.21.5 3338 | '@esbuild/freebsd-arm64': 0.21.5 3339 | '@esbuild/freebsd-x64': 0.21.5 3340 | '@esbuild/linux-arm': 0.21.5 3341 | '@esbuild/linux-arm64': 0.21.5 3342 | '@esbuild/linux-ia32': 0.21.5 3343 | '@esbuild/linux-loong64': 0.21.5 3344 | '@esbuild/linux-mips64el': 0.21.5 3345 | '@esbuild/linux-ppc64': 0.21.5 3346 | '@esbuild/linux-riscv64': 0.21.5 3347 | '@esbuild/linux-s390x': 0.21.5 3348 | '@esbuild/linux-x64': 0.21.5 3349 | '@esbuild/netbsd-x64': 0.21.5 3350 | '@esbuild/openbsd-x64': 0.21.5 3351 | '@esbuild/sunos-x64': 0.21.5 3352 | '@esbuild/win32-arm64': 0.21.5 3353 | '@esbuild/win32-ia32': 0.21.5 3354 | '@esbuild/win32-x64': 0.21.5 3355 | 3356 | esbuild@0.23.1: 3357 | optionalDependencies: 3358 | '@esbuild/aix-ppc64': 0.23.1 3359 | '@esbuild/android-arm': 0.23.1 3360 | '@esbuild/android-arm64': 0.23.1 3361 | '@esbuild/android-x64': 0.23.1 3362 | '@esbuild/darwin-arm64': 0.23.1 3363 | '@esbuild/darwin-x64': 0.23.1 3364 | '@esbuild/freebsd-arm64': 0.23.1 3365 | '@esbuild/freebsd-x64': 0.23.1 3366 | '@esbuild/linux-arm': 0.23.1 3367 | '@esbuild/linux-arm64': 0.23.1 3368 | '@esbuild/linux-ia32': 0.23.1 3369 | '@esbuild/linux-loong64': 0.23.1 3370 | '@esbuild/linux-mips64el': 0.23.1 3371 | '@esbuild/linux-ppc64': 0.23.1 3372 | '@esbuild/linux-riscv64': 0.23.1 3373 | '@esbuild/linux-s390x': 0.23.1 3374 | '@esbuild/linux-x64': 0.23.1 3375 | '@esbuild/netbsd-x64': 0.23.1 3376 | '@esbuild/openbsd-arm64': 0.23.1 3377 | '@esbuild/openbsd-x64': 0.23.1 3378 | '@esbuild/sunos-x64': 0.23.1 3379 | '@esbuild/win32-arm64': 0.23.1 3380 | '@esbuild/win32-ia32': 0.23.1 3381 | '@esbuild/win32-x64': 0.23.1 3382 | 3383 | escalade@3.2.0: {} 3384 | 3385 | escape-string-regexp@1.0.5: {} 3386 | 3387 | escape-string-regexp@4.0.0: {} 3388 | 3389 | escodegen@2.1.0: 3390 | dependencies: 3391 | esprima: 4.0.1 3392 | estraverse: 5.3.0 3393 | esutils: 2.0.3 3394 | optionalDependencies: 3395 | source-map: 0.6.1 3396 | 3397 | eslint-config-prettier@9.1.0(eslint@8.57.0): 3398 | dependencies: 3399 | eslint: 8.57.0 3400 | 3401 | eslint-scope@7.2.2: 3402 | dependencies: 3403 | esrecurse: 4.3.0 3404 | estraverse: 5.3.0 3405 | 3406 | eslint-visitor-keys@3.4.3: {} 3407 | 3408 | eslint@8.57.0: 3409 | dependencies: 3410 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) 3411 | '@eslint-community/regexpp': 4.11.0 3412 | '@eslint/eslintrc': 2.1.4 3413 | '@eslint/js': 8.57.0 3414 | '@humanwhocodes/config-array': 0.11.14 3415 | '@humanwhocodes/module-importer': 1.0.1 3416 | '@nodelib/fs.walk': 1.2.8 3417 | '@ungap/structured-clone': 1.2.0 3418 | ajv: 6.12.6 3419 | chalk: 4.1.2 3420 | cross-spawn: 7.0.3 3421 | debug: 4.3.6 3422 | doctrine: 3.0.0 3423 | escape-string-regexp: 4.0.0 3424 | eslint-scope: 7.2.2 3425 | eslint-visitor-keys: 3.4.3 3426 | espree: 9.6.1 3427 | esquery: 1.6.0 3428 | esutils: 2.0.3 3429 | fast-deep-equal: 3.1.3 3430 | file-entry-cache: 6.0.1 3431 | find-up: 5.0.0 3432 | glob-parent: 6.0.2 3433 | globals: 13.24.0 3434 | graphemer: 1.4.0 3435 | ignore: 5.3.2 3436 | imurmurhash: 0.1.4 3437 | is-glob: 4.0.3 3438 | is-path-inside: 3.0.3 3439 | js-yaml: 4.1.0 3440 | json-stable-stringify-without-jsonify: 1.0.1 3441 | levn: 0.4.1 3442 | lodash.merge: 4.6.2 3443 | minimatch: 3.1.2 3444 | natural-compare: 1.4.0 3445 | optionator: 0.9.4 3446 | strip-ansi: 6.0.1 3447 | text-table: 0.2.0 3448 | transitivePeerDependencies: 3449 | - supports-color 3450 | 3451 | espree@9.6.1: 3452 | dependencies: 3453 | acorn: 8.12.1 3454 | acorn-jsx: 5.3.2(acorn@8.12.1) 3455 | eslint-visitor-keys: 3.4.3 3456 | 3457 | esprima@4.0.1: {} 3458 | 3459 | esquery@1.6.0: 3460 | dependencies: 3461 | estraverse: 5.3.0 3462 | 3463 | esrecurse@4.3.0: 3464 | dependencies: 3465 | estraverse: 5.3.0 3466 | 3467 | estraverse@5.3.0: {} 3468 | 3469 | estree-walker@3.0.3: 3470 | dependencies: 3471 | '@types/estree': 1.0.5 3472 | 3473 | esutils@2.0.3: {} 3474 | 3475 | execa@5.1.1: 3476 | dependencies: 3477 | cross-spawn: 7.0.3 3478 | get-stream: 6.0.1 3479 | human-signals: 2.1.0 3480 | is-stream: 2.0.1 3481 | merge-stream: 2.0.0 3482 | npm-run-path: 4.0.1 3483 | onetime: 5.1.2 3484 | signal-exit: 3.0.7 3485 | strip-final-newline: 2.0.0 3486 | 3487 | extendable-error@0.1.7: {} 3488 | 3489 | external-editor@3.1.0: 3490 | dependencies: 3491 | chardet: 0.7.0 3492 | iconv-lite: 0.4.24 3493 | tmp: 0.0.33 3494 | 3495 | extract-zip@2.0.1: 3496 | dependencies: 3497 | debug: 4.3.6 3498 | get-stream: 5.2.0 3499 | yauzl: 2.10.0 3500 | optionalDependencies: 3501 | '@types/yauzl': 2.10.3 3502 | transitivePeerDependencies: 3503 | - supports-color 3504 | 3505 | fast-deep-equal@3.1.3: {} 3506 | 3507 | fast-fifo@1.3.2: {} 3508 | 3509 | fast-glob@3.3.2: 3510 | dependencies: 3511 | '@nodelib/fs.stat': 2.0.5 3512 | '@nodelib/fs.walk': 1.2.8 3513 | glob-parent: 5.1.2 3514 | merge2: 1.4.1 3515 | micromatch: 4.0.8 3516 | 3517 | fast-json-stable-stringify@2.1.0: {} 3518 | 3519 | fast-levenshtein@2.0.6: {} 3520 | 3521 | fastq@1.17.1: 3522 | dependencies: 3523 | reusify: 1.0.4 3524 | 3525 | fd-slicer@1.1.0: 3526 | dependencies: 3527 | pend: 1.2.0 3528 | 3529 | fflate@0.8.2: {} 3530 | 3531 | file-entry-cache@6.0.1: 3532 | dependencies: 3533 | flat-cache: 3.2.0 3534 | 3535 | fill-range@7.1.1: 3536 | dependencies: 3537 | to-regex-range: 5.0.1 3538 | 3539 | find-up@4.1.0: 3540 | dependencies: 3541 | locate-path: 5.0.0 3542 | path-exists: 4.0.0 3543 | 3544 | find-up@5.0.0: 3545 | dependencies: 3546 | locate-path: 6.0.0 3547 | path-exists: 4.0.0 3548 | 3549 | flat-cache@3.2.0: 3550 | dependencies: 3551 | flatted: 3.3.1 3552 | keyv: 4.5.4 3553 | rimraf: 3.0.2 3554 | 3555 | flatted@3.3.1: {} 3556 | 3557 | follow-redirects@1.15.9: {} 3558 | 3559 | for-in@0.1.8: {} 3560 | 3561 | for-in@1.0.2: {} 3562 | 3563 | for-own@0.1.5: 3564 | dependencies: 3565 | for-in: 1.0.2 3566 | 3567 | foreground-child@3.3.0: 3568 | dependencies: 3569 | cross-spawn: 7.0.3 3570 | signal-exit: 4.1.0 3571 | 3572 | form-data@4.0.0: 3573 | dependencies: 3574 | asynckit: 0.4.0 3575 | combined-stream: 1.0.8 3576 | mime-types: 2.1.35 3577 | 3578 | fs-extra@10.1.0: 3579 | dependencies: 3580 | graceful-fs: 4.2.11 3581 | jsonfile: 6.1.0 3582 | universalify: 2.0.1 3583 | 3584 | fs-extra@11.2.0: 3585 | dependencies: 3586 | graceful-fs: 4.2.11 3587 | jsonfile: 6.1.0 3588 | universalify: 2.0.1 3589 | 3590 | fs-extra@7.0.1: 3591 | dependencies: 3592 | graceful-fs: 4.2.11 3593 | jsonfile: 4.0.0 3594 | universalify: 0.1.2 3595 | 3596 | fs-extra@8.1.0: 3597 | dependencies: 3598 | graceful-fs: 4.2.11 3599 | jsonfile: 4.0.0 3600 | universalify: 0.1.2 3601 | 3602 | fs.realpath@1.0.0: {} 3603 | 3604 | fsevents@2.3.3: 3605 | optional: true 3606 | 3607 | get-caller-file@2.0.5: {} 3608 | 3609 | get-func-name@2.0.2: {} 3610 | 3611 | get-stream@5.2.0: 3612 | dependencies: 3613 | pump: 3.0.0 3614 | 3615 | get-stream@6.0.1: {} 3616 | 3617 | get-tsconfig@4.8.1: 3618 | dependencies: 3619 | resolve-pkg-maps: 1.0.0 3620 | 3621 | get-uri@6.0.3: 3622 | dependencies: 3623 | basic-ftp: 5.0.5 3624 | data-uri-to-buffer: 6.0.2 3625 | debug: 4.3.6 3626 | fs-extra: 11.2.0 3627 | transitivePeerDependencies: 3628 | - supports-color 3629 | 3630 | glob-parent@5.1.2: 3631 | dependencies: 3632 | is-glob: 4.0.3 3633 | 3634 | glob-parent@6.0.2: 3635 | dependencies: 3636 | is-glob: 4.0.3 3637 | 3638 | glob@10.4.5: 3639 | dependencies: 3640 | foreground-child: 3.3.0 3641 | jackspeak: 3.4.3 3642 | minimatch: 9.0.5 3643 | minipass: 7.1.2 3644 | package-json-from-dist: 1.0.0 3645 | path-scurry: 1.11.1 3646 | 3647 | glob@7.2.3: 3648 | dependencies: 3649 | fs.realpath: 1.0.0 3650 | inflight: 1.0.6 3651 | inherits: 2.0.4 3652 | minimatch: 3.1.2 3653 | once: 1.4.0 3654 | path-is-absolute: 1.0.1 3655 | 3656 | globals@13.24.0: 3657 | dependencies: 3658 | type-fest: 0.20.2 3659 | 3660 | globby@11.1.0: 3661 | dependencies: 3662 | array-union: 2.1.0 3663 | dir-glob: 3.0.1 3664 | fast-glob: 3.3.2 3665 | ignore: 5.3.2 3666 | merge2: 1.4.1 3667 | slash: 3.0.0 3668 | 3669 | graceful-fs@4.2.11: {} 3670 | 3671 | graphemer@1.4.0: {} 3672 | 3673 | has-flag@3.0.0: {} 3674 | 3675 | has-flag@4.0.0: {} 3676 | 3677 | highlight.js@10.7.3: {} 3678 | 3679 | http-proxy-agent@7.0.2: 3680 | dependencies: 3681 | agent-base: 7.1.1 3682 | debug: 4.3.6 3683 | transitivePeerDependencies: 3684 | - supports-color 3685 | 3686 | https-proxy-agent@7.0.5: 3687 | dependencies: 3688 | agent-base: 7.1.1 3689 | debug: 4.3.6 3690 | transitivePeerDependencies: 3691 | - supports-color 3692 | 3693 | human-id@1.0.2: {} 3694 | 3695 | human-signals@2.1.0: {} 3696 | 3697 | iconv-lite@0.4.24: 3698 | dependencies: 3699 | safer-buffer: 2.1.2 3700 | 3701 | ieee754@1.2.1: {} 3702 | 3703 | ignore@5.3.2: {} 3704 | 3705 | import-fresh@3.3.0: 3706 | dependencies: 3707 | parent-module: 1.0.1 3708 | resolve-from: 4.0.0 3709 | 3710 | imurmurhash@0.1.4: {} 3711 | 3712 | inflight@1.0.6: 3713 | dependencies: 3714 | once: 1.4.0 3715 | wrappy: 1.0.2 3716 | 3717 | inherits@2.0.4: {} 3718 | 3719 | ip-address@9.0.5: 3720 | dependencies: 3721 | jsbn: 1.1.0 3722 | sprintf-js: 1.1.3 3723 | 3724 | is-arrayish@0.2.1: {} 3725 | 3726 | is-binary-path@2.1.0: 3727 | dependencies: 3728 | binary-extensions: 2.3.0 3729 | 3730 | is-buffer@1.1.6: {} 3731 | 3732 | is-extendable@0.1.1: {} 3733 | 3734 | is-extglob@2.1.1: {} 3735 | 3736 | is-fullwidth-code-point@3.0.0: {} 3737 | 3738 | is-glob@4.0.3: 3739 | dependencies: 3740 | is-extglob: 2.1.1 3741 | 3742 | is-number@7.0.0: {} 3743 | 3744 | is-path-inside@3.0.3: {} 3745 | 3746 | is-plain-object@2.0.4: 3747 | dependencies: 3748 | isobject: 3.0.1 3749 | 3750 | is-stream@2.0.1: {} 3751 | 3752 | is-subdir@1.2.0: 3753 | dependencies: 3754 | better-path-resolve: 1.0.0 3755 | 3756 | is-windows@1.0.2: {} 3757 | 3758 | isexe@2.0.0: {} 3759 | 3760 | isobject@3.0.1: {} 3761 | 3762 | jackspeak@3.4.3: 3763 | dependencies: 3764 | '@isaacs/cliui': 8.0.2 3765 | optionalDependencies: 3766 | '@pkgjs/parseargs': 0.11.0 3767 | 3768 | joycon@3.1.1: {} 3769 | 3770 | js-tokens@4.0.0: {} 3771 | 3772 | js-yaml@3.14.1: 3773 | dependencies: 3774 | argparse: 1.0.10 3775 | esprima: 4.0.1 3776 | 3777 | js-yaml@4.1.0: 3778 | dependencies: 3779 | argparse: 2.0.1 3780 | 3781 | jsbn@1.1.0: {} 3782 | 3783 | json-buffer@3.0.1: {} 3784 | 3785 | json-parse-even-better-errors@2.3.1: {} 3786 | 3787 | json-schema-traverse@0.4.1: {} 3788 | 3789 | json-stable-stringify-without-jsonify@1.0.1: {} 3790 | 3791 | jsonfile@4.0.0: 3792 | optionalDependencies: 3793 | graceful-fs: 4.2.11 3794 | 3795 | jsonfile@6.1.0: 3796 | dependencies: 3797 | universalify: 2.0.1 3798 | optionalDependencies: 3799 | graceful-fs: 4.2.11 3800 | 3801 | keyv@4.5.4: 3802 | dependencies: 3803 | json-buffer: 3.0.1 3804 | 3805 | kind-of@2.0.1: 3806 | dependencies: 3807 | is-buffer: 1.1.6 3808 | 3809 | kind-of@3.2.2: 3810 | dependencies: 3811 | is-buffer: 1.1.6 3812 | 3813 | lazy-cache@0.2.7: {} 3814 | 3815 | lazy-cache@1.0.4: {} 3816 | 3817 | levn@0.4.1: 3818 | dependencies: 3819 | prelude-ls: 1.2.1 3820 | type-check: 0.4.0 3821 | 3822 | lilconfig@3.1.2: {} 3823 | 3824 | lines-and-columns@1.2.4: {} 3825 | 3826 | load-tsconfig@0.2.5: {} 3827 | 3828 | locate-path@5.0.0: 3829 | dependencies: 3830 | p-locate: 4.1.0 3831 | 3832 | locate-path@6.0.0: 3833 | dependencies: 3834 | p-locate: 5.0.0 3835 | 3836 | lodash.merge@4.6.2: {} 3837 | 3838 | lodash.sortby@4.7.0: {} 3839 | 3840 | lodash.startcase@4.4.0: {} 3841 | 3842 | loupe@3.1.1: 3843 | dependencies: 3844 | get-func-name: 2.0.2 3845 | 3846 | lru-cache@10.4.3: {} 3847 | 3848 | lru-cache@4.1.5: 3849 | dependencies: 3850 | pseudomap: 1.0.2 3851 | yallist: 2.1.2 3852 | 3853 | lru-cache@7.18.3: {} 3854 | 3855 | magic-string@0.30.11: 3856 | dependencies: 3857 | '@jridgewell/sourcemap-codec': 1.5.0 3858 | 3859 | marked-terminal@7.1.0(marked@9.1.6): 3860 | dependencies: 3861 | ansi-escapes: 7.0.0 3862 | chalk: 5.3.0 3863 | cli-highlight: 2.1.11 3864 | cli-table3: 0.6.5 3865 | marked: 9.1.6 3866 | node-emoji: 2.1.3 3867 | supports-hyperlinks: 3.1.0 3868 | 3869 | marked@9.1.6: {} 3870 | 3871 | merge-deep@3.0.3: 3872 | dependencies: 3873 | arr-union: 3.1.0 3874 | clone-deep: 0.2.4 3875 | kind-of: 3.2.2 3876 | 3877 | merge-stream@2.0.0: {} 3878 | 3879 | merge2@1.4.1: {} 3880 | 3881 | micromatch@4.0.8: 3882 | dependencies: 3883 | braces: 3.0.3 3884 | picomatch: 2.3.1 3885 | 3886 | mime-db@1.52.0: {} 3887 | 3888 | mime-types@2.1.35: 3889 | dependencies: 3890 | mime-db: 1.52.0 3891 | 3892 | mimic-fn@2.1.0: {} 3893 | 3894 | minimatch@3.1.2: 3895 | dependencies: 3896 | brace-expansion: 1.1.11 3897 | 3898 | minimatch@9.0.5: 3899 | dependencies: 3900 | brace-expansion: 2.0.1 3901 | 3902 | minipass@7.1.2: {} 3903 | 3904 | mitt@3.0.1: {} 3905 | 3906 | mixin-object@2.0.1: 3907 | dependencies: 3908 | for-in: 0.1.8 3909 | is-extendable: 0.1.1 3910 | 3911 | mri@1.2.0: {} 3912 | 3913 | ms@2.1.2: {} 3914 | 3915 | mz@2.7.0: 3916 | dependencies: 3917 | any-promise: 1.3.0 3918 | object-assign: 4.1.1 3919 | thenify-all: 1.6.0 3920 | 3921 | nanoid@3.3.7: {} 3922 | 3923 | natural-compare@1.4.0: {} 3924 | 3925 | netmask@2.0.2: {} 3926 | 3927 | node-emoji@2.1.3: 3928 | dependencies: 3929 | '@sindresorhus/is': 4.6.0 3930 | char-regex: 1.0.2 3931 | emojilib: 2.4.0 3932 | skin-tone: 2.0.0 3933 | 3934 | normalize-path@3.0.0: {} 3935 | 3936 | npm-run-path@4.0.1: 3937 | dependencies: 3938 | path-key: 3.1.1 3939 | 3940 | object-assign@4.1.1: {} 3941 | 3942 | once@1.4.0: 3943 | dependencies: 3944 | wrappy: 1.0.2 3945 | 3946 | onetime@5.1.2: 3947 | dependencies: 3948 | mimic-fn: 2.1.0 3949 | 3950 | optionator@0.9.4: 3951 | dependencies: 3952 | deep-is: 0.1.4 3953 | fast-levenshtein: 2.0.6 3954 | levn: 0.4.1 3955 | prelude-ls: 1.2.1 3956 | type-check: 0.4.0 3957 | word-wrap: 1.2.5 3958 | 3959 | os-tmpdir@1.0.2: {} 3960 | 3961 | otplib@12.0.1: 3962 | dependencies: 3963 | '@otplib/core': 12.0.1 3964 | '@otplib/preset-default': 12.0.1 3965 | '@otplib/preset-v11': 12.0.1 3966 | 3967 | outdent@0.5.0: {} 3968 | 3969 | p-filter@2.1.0: 3970 | dependencies: 3971 | p-map: 2.1.0 3972 | 3973 | p-limit@2.3.0: 3974 | dependencies: 3975 | p-try: 2.2.0 3976 | 3977 | p-limit@3.1.0: 3978 | dependencies: 3979 | yocto-queue: 0.1.0 3980 | 3981 | p-locate@4.1.0: 3982 | dependencies: 3983 | p-limit: 2.3.0 3984 | 3985 | p-locate@5.0.0: 3986 | dependencies: 3987 | p-limit: 3.1.0 3988 | 3989 | p-map@2.1.0: {} 3990 | 3991 | p-try@2.2.0: {} 3992 | 3993 | pac-proxy-agent@7.0.2: 3994 | dependencies: 3995 | '@tootallnate/quickjs-emscripten': 0.23.0 3996 | agent-base: 7.1.1 3997 | debug: 4.3.6 3998 | get-uri: 6.0.3 3999 | http-proxy-agent: 7.0.2 4000 | https-proxy-agent: 7.0.5 4001 | pac-resolver: 7.0.1 4002 | socks-proxy-agent: 8.0.4 4003 | transitivePeerDependencies: 4004 | - supports-color 4005 | 4006 | pac-resolver@7.0.1: 4007 | dependencies: 4008 | degenerator: 5.0.1 4009 | netmask: 2.0.2 4010 | 4011 | package-json-from-dist@1.0.0: {} 4012 | 4013 | package-manager-detector@0.2.0: {} 4014 | 4015 | parent-module@1.0.1: 4016 | dependencies: 4017 | callsites: 3.1.0 4018 | 4019 | parse-json@5.2.0: 4020 | dependencies: 4021 | '@babel/code-frame': 7.24.7 4022 | error-ex: 1.3.2 4023 | json-parse-even-better-errors: 2.3.1 4024 | lines-and-columns: 1.2.4 4025 | 4026 | parse5-htmlparser2-tree-adapter@6.0.1: 4027 | dependencies: 4028 | parse5: 6.0.1 4029 | 4030 | parse5@5.1.1: {} 4031 | 4032 | parse5@6.0.1: {} 4033 | 4034 | path-exists@4.0.0: {} 4035 | 4036 | path-is-absolute@1.0.1: {} 4037 | 4038 | path-key@3.1.1: {} 4039 | 4040 | path-scurry@1.11.1: 4041 | dependencies: 4042 | lru-cache: 10.4.3 4043 | minipass: 7.1.2 4044 | 4045 | path-type@4.0.0: {} 4046 | 4047 | pathe@1.1.2: {} 4048 | 4049 | pathval@2.0.0: {} 4050 | 4051 | pend@1.2.0: {} 4052 | 4053 | picocolors@1.1.0: {} 4054 | 4055 | picomatch@2.3.1: {} 4056 | 4057 | pify@4.0.1: {} 4058 | 4059 | pirates@4.0.6: {} 4060 | 4061 | postcss-load-config@6.0.1(postcss@8.4.45)(tsx@4.19.1): 4062 | dependencies: 4063 | lilconfig: 3.1.2 4064 | optionalDependencies: 4065 | postcss: 8.4.45 4066 | tsx: 4.19.1 4067 | 4068 | postcss@8.4.45: 4069 | dependencies: 4070 | nanoid: 3.3.7 4071 | picocolors: 1.1.0 4072 | source-map-js: 1.2.0 4073 | 4074 | prelude-ls@1.2.1: {} 4075 | 4076 | prettier@2.8.8: {} 4077 | 4078 | prettier@3.3.3: {} 4079 | 4080 | progress@2.0.3: {} 4081 | 4082 | proxy-agent@6.4.0: 4083 | dependencies: 4084 | agent-base: 7.1.1 4085 | debug: 4.3.6 4086 | http-proxy-agent: 7.0.2 4087 | https-proxy-agent: 7.0.5 4088 | lru-cache: 7.18.3 4089 | pac-proxy-agent: 7.0.2 4090 | proxy-from-env: 1.1.0 4091 | socks-proxy-agent: 8.0.4 4092 | transitivePeerDependencies: 4093 | - supports-color 4094 | 4095 | proxy-from-env@1.1.0: {} 4096 | 4097 | pseudomap@1.0.2: {} 4098 | 4099 | pump@3.0.0: 4100 | dependencies: 4101 | end-of-stream: 1.4.4 4102 | once: 1.4.0 4103 | 4104 | punycode@2.3.1: {} 4105 | 4106 | puppeteer-core@23.3.0: 4107 | dependencies: 4108 | '@puppeteer/browsers': 2.4.0 4109 | chromium-bidi: 0.6.5(devtools-protocol@0.0.1330662) 4110 | debug: 4.3.6 4111 | devtools-protocol: 0.0.1330662 4112 | typed-query-selector: 2.12.0 4113 | ws: 8.18.0 4114 | transitivePeerDependencies: 4115 | - bufferutil 4116 | - supports-color 4117 | - utf-8-validate 4118 | 4119 | puppeteer-extra-plugin-stealth@2.11.2(puppeteer-extra@3.3.6(puppeteer-core@23.3.0)(puppeteer@23.3.0(typescript@5.5.4))): 4120 | dependencies: 4121 | debug: 4.3.6 4122 | puppeteer-extra-plugin: 3.2.3(puppeteer-extra@3.3.6(puppeteer-core@23.3.0)(puppeteer@23.3.0(typescript@5.5.4))) 4123 | puppeteer-extra-plugin-user-preferences: 2.4.1(puppeteer-extra@3.3.6(puppeteer-core@23.3.0)(puppeteer@23.3.0(typescript@5.5.4))) 4124 | optionalDependencies: 4125 | puppeteer-extra: 3.3.6(puppeteer-core@23.3.0)(puppeteer@23.3.0(typescript@5.5.4)) 4126 | transitivePeerDependencies: 4127 | - supports-color 4128 | 4129 | puppeteer-extra-plugin-user-data-dir@2.4.1(puppeteer-extra@3.3.6(puppeteer-core@23.3.0)(puppeteer@23.3.0(typescript@5.5.4))): 4130 | dependencies: 4131 | debug: 4.3.6 4132 | fs-extra: 10.1.0 4133 | puppeteer-extra-plugin: 3.2.3(puppeteer-extra@3.3.6(puppeteer-core@23.3.0)(puppeteer@23.3.0(typescript@5.5.4))) 4134 | rimraf: 3.0.2 4135 | optionalDependencies: 4136 | puppeteer-extra: 3.3.6(puppeteer-core@23.3.0)(puppeteer@23.3.0(typescript@5.5.4)) 4137 | transitivePeerDependencies: 4138 | - supports-color 4139 | 4140 | puppeteer-extra-plugin-user-preferences@2.4.1(puppeteer-extra@3.3.6(puppeteer-core@23.3.0)(puppeteer@23.3.0(typescript@5.5.4))): 4141 | dependencies: 4142 | debug: 4.3.6 4143 | deepmerge: 4.3.1 4144 | puppeteer-extra-plugin: 3.2.3(puppeteer-extra@3.3.6(puppeteer-core@23.3.0)(puppeteer@23.3.0(typescript@5.5.4))) 4145 | puppeteer-extra-plugin-user-data-dir: 2.4.1(puppeteer-extra@3.3.6(puppeteer-core@23.3.0)(puppeteer@23.3.0(typescript@5.5.4))) 4146 | optionalDependencies: 4147 | puppeteer-extra: 3.3.6(puppeteer-core@23.3.0)(puppeteer@23.3.0(typescript@5.5.4)) 4148 | transitivePeerDependencies: 4149 | - supports-color 4150 | 4151 | puppeteer-extra-plugin@3.2.3(puppeteer-extra@3.3.6(puppeteer-core@23.3.0)(puppeteer@23.3.0(typescript@5.5.4))): 4152 | dependencies: 4153 | '@types/debug': 4.1.12 4154 | debug: 4.3.6 4155 | merge-deep: 3.0.3 4156 | optionalDependencies: 4157 | puppeteer-extra: 3.3.6(puppeteer-core@23.3.0)(puppeteer@23.3.0(typescript@5.5.4)) 4158 | transitivePeerDependencies: 4159 | - supports-color 4160 | 4161 | puppeteer-extra@3.3.6(puppeteer-core@23.3.0)(puppeteer@23.3.0(typescript@5.5.4)): 4162 | dependencies: 4163 | '@types/debug': 4.1.12 4164 | debug: 4.3.6 4165 | deepmerge: 4.3.1 4166 | optionalDependencies: 4167 | puppeteer: 23.3.0(typescript@5.5.4) 4168 | puppeteer-core: 23.3.0 4169 | transitivePeerDependencies: 4170 | - supports-color 4171 | 4172 | puppeteer@23.3.0(typescript@5.5.4): 4173 | dependencies: 4174 | '@puppeteer/browsers': 2.4.0 4175 | chromium-bidi: 0.6.5(devtools-protocol@0.0.1330662) 4176 | cosmiconfig: 9.0.0(typescript@5.5.4) 4177 | devtools-protocol: 0.0.1330662 4178 | puppeteer-core: 23.3.0 4179 | typed-query-selector: 2.12.0 4180 | transitivePeerDependencies: 4181 | - bufferutil 4182 | - supports-color 4183 | - typescript 4184 | - utf-8-validate 4185 | 4186 | queue-microtask@1.2.3: {} 4187 | 4188 | queue-tick@1.0.1: {} 4189 | 4190 | read-yaml-file@1.1.0: 4191 | dependencies: 4192 | graceful-fs: 4.2.11 4193 | js-yaml: 3.14.1 4194 | pify: 4.0.1 4195 | strip-bom: 3.0.0 4196 | 4197 | readdirp@3.6.0: 4198 | dependencies: 4199 | picomatch: 2.3.1 4200 | 4201 | regenerator-runtime@0.14.1: {} 4202 | 4203 | require-directory@2.1.1: {} 4204 | 4205 | resolve-from@4.0.0: {} 4206 | 4207 | resolve-from@5.0.0: {} 4208 | 4209 | resolve-pkg-maps@1.0.0: {} 4210 | 4211 | reusify@1.0.4: {} 4212 | 4213 | rimraf@3.0.2: 4214 | dependencies: 4215 | glob: 7.2.3 4216 | 4217 | rollup@4.21.2: 4218 | dependencies: 4219 | '@types/estree': 1.0.5 4220 | optionalDependencies: 4221 | '@rollup/rollup-android-arm-eabi': 4.21.2 4222 | '@rollup/rollup-android-arm64': 4.21.2 4223 | '@rollup/rollup-darwin-arm64': 4.21.2 4224 | '@rollup/rollup-darwin-x64': 4.21.2 4225 | '@rollup/rollup-linux-arm-gnueabihf': 4.21.2 4226 | '@rollup/rollup-linux-arm-musleabihf': 4.21.2 4227 | '@rollup/rollup-linux-arm64-gnu': 4.21.2 4228 | '@rollup/rollup-linux-arm64-musl': 4.21.2 4229 | '@rollup/rollup-linux-powerpc64le-gnu': 4.21.2 4230 | '@rollup/rollup-linux-riscv64-gnu': 4.21.2 4231 | '@rollup/rollup-linux-s390x-gnu': 4.21.2 4232 | '@rollup/rollup-linux-x64-gnu': 4.21.2 4233 | '@rollup/rollup-linux-x64-musl': 4.21.2 4234 | '@rollup/rollup-win32-arm64-msvc': 4.21.2 4235 | '@rollup/rollup-win32-ia32-msvc': 4.21.2 4236 | '@rollup/rollup-win32-x64-msvc': 4.21.2 4237 | fsevents: 2.3.3 4238 | 4239 | run-parallel@1.2.0: 4240 | dependencies: 4241 | queue-microtask: 1.2.3 4242 | 4243 | safer-buffer@2.1.2: {} 4244 | 4245 | semver@7.6.3: {} 4246 | 4247 | shallow-clone@0.1.2: 4248 | dependencies: 4249 | is-extendable: 0.1.1 4250 | kind-of: 2.0.1 4251 | lazy-cache: 0.2.7 4252 | mixin-object: 2.0.1 4253 | 4254 | shebang-command@1.2.0: 4255 | dependencies: 4256 | shebang-regex: 1.0.0 4257 | 4258 | shebang-command@2.0.0: 4259 | dependencies: 4260 | shebang-regex: 3.0.0 4261 | 4262 | shebang-regex@1.0.0: {} 4263 | 4264 | shebang-regex@3.0.0: {} 4265 | 4266 | siginfo@2.0.0: {} 4267 | 4268 | signal-exit@3.0.7: {} 4269 | 4270 | signal-exit@4.1.0: {} 4271 | 4272 | skin-tone@2.0.0: 4273 | dependencies: 4274 | unicode-emoji-modifier-base: 1.0.0 4275 | 4276 | slash@3.0.0: {} 4277 | 4278 | smart-buffer@4.2.0: {} 4279 | 4280 | socks-proxy-agent@8.0.4: 4281 | dependencies: 4282 | agent-base: 7.1.1 4283 | debug: 4.3.6 4284 | socks: 2.8.3 4285 | transitivePeerDependencies: 4286 | - supports-color 4287 | 4288 | socks@2.8.3: 4289 | dependencies: 4290 | ip-address: 9.0.5 4291 | smart-buffer: 4.2.0 4292 | 4293 | source-map-js@1.2.0: {} 4294 | 4295 | source-map@0.6.1: 4296 | optional: true 4297 | 4298 | source-map@0.8.0-beta.0: 4299 | dependencies: 4300 | whatwg-url: 7.1.0 4301 | 4302 | spawndamnit@2.0.0: 4303 | dependencies: 4304 | cross-spawn: 5.1.0 4305 | signal-exit: 3.0.7 4306 | 4307 | sprintf-js@1.0.3: {} 4308 | 4309 | sprintf-js@1.1.3: {} 4310 | 4311 | stackback@0.0.2: {} 4312 | 4313 | std-env@3.7.0: {} 4314 | 4315 | streamx@2.20.0: 4316 | dependencies: 4317 | fast-fifo: 1.3.2 4318 | queue-tick: 1.0.1 4319 | text-decoder: 1.1.1 4320 | optionalDependencies: 4321 | bare-events: 2.4.2 4322 | 4323 | string-width@4.2.3: 4324 | dependencies: 4325 | emoji-regex: 8.0.0 4326 | is-fullwidth-code-point: 3.0.0 4327 | strip-ansi: 6.0.1 4328 | 4329 | string-width@5.1.2: 4330 | dependencies: 4331 | eastasianwidth: 0.2.0 4332 | emoji-regex: 9.2.2 4333 | strip-ansi: 7.1.0 4334 | 4335 | strip-ansi@6.0.1: 4336 | dependencies: 4337 | ansi-regex: 5.0.1 4338 | 4339 | strip-ansi@7.1.0: 4340 | dependencies: 4341 | ansi-regex: 6.0.1 4342 | 4343 | strip-bom@3.0.0: {} 4344 | 4345 | strip-final-newline@2.0.0: {} 4346 | 4347 | strip-json-comments@3.1.1: {} 4348 | 4349 | sucrase@3.35.0: 4350 | dependencies: 4351 | '@jridgewell/gen-mapping': 0.3.5 4352 | commander: 4.1.1 4353 | glob: 10.4.5 4354 | lines-and-columns: 1.2.4 4355 | mz: 2.7.0 4356 | pirates: 4.0.6 4357 | ts-interface-checker: 0.1.13 4358 | 4359 | supports-color@5.5.0: 4360 | dependencies: 4361 | has-flag: 3.0.0 4362 | 4363 | supports-color@7.2.0: 4364 | dependencies: 4365 | has-flag: 4.0.0 4366 | 4367 | supports-hyperlinks@3.1.0: 4368 | dependencies: 4369 | has-flag: 4.0.0 4370 | supports-color: 7.2.0 4371 | 4372 | tar-fs@3.0.6: 4373 | dependencies: 4374 | pump: 3.0.0 4375 | tar-stream: 3.1.7 4376 | optionalDependencies: 4377 | bare-fs: 2.3.3 4378 | bare-path: 2.1.3 4379 | 4380 | tar-stream@3.1.7: 4381 | dependencies: 4382 | b4a: 1.6.6 4383 | fast-fifo: 1.3.2 4384 | streamx: 2.20.0 4385 | 4386 | term-size@2.2.1: {} 4387 | 4388 | text-decoder@1.1.1: 4389 | dependencies: 4390 | b4a: 1.6.6 4391 | 4392 | text-table@0.2.0: {} 4393 | 4394 | thenify-all@1.6.0: 4395 | dependencies: 4396 | thenify: 3.3.1 4397 | 4398 | thenify@3.3.1: 4399 | dependencies: 4400 | any-promise: 1.3.0 4401 | 4402 | thirty-two@1.0.2: {} 4403 | 4404 | through@2.3.8: {} 4405 | 4406 | tinybench@2.9.0: {} 4407 | 4408 | tinyexec@0.3.0: {} 4409 | 4410 | tinypool@1.0.1: {} 4411 | 4412 | tinyrainbow@1.2.0: {} 4413 | 4414 | tinyspy@3.0.2: {} 4415 | 4416 | tmp@0.0.33: 4417 | dependencies: 4418 | os-tmpdir: 1.0.2 4419 | 4420 | to-regex-range@5.0.1: 4421 | dependencies: 4422 | is-number: 7.0.0 4423 | 4424 | tr46@1.0.1: 4425 | dependencies: 4426 | punycode: 2.3.1 4427 | 4428 | tree-kill@1.2.2: {} 4429 | 4430 | ts-api-utils@1.3.0(typescript@5.5.4): 4431 | dependencies: 4432 | typescript: 5.5.4 4433 | 4434 | ts-expose-internals-conditionally@1.0.0-empty.0: {} 4435 | 4436 | ts-interface-checker@0.1.13: {} 4437 | 4438 | tslib@2.7.0: {} 4439 | 4440 | tsup@8.2.4(postcss@8.4.45)(tsx@4.19.1)(typescript@5.5.4): 4441 | dependencies: 4442 | bundle-require: 5.0.0(esbuild@0.23.1) 4443 | cac: 6.7.14 4444 | chokidar: 3.6.0 4445 | consola: 3.2.3 4446 | debug: 4.3.6 4447 | esbuild: 0.23.1 4448 | execa: 5.1.1 4449 | globby: 11.1.0 4450 | joycon: 3.1.1 4451 | picocolors: 1.1.0 4452 | postcss-load-config: 6.0.1(postcss@8.4.45)(tsx@4.19.1) 4453 | resolve-from: 5.0.0 4454 | rollup: 4.21.2 4455 | source-map: 0.8.0-beta.0 4456 | sucrase: 3.35.0 4457 | tree-kill: 1.2.2 4458 | optionalDependencies: 4459 | postcss: 8.4.45 4460 | typescript: 5.5.4 4461 | transitivePeerDependencies: 4462 | - jiti 4463 | - supports-color 4464 | - tsx 4465 | - yaml 4466 | 4467 | tsx@4.19.1: 4468 | dependencies: 4469 | esbuild: 0.23.1 4470 | get-tsconfig: 4.8.1 4471 | optionalDependencies: 4472 | fsevents: 2.3.3 4473 | 4474 | type-check@0.4.0: 4475 | dependencies: 4476 | prelude-ls: 1.2.1 4477 | 4478 | type-fest@0.20.2: {} 4479 | 4480 | typed-query-selector@2.12.0: {} 4481 | 4482 | typescript@5.3.3: {} 4483 | 4484 | typescript@5.5.4: {} 4485 | 4486 | unbzip2-stream@1.4.3: 4487 | dependencies: 4488 | buffer: 5.7.1 4489 | through: 2.3.8 4490 | 4491 | undici-types@6.19.8: {} 4492 | 4493 | unicode-emoji-modifier-base@1.0.0: {} 4494 | 4495 | universalify@0.1.2: {} 4496 | 4497 | universalify@2.0.1: {} 4498 | 4499 | uri-js@4.4.1: 4500 | dependencies: 4501 | punycode: 2.3.1 4502 | 4503 | urlpattern-polyfill@10.0.0: {} 4504 | 4505 | validate-npm-package-name@5.0.1: {} 4506 | 4507 | vite-node@2.1.1(@types/node@22.5.5): 4508 | dependencies: 4509 | cac: 6.7.14 4510 | debug: 4.3.6 4511 | pathe: 1.1.2 4512 | vite: 5.4.5(@types/node@22.5.5) 4513 | transitivePeerDependencies: 4514 | - '@types/node' 4515 | - less 4516 | - lightningcss 4517 | - sass 4518 | - sass-embedded 4519 | - stylus 4520 | - sugarss 4521 | - supports-color 4522 | - terser 4523 | 4524 | vite@5.4.5(@types/node@22.5.5): 4525 | dependencies: 4526 | esbuild: 0.21.5 4527 | postcss: 8.4.45 4528 | rollup: 4.21.2 4529 | optionalDependencies: 4530 | '@types/node': 22.5.5 4531 | fsevents: 2.3.3 4532 | 4533 | vitest@2.1.1(@types/node@22.5.5): 4534 | dependencies: 4535 | '@vitest/expect': 2.1.1 4536 | '@vitest/mocker': 2.1.1(@vitest/spy@2.1.1)(vite@5.4.5(@types/node@22.5.5)) 4537 | '@vitest/pretty-format': 2.1.1 4538 | '@vitest/runner': 2.1.1 4539 | '@vitest/snapshot': 2.1.1 4540 | '@vitest/spy': 2.1.1 4541 | '@vitest/utils': 2.1.1 4542 | chai: 5.1.1 4543 | debug: 4.3.6 4544 | magic-string: 0.30.11 4545 | pathe: 1.1.2 4546 | std-env: 3.7.0 4547 | tinybench: 2.9.0 4548 | tinyexec: 0.3.0 4549 | tinypool: 1.0.1 4550 | tinyrainbow: 1.2.0 4551 | vite: 5.4.5(@types/node@22.5.5) 4552 | vite-node: 2.1.1(@types/node@22.5.5) 4553 | why-is-node-running: 2.3.0 4554 | optionalDependencies: 4555 | '@types/node': 22.5.5 4556 | transitivePeerDependencies: 4557 | - less 4558 | - lightningcss 4559 | - msw 4560 | - sass 4561 | - sass-embedded 4562 | - stylus 4563 | - sugarss 4564 | - supports-color 4565 | - terser 4566 | 4567 | webidl-conversions@4.0.2: {} 4568 | 4569 | whatwg-url@7.1.0: 4570 | dependencies: 4571 | lodash.sortby: 4.7.0 4572 | tr46: 1.0.1 4573 | webidl-conversions: 4.0.2 4574 | 4575 | which@1.3.1: 4576 | dependencies: 4577 | isexe: 2.0.0 4578 | 4579 | which@2.0.2: 4580 | dependencies: 4581 | isexe: 2.0.0 4582 | 4583 | why-is-node-running@2.3.0: 4584 | dependencies: 4585 | siginfo: 2.0.0 4586 | stackback: 0.0.2 4587 | 4588 | word-wrap@1.2.5: {} 4589 | 4590 | wrap-ansi@7.0.0: 4591 | dependencies: 4592 | ansi-styles: 4.3.0 4593 | string-width: 4.2.3 4594 | strip-ansi: 6.0.1 4595 | 4596 | wrap-ansi@8.1.0: 4597 | dependencies: 4598 | ansi-styles: 6.2.1 4599 | string-width: 5.1.2 4600 | strip-ansi: 7.1.0 4601 | 4602 | wrappy@1.0.2: {} 4603 | 4604 | ws@8.18.0: {} 4605 | 4606 | y18n@5.0.8: {} 4607 | 4608 | yallist@2.1.2: {} 4609 | 4610 | yargs-parser@20.2.9: {} 4611 | 4612 | yargs-parser@21.1.1: {} 4613 | 4614 | yargs@16.2.0: 4615 | dependencies: 4616 | cliui: 7.0.4 4617 | escalade: 3.2.0 4618 | get-caller-file: 2.0.5 4619 | require-directory: 2.1.1 4620 | string-width: 4.2.3 4621 | y18n: 5.0.8 4622 | yargs-parser: 20.2.9 4623 | 4624 | yargs@17.7.2: 4625 | dependencies: 4626 | cliui: 8.0.1 4627 | escalade: 3.2.0 4628 | get-caller-file: 2.0.5 4629 | require-directory: 2.1.1 4630 | string-width: 4.2.3 4631 | y18n: 5.0.8 4632 | yargs-parser: 21.1.1 4633 | 4634 | yauzl@2.10.0: 4635 | dependencies: 4636 | buffer-crc32: 0.2.13 4637 | fd-slicer: 1.1.0 4638 | 4639 | yocto-queue@0.1.0: {} 4640 | 4641 | zod@3.23.8: {} 4642 | -------------------------------------------------------------------------------- /src/client/client.ts: -------------------------------------------------------------------------------- 1 | import WebSocket from "ws"; 2 | import EventEmitter from "events"; 3 | import { authentication, getChannelData, getVideoData } from "../core/kickApi"; 4 | import { createWebSocket } from "../core/websocket"; 5 | import { parseMessage } from "../core/messageHandling"; 6 | import type { KickChannelInfo } from "../types/channels"; 7 | import type { VideoInfo } from "../types/video"; 8 | import type { 9 | KickClient, 10 | ClientOptions, 11 | AuthenticationSettings, 12 | Poll, 13 | Leaderboard, 14 | LoginOptions, 15 | } from "../types/client"; 16 | import type { MessageData } from "../types/events"; 17 | import { validateCredentials } from "../utils/utils"; 18 | 19 | import { createHeaders, makeRequest } from "../core/requestHelper"; 20 | 21 | export const createClient = ( 22 | channelName: string, 23 | options: ClientOptions = {}, 24 | ): KickClient => { 25 | const emitter = new EventEmitter(); 26 | let socket: WebSocket | null = null; 27 | let channelInfo: KickChannelInfo | null = null; 28 | let videoInfo: VideoInfo | null = null; 29 | 30 | let clientToken: string | null = null; 31 | let clientCookies: string | null = null; 32 | let clientBearerToken: string | null = null; 33 | let isLoggedIn = false; 34 | 35 | const defaultOptions: ClientOptions = { 36 | plainEmote: true, 37 | logger: false, 38 | readOnly: false, 39 | }; 40 | 41 | const mergedOptions = { ...defaultOptions, ...options }; 42 | 43 | const checkAuth = () => { 44 | if (!isLoggedIn) { 45 | throw new Error("Authentication required. Please login first."); 46 | } 47 | if (!clientBearerToken) { 48 | throw new Error("Missing bearer token"); 49 | } 50 | 51 | if (!clientCookies) { 52 | throw new Error("Missing cookies"); 53 | } 54 | }; 55 | 56 | const login = async (options: LoginOptions) => { 57 | const { type, credentials } = options; 58 | 59 | try { 60 | switch (type) { 61 | case "login": 62 | if (!credentials) { 63 | throw new Error("Credentials are required for login"); 64 | } 65 | validateCredentials(options); 66 | 67 | if (mergedOptions.logger) { 68 | console.log("Starting authentication process with login ..."); 69 | } 70 | 71 | const { bearerToken, xsrfToken, cookies, isAuthenticated } = 72 | await authentication({ 73 | username: credentials.username, 74 | password: credentials.password, 75 | otp_secret: credentials.otp_secret, 76 | }); 77 | 78 | if (mergedOptions.logger) { 79 | console.log("Authentication tokens received, validating..."); 80 | } 81 | 82 | clientBearerToken = bearerToken; 83 | clientToken = xsrfToken; 84 | clientCookies = cookies; 85 | isLoggedIn = isAuthenticated; 86 | 87 | if (!isAuthenticated) { 88 | throw new Error("Authentication failed"); 89 | } 90 | 91 | if (mergedOptions.logger) { 92 | console.log("Authentication successful, initializing client..."); 93 | } 94 | 95 | await initialize(); 96 | break; 97 | 98 | case "tokens": 99 | if (!credentials) { 100 | throw new Error("Tokens are required for login"); 101 | } 102 | 103 | if (mergedOptions.logger) { 104 | console.log("Starting authentication process with tokens ..."); 105 | } 106 | 107 | clientBearerToken = credentials.bearerToken; 108 | clientToken = credentials.xsrfToken; 109 | clientCookies = credentials.cookies; 110 | 111 | isLoggedIn = true; 112 | 113 | await initialize(); 114 | break; 115 | default: 116 | throw new Error("Invalid authentication type"); 117 | } 118 | 119 | return true; 120 | } catch (error) { 121 | console.error("Login failed:", error); 122 | throw error; 123 | } 124 | }; 125 | 126 | const initialize = async () => { 127 | try { 128 | if (mergedOptions.readOnly === false && !isLoggedIn) { 129 | throw new Error("Authentication required. Please login first."); 130 | } 131 | 132 | if (mergedOptions.logger) { 133 | console.log(`Fetching channel data for: ${channelName}`); 134 | } 135 | 136 | channelInfo = await getChannelData(channelName); 137 | if (!channelInfo) { 138 | throw new Error("Unable to fetch channel data"); 139 | } 140 | 141 | if (mergedOptions.logger) { 142 | console.log( 143 | "Channel data received, establishing WebSocket connection...", 144 | ); 145 | } 146 | 147 | socket = createWebSocket(channelInfo.chatroom.id); 148 | 149 | socket.on("open", () => { 150 | if (mergedOptions.logger) { 151 | console.log(`Connected to channel: ${channelName}`); 152 | } 153 | emitter.emit("ready", getUser()); 154 | }); 155 | 156 | socket.on("message", (data: WebSocket.Data) => { 157 | const parsedMessage = parseMessage(data.toString()); 158 | if (parsedMessage) { 159 | switch (parsedMessage.type) { 160 | case "ChatMessage": 161 | if (mergedOptions.plainEmote) { 162 | const messageData = parsedMessage.data as MessageData; 163 | messageData.content = messageData.content.replace( 164 | /\[emote:(\d+):(\w+)\]/g, 165 | (_, __, emoteName) => emoteName, 166 | ); 167 | } 168 | break; 169 | case "Subscription": 170 | break; 171 | case "GiftedSubscriptions": 172 | break; 173 | case "StreamHostEvent": 174 | break; 175 | case "UserBannedEvent": 176 | break; 177 | case "UserUnbannedEvent": 178 | break; 179 | case "PinnedMessageCreatedEvent": 180 | break; 181 | } 182 | emitter.emit(parsedMessage.type, parsedMessage.data); 183 | } 184 | }); 185 | 186 | socket.on("close", () => { 187 | if (mergedOptions.logger) { 188 | console.log(`Disconnected from channel: ${channelName}`); 189 | } 190 | emitter.emit("disconnect"); 191 | }); 192 | 193 | socket.on("error", (error) => { 194 | console.error("WebSocket error:", error); 195 | emitter.emit("error", error); 196 | }); 197 | } catch (error) { 198 | console.error("Error during initialization:", error); 199 | throw error; 200 | } 201 | }; 202 | 203 | if (mergedOptions.readOnly === true) { 204 | void initialize(); 205 | } 206 | 207 | const on = (event: string, listener: (...args: any[]) => void) => { 208 | emitter.on(event, listener); 209 | }; 210 | 211 | const getUser = () => 212 | channelInfo 213 | ? { 214 | id: channelInfo.id, 215 | username: channelInfo.slug, 216 | tag: channelInfo.user.username, 217 | } 218 | : null; 219 | 220 | const vod = async (video_id: string) => { 221 | videoInfo = await getVideoData(video_id); 222 | 223 | if (!videoInfo) { 224 | throw new Error("Unable to fetch video data"); 225 | } 226 | 227 | return { 228 | id: videoInfo.id, 229 | title: videoInfo.livestream.session_title, 230 | thumbnail: videoInfo.livestream.thumbnail, 231 | duration: videoInfo.livestream.duration, 232 | live_stream_id: videoInfo.live_stream_id, 233 | start_time: videoInfo.livestream.start_time, 234 | created_at: videoInfo.created_at, 235 | updated_at: videoInfo.updated_at, 236 | uuid: videoInfo.uuid, 237 | views: videoInfo.views, 238 | stream: videoInfo.source, 239 | language: videoInfo.livestream.language, 240 | livestream: videoInfo.livestream, 241 | channel: videoInfo.livestream.channel, 242 | }; 243 | }; 244 | 245 | const sendMessage = async (messageContent: string) => { 246 | if (!channelInfo) { 247 | throw new Error("Channel info not available"); 248 | } 249 | 250 | if (messageContent.length > 500) { 251 | throw new Error("Message content must be less than 500 characters"); 252 | } 253 | 254 | if (!clientCookies) { 255 | throw new Error("Cookies missing"); 256 | } 257 | if (!clientBearerToken) { 258 | throw new Error("Bearer token missing"); 259 | } 260 | if (!clientToken) { 261 | throw new Error("XSRF token missing"); 262 | } 263 | // this is a temp thing till i figure out whats the axios issue 264 | 265 | const res = fetch( 266 | `https://kick.com/api/v2/messages/send/${channelInfo.chatroom.id}`, 267 | { 268 | headers: { 269 | accept: "application/json", 270 | "accept-language": "en-US,en;q=0.9", 271 | authorization: `Bearer ${clientBearerToken}`, 272 | "x-CSRF-token": clientToken, 273 | "cache-control": "max-age=0", 274 | cluster: "v2", 275 | "content-type": "application/json", 276 | priority: "u=1, i", 277 | "sec-ch-ua": '"Not A(Brand";v="8", "Chromium";v="132"', 278 | "sec-ch-ua-arch": '"arm"', 279 | "sec-ch-ua-bitness": '"64"', 280 | "sec-ch-ua-full-version": '"132.0.6834.111"', 281 | "sec-ch-ua-full-version-list": 282 | '"Not A(Brand";v="8.0.0.0", "Chromium";v="132.0.6834.111"', 283 | "sec-ch-ua-mobile": "?0", 284 | "sec-ch-ua-model": '""', 285 | "sec-ch-ua-platform": '"macOS"', 286 | "sec-ch-ua-platform-version": '"15.0.1"', 287 | "sec-fetch-dest": "empty", 288 | "sec-fetch-mode": "cors", 289 | "sec-fetch-site": "same-origin", 290 | cookie: clientCookies, 291 | Referer: `https://kick.com/${channelInfo.slug}`, 292 | "Referrer-Policy": "strict-origin-when-cross-origin", 293 | }, 294 | body: `{"content":"${messageContent}","type":"message"}`, 295 | method: "POST", 296 | }, 297 | ); 298 | }; 299 | 300 | const banUser = async ( 301 | targetUser: string, 302 | durationInMinutes?: number, 303 | permanent: boolean = false, 304 | ) => { 305 | if (!channelInfo) { 306 | throw new Error("Channel info not available"); 307 | } 308 | 309 | checkAuth(); 310 | 311 | if (!targetUser) { 312 | throw new Error("Specify a user to ban"); 313 | } 314 | 315 | if (!permanent) { 316 | if (!durationInMinutes) { 317 | throw new Error("Specify a duration in minutes"); 318 | } 319 | 320 | if (durationInMinutes < 1) { 321 | throw new Error("Duration must be more than 0 minutes"); 322 | } 323 | } 324 | 325 | const headers = createHeaders({ 326 | bearerToken: clientBearerToken!, 327 | xsrfToken: clientToken!, 328 | cookies: clientCookies!, 329 | channelSlug: channelInfo.slug, 330 | }); 331 | 332 | try { 333 | const data = permanent 334 | ? { banned_username: targetUser, permanent: true } 335 | : { 336 | banned_username: targetUser, 337 | duration: durationInMinutes, 338 | permanent: false, 339 | }; 340 | 341 | const result = await makeRequest<{ success: boolean }>( 342 | "post", 343 | `https://kick.com/api/v2/channels/${channelInfo.id}/bans`, 344 | headers, 345 | data, 346 | ); 347 | 348 | if (result) { 349 | console.log( 350 | `User ${targetUser} ${permanent ? "banned" : "timed out"} successfully`, 351 | ); 352 | } else { 353 | console.error(`Failed to ${permanent ? "ban" : "time out"} user.`); 354 | } 355 | } catch (error) { 356 | console.error( 357 | `Error ${permanent ? "banning" : "timing out"} user:`, 358 | error, 359 | ); 360 | } 361 | }; 362 | 363 | const unbanUser = async (targetUser: string) => { 364 | if (!channelInfo) { 365 | throw new Error("Channel info not available"); 366 | } 367 | 368 | checkAuth(); 369 | 370 | if (!targetUser) { 371 | throw new Error("Specify a user to unban"); 372 | } 373 | 374 | const headers = createHeaders({ 375 | bearerToken: clientBearerToken!, 376 | xsrfToken: clientToken!, 377 | cookies: clientCookies!, 378 | channelSlug: channelInfo.slug, 379 | }); 380 | 381 | try { 382 | const result = await makeRequest<{ success: boolean }>( 383 | "delete", 384 | `https://kick.com/api/v2/channels/${channelInfo.id}/bans/${targetUser}`, 385 | headers, 386 | ); 387 | 388 | if (result) { 389 | console.log(`User ${targetUser} unbanned successfully`); 390 | } else { 391 | console.error(`Failed to unban user.`); 392 | } 393 | } catch (error) { 394 | console.error("Error unbanning user:", error); 395 | } 396 | }; 397 | 398 | const deleteMessage = async (messageId: string) => { 399 | if (!channelInfo) { 400 | throw new Error("Channel info not available"); 401 | } 402 | 403 | checkAuth(); 404 | 405 | if (!messageId) { 406 | throw new Error("Specify a messageId to delete"); 407 | } 408 | 409 | const headers = createHeaders({ 410 | bearerToken: clientBearerToken!, 411 | xsrfToken: clientToken!, 412 | cookies: clientCookies!, 413 | channelSlug: channelInfo.slug, 414 | }); 415 | 416 | try { 417 | const result = await makeRequest<{ success: boolean }>( 418 | "delete", 419 | `https://kick.com/api/v2/channels/${channelInfo.id}/messages/${messageId}`, 420 | headers, 421 | ); 422 | 423 | if (result) { 424 | console.log(`Message ${messageId} deleted successfully`); 425 | } else { 426 | console.error(`Failed to delete message.`); 427 | } 428 | } catch (error) { 429 | console.error("Error deleting message:", error); 430 | } 431 | }; 432 | 433 | const slowMode = async (mode: "on" | "off", durationInSeconds?: number) => { 434 | if (!channelInfo) { 435 | throw new Error("Channel info not available"); 436 | } 437 | 438 | checkAuth(); 439 | 440 | if (mode !== "on" && mode !== "off") { 441 | throw new Error("Invalid mode, must be either 'on' or 'off'"); 442 | } 443 | 444 | if (mode === "on" && (!durationInSeconds || durationInSeconds < 1)) { 445 | throw new Error( 446 | "Invalid duration, must be greater than 0 if mode is 'on'", 447 | ); 448 | } 449 | 450 | const headers = createHeaders({ 451 | bearerToken: clientBearerToken!, 452 | xsrfToken: clientToken!, 453 | cookies: clientCookies!, 454 | channelSlug: channelInfo.slug, 455 | }); 456 | 457 | try { 458 | const data = 459 | mode === "off" 460 | ? { slow_mode: false } 461 | : { slow_mode: true, message_interval: durationInSeconds }; 462 | 463 | const result = await makeRequest<{ success: boolean }>( 464 | "put", 465 | `https://kick.com/api/v2/channels/${channelInfo.slug}/chatroom`, 466 | headers, 467 | data, 468 | ); 469 | 470 | if (result?.success) { 471 | console.log( 472 | mode === "off" 473 | ? "Slow mode disabled successfully" 474 | : `Slow mode enabled with ${durationInSeconds} second interval`, 475 | ); 476 | } else { 477 | console.error( 478 | `Failed to ${mode === "off" ? "disable" : "enable"} slow mode.`, 479 | ); 480 | } 481 | } catch (error) { 482 | console.error( 483 | `Error ${mode === "off" ? "disabling" : "enabling"} slow mode:`, 484 | error, 485 | ); 486 | } 487 | }; 488 | 489 | const getPoll = async (targetChannel?: string) => { 490 | const channel = targetChannel || channelName; 491 | 492 | if (!targetChannel && !channelInfo) { 493 | throw new Error("Channel info not available"); 494 | } 495 | 496 | const headers = createHeaders({ 497 | bearerToken: clientBearerToken!, 498 | xsrfToken: clientToken!, 499 | cookies: clientCookies!, 500 | channelSlug: channel, 501 | }); 502 | 503 | try { 504 | const result = await makeRequest( 505 | "get", 506 | `https://kick.com/api/v2/channels/${channel}/polls`, 507 | headers, 508 | ); 509 | 510 | if (result) { 511 | console.log(`Poll retrieved successfully for channel: ${channel}`); 512 | return result; 513 | } 514 | } catch (error) { 515 | console.error(`Error retrieving poll for channel ${channel}:`, error); 516 | } 517 | 518 | return null; 519 | }; 520 | 521 | const getLeaderboards = async (targetChannel?: string) => { 522 | const channel = targetChannel || channelName; 523 | 524 | if (!targetChannel && !channelInfo) { 525 | throw new Error("Channel info not available"); 526 | } 527 | 528 | const headers = createHeaders({ 529 | bearerToken: clientBearerToken!, 530 | xsrfToken: clientToken!, 531 | cookies: clientCookies!, 532 | channelSlug: channel, 533 | }); 534 | 535 | try { 536 | const result = await makeRequest( 537 | "get", 538 | `https://kick.com/api/v2/channels/${channel}/leaderboards`, 539 | headers, 540 | ); 541 | 542 | if (result) { 543 | console.log( 544 | `Leaderboards retrieved successfully for channel: ${channel}`, 545 | ); 546 | return result; 547 | } 548 | } catch (error) { 549 | console.error( 550 | `Error retrieving leaderboards for channel ${channel}:`, 551 | error, 552 | ); 553 | } 554 | 555 | return null; 556 | }; 557 | 558 | return { 559 | login, 560 | on, 561 | get user() { 562 | return getUser(); 563 | }, 564 | vod, 565 | sendMessage, 566 | banUser, 567 | unbanUser, 568 | deleteMessage, 569 | slowMode, 570 | getPoll, 571 | getLeaderboards, 572 | }; 573 | }; 574 | -------------------------------------------------------------------------------- /src/core/kickApi.ts: -------------------------------------------------------------------------------- 1 | import puppeteer from "puppeteer-extra"; 2 | import StealthPlugin from "puppeteer-extra-plugin-stealth"; 3 | import type { KickChannelInfo } from "../types/channels"; 4 | import type { VideoInfo } from "../types/video"; 5 | import { authenticator } from "otplib"; 6 | import type { AuthenticationSettings } from "../types/client"; 7 | 8 | const setupPuppeteer = async () => { 9 | const puppeteerExtra = puppeteer.use(StealthPlugin()); 10 | const browser = await puppeteerExtra.launch({ 11 | headless: true, 12 | defaultViewport: null, 13 | args: ["--start-maximized"], 14 | }); 15 | const page = await browser.newPage(); 16 | return { browser, page }; 17 | }; 18 | 19 | export const getChannelData = async ( 20 | channel: string, 21 | ): Promise => { 22 | const { browser, page } = await setupPuppeteer(); 23 | 24 | try { 25 | const response = await page.goto( 26 | `https://kick.com/api/v2/channels/${channel}`, 27 | ); 28 | 29 | if (response?.status() === 403) { 30 | throw new Error( 31 | "Request blocked by Cloudflare protection. Please try again later.", 32 | ); 33 | } 34 | 35 | await page.waitForSelector("body"); 36 | 37 | const jsonContent: KickChannelInfo = await page.evaluate(() => { 38 | const bodyElement = document.querySelector("body"); 39 | if (!bodyElement || !bodyElement.textContent) { 40 | throw new Error("Unable to fetch channel data"); 41 | } 42 | return JSON.parse(bodyElement.textContent); 43 | }); 44 | 45 | return jsonContent; 46 | } catch (error) { 47 | console.error("Error getting channel data:", error); 48 | return null; 49 | } finally { 50 | await browser.close(); 51 | } 52 | }; 53 | 54 | export const getVideoData = async ( 55 | video_id: string, 56 | ): Promise => { 57 | const { browser, page } = await setupPuppeteer(); 58 | 59 | try { 60 | const response = await page.goto( 61 | `https://kick.com/api/v1/video/${video_id}`, 62 | ); 63 | 64 | if (response?.status() === 403) { 65 | throw new Error( 66 | "Request blocked by Cloudflare protection. Please try again later.", 67 | ); 68 | } 69 | 70 | await page.waitForSelector("body"); 71 | 72 | const jsonContent: VideoInfo = await page.evaluate(() => { 73 | const bodyElement = document.querySelector("body"); 74 | if (!bodyElement || !bodyElement.textContent) { 75 | throw new Error("Unable to fetch video data"); 76 | } 77 | return JSON.parse(bodyElement.textContent); 78 | }); 79 | 80 | return jsonContent; 81 | } catch (error) { 82 | console.error("Error getting video data:", error); 83 | return null; 84 | } finally { 85 | await browser.close(); 86 | } 87 | }; 88 | 89 | export const authentication = async ({ 90 | username, 91 | password, 92 | otp_secret, 93 | }: AuthenticationSettings): Promise<{ 94 | bearerToken: string; 95 | xsrfToken: string; 96 | cookies: string; 97 | isAuthenticated: boolean; 98 | }> => { 99 | let bearerToken = ""; 100 | let xsrfToken = ""; 101 | let cookieString = ""; 102 | let isAuthenticated = false; 103 | 104 | const puppeteerExtra = puppeteer.use(StealthPlugin()); 105 | const browser = await puppeteerExtra.launch({ 106 | headless: true, 107 | defaultViewport: null, 108 | }); 109 | 110 | const page = await browser.newPage(); 111 | let requestData: any[] = []; 112 | 113 | // Enable request interception 114 | await page.setRequestInterception(true); 115 | 116 | // Monitor all requests 117 | page.on("request", (request) => { 118 | const url = request.url(); 119 | const headers = request.headers(); 120 | 121 | if (url.includes("/api/v2/channels/followed")) { 122 | const reqBearerToken = headers["authorization"] || ""; 123 | cookieString = headers["cookie"] || ""; 124 | 125 | if (!bearerToken && reqBearerToken.includes("Bearer ")) { 126 | const splitToken = reqBearerToken.split("Bearer ")[1]; 127 | if (splitToken) { 128 | bearerToken = splitToken; 129 | } 130 | } 131 | } 132 | 133 | requestData.push({ 134 | url, 135 | headers, 136 | method: request.method(), 137 | resourceType: request.resourceType(), 138 | }); 139 | 140 | request.continue(); 141 | }); 142 | 143 | const selectorTimeout = 6000; 144 | try { 145 | await page.goto("https://kick.com/"); 146 | await page.waitForSelector("nav > div:nth-child(3) > button:first-child", { 147 | visible: true, 148 | timeout: selectorTimeout, 149 | }); 150 | await page.click("nav > div:nth-child(3) > button:first-child"); 151 | 152 | await page.waitForSelector('input[name="emailOrUsername"]', { 153 | visible: true, 154 | timeout: selectorTimeout, 155 | }); 156 | 157 | await page.type('input[name="emailOrUsername"]', username, { delay: 100 }); 158 | await page.type('input[name="password"]', password, { delay: 100 }); 159 | await page.click('button[data-test="login-submit"]'); 160 | 161 | try { 162 | await page.waitForFunction( 163 | () => { 164 | const element = document.querySelector( 165 | 'input[data-input-otp="true"]', 166 | ); 167 | const verifyText = 168 | document.body.textContent?.includes("Verify 2FA Code"); 169 | return element || !verifyText; 170 | }, 171 | { timeout: selectorTimeout }, 172 | ); 173 | 174 | const requires2FA = await page.evaluate(() => { 175 | return !!document.querySelector('input[data-input-otp="true"]'); 176 | }); 177 | 178 | if (requires2FA) { 179 | if (!otp_secret) { 180 | throw new Error("2FA authentication required"); 181 | } 182 | 183 | const token = authenticator.generate(otp_secret); 184 | await page.waitForSelector('input[data-input-otp="true"]'); 185 | await page.type('input[data-input-otp="true"]', token, { delay: 100 }); 186 | await page.click('button[type="submit"]'); 187 | await page.waitForNavigation({ waitUntil: "networkidle0" }); 188 | } 189 | } catch (error: any) { 190 | if (error.message.includes("2FA authentication required")) throw error; 191 | } 192 | 193 | await page.goto("https://kick.com/api/v2/channels/followed"); 194 | 195 | const cookies = await page.cookies(); 196 | cookieString = cookies 197 | .map((cookie) => `${cookie.name}=${cookie.value}`) 198 | .join("; "); 199 | 200 | const xsrfTokenCookie = cookies.find( 201 | (cookie) => cookie.name === "XSRF-TOKEN", 202 | )?.value; 203 | if (xsrfTokenCookie) { 204 | xsrfToken = xsrfTokenCookie; 205 | } 206 | 207 | if (!cookieString || cookieString === "") { 208 | throw new Error("Failed to capture cookies"); 209 | } 210 | if (!bearerToken || bearerToken === "") { 211 | throw new Error("Failed to capture bearer token"); 212 | } 213 | if (!xsrfToken || xsrfToken === "") { 214 | throw new Error("Failed to capture xsrf token"); 215 | } 216 | 217 | isAuthenticated = true; 218 | 219 | return { 220 | bearerToken, 221 | xsrfToken, 222 | cookies: cookieString, 223 | isAuthenticated, 224 | }; 225 | } catch (error: any) { 226 | throw error; 227 | } finally { 228 | await browser.close(); 229 | } 230 | }; 231 | -------------------------------------------------------------------------------- /src/core/messageHandling.ts: -------------------------------------------------------------------------------- 1 | import type { 2 | MessageEvent, 3 | ChatMessage, 4 | Subscription, 5 | GiftedSubscriptionsEvent, 6 | StreamHostEvent, 7 | UserBannedEvent, 8 | UserUnbannedEvent, 9 | PinnedMessageCreatedEvent, 10 | MessageDeletedEvent, 11 | } from "../types/events"; 12 | import { parseJSON } from "../utils/utils"; 13 | 14 | export const parseMessage = (message: string) => { 15 | try { 16 | const messageEventJSON = parseJSON(message); 17 | 18 | // switch event type 19 | switch (messageEventJSON.event) { 20 | case "App\\Events\\ChatMessageEvent": { 21 | const data = parseJSON(messageEventJSON.data); 22 | return { type: "ChatMessage", data }; 23 | } 24 | case "App\\Events\\SubscriptionEvent": { 25 | const data = parseJSON(messageEventJSON.data); 26 | return { type: "Subscription", data }; 27 | } 28 | case "App\\Events\\GiftedSubscriptionsEvent": { 29 | const data = parseJSON(messageEventJSON.data); 30 | return { type: "GiftedSubscriptions", data }; 31 | } 32 | case "App\\Events\\StreamHostEvent": { 33 | const data = parseJSON(messageEventJSON.data); 34 | return { type: "StreamHost", data }; 35 | } 36 | case "App\\Events\\MessageDeletedEvent": { 37 | const data = parseJSON(messageEventJSON.data); 38 | return { type: "MessageDeleted", data }; 39 | } 40 | case "App\\Events\\UserBannedEvent": { 41 | const data = parseJSON(messageEventJSON.data); 42 | return { type: "UserBanned", data }; 43 | } 44 | case "App\\Events\\UserUnbannedEvent": { 45 | const data = parseJSON(messageEventJSON.data); 46 | return { type: "UserUnbanned", data }; 47 | } 48 | case "App\\Events\\PinnedMessageCreatedEvent": { 49 | const data = parseJSON( 50 | messageEventJSON.data, 51 | ); 52 | return { type: "PinnedMessageCreated", data }; 53 | } 54 | case "App\\Events\\PinnedMessageDeletedEvent": { 55 | const data = parseJSON(messageEventJSON.data); 56 | return { type: "PinnedMessageDeleted", data }; 57 | } 58 | case "App\\Events\\PollUpdateEvent": { 59 | const data = parseJSON(messageEventJSON.data); 60 | return { type: "PollUpdate", data }; 61 | } 62 | case "App\\Events\\PollDeleteEvent": { 63 | const data = parseJSON(messageEventJSON.data); 64 | return { type: "PollDelete", data }; 65 | } 66 | 67 | default: { 68 | console.log("Unknown event type:", messageEventJSON.event); 69 | return null; 70 | } 71 | } 72 | 73 | return null; 74 | } catch (error) { 75 | console.error("Error parsing message:", error); 76 | return null; 77 | } 78 | }; 79 | -------------------------------------------------------------------------------- /src/core/requestHelper.ts: -------------------------------------------------------------------------------- 1 | import axios, { type AxiosResponse } from "axios"; 2 | 3 | import { AxiosHeaders } from "axios"; 4 | 5 | export interface ApiHeaders extends AxiosHeaders { 6 | accept: string; 7 | authorization: string; 8 | "content-type": string; 9 | "x-xsrf-token": string; 10 | cookie: string; 11 | Referer: string; 12 | } 13 | 14 | export interface RequestConfig { 15 | bearerToken: string; 16 | xsrfToken: string; 17 | cookies: string; 18 | channelSlug: string; 19 | } 20 | 21 | export const createHeaders = ({ 22 | bearerToken, 23 | cookies, 24 | channelSlug, 25 | }: RequestConfig): AxiosHeaders => { 26 | const headers = new AxiosHeaders(); 27 | 28 | headers.set("accept", "application/json"); 29 | headers.set("accept-language", "en-US,en;q=0.9"); 30 | headers.set("authorization", `Bearer ${bearerToken}`); 31 | headers.set("cache-control", "max-age=0"); 32 | headers.set("cluster", "v2"); 33 | headers.set("content-type", "application/json"); 34 | headers.set("priority", "u=1, i"); 35 | headers.set("cookie", cookies); 36 | headers.set("Referer", `https://kick.com/${channelSlug}`); 37 | headers.set("Referrer-Policy", "strict-origin-when-cross-origin"); 38 | 39 | return headers; 40 | }; 41 | 42 | export const makeRequest = async ( 43 | method: "get" | "post" | "put" | "delete", 44 | url: string, 45 | headers: AxiosHeaders, 46 | data?: unknown, 47 | ): Promise => { 48 | try { 49 | const response: AxiosResponse = await axios({ 50 | method, 51 | url, 52 | headers, 53 | data, 54 | }); 55 | 56 | if (response.status === 200) { 57 | return response.data; 58 | } 59 | console.error(`Request failed with status: ${response.status}`); 60 | return null; 61 | } catch (error) { 62 | console.error(`Request error for ${url}:`, error); 63 | return null; 64 | } 65 | }; 66 | -------------------------------------------------------------------------------- /src/core/websocket.ts: -------------------------------------------------------------------------------- 1 | import WebSocket from "ws"; 2 | import { URLSearchParams } from "url"; 3 | 4 | const BASE_URL = "wss://ws-us2.pusher.com/app/32cbd69e4b950bf97679"; 5 | 6 | export const createWebSocket = (chatroomId: number): WebSocket => { 7 | const urlParams = new URLSearchParams({ 8 | protocol: "7", 9 | client: "js", 10 | version: "7.4.0", 11 | flash: "false", 12 | }); 13 | const url = `${BASE_URL}?${urlParams.toString()}`; 14 | 15 | const socket = new WebSocket(url); 16 | 17 | socket.on("open", () => { 18 | const connect = JSON.stringify({ 19 | event: "pusher:subscribe", 20 | data: { auth: "", channel: `chatrooms.${chatroomId}.v2` }, 21 | }); 22 | socket.send(connect); 23 | }); 24 | 25 | return socket; 26 | }; 27 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | import { createClient } from "./client/client"; 2 | import type { MessageData } from "./types/events.js"; 3 | 4 | export { createClient }; 5 | export type { MessageData }; 6 | -------------------------------------------------------------------------------- /src/types/channels.ts: -------------------------------------------------------------------------------- 1 | import type { Livestream } from "./video"; 2 | 3 | export interface KickChannelInfo { 4 | id: number; 5 | user_id: number; 6 | slug: string; 7 | is_banned: boolean; 8 | playback_url: string; 9 | vod_enabled: boolean; 10 | subscription_enabled: boolean; 11 | followers_count: number; 12 | subscriber_badges: SubscriberBadge[]; 13 | banner_image: BannerImage; 14 | livestream: Livestream | null; 15 | role: null; 16 | muted: boolean; 17 | follower_badges: unknown[]; 18 | offline_banner_image: null; 19 | verified: boolean; 20 | recent_categories: RecentCategory[]; 21 | can_host: boolean; 22 | user: User; 23 | chatroom: Chatroom; 24 | } 25 | export interface BannerImage { 26 | url: string; 27 | } 28 | 29 | export interface Chatroom { 30 | id: number; 31 | chatable_type: string; 32 | channel_id: number; 33 | created_at: Date; 34 | updated_at: Date; 35 | chat_mode_old: string; 36 | chat_mode: string; 37 | slow_mode: boolean; 38 | chatable_id: number; 39 | followers_mode: boolean; 40 | subscribers_mode: boolean; 41 | emotes_mode: boolean; 42 | message_interval: number; 43 | following_min_duration: number; 44 | } 45 | 46 | export interface RecentCategory { 47 | id: number; 48 | category_id: number; 49 | name: string; 50 | slug: string; 51 | tags: string[]; 52 | description: null; 53 | deleted_at: null; 54 | viewers: number; 55 | banner: Banner; 56 | category: Category; 57 | } 58 | 59 | export interface Banner { 60 | responsive: string; 61 | url: string; 62 | } 63 | 64 | export interface Category { 65 | id: number; 66 | name: string; 67 | slug: string; 68 | icon: string; 69 | } 70 | 71 | export interface SubscriberBadge { 72 | id: number; 73 | channel_id: number; 74 | months: number; 75 | badge_image: BadgeImage; 76 | } 77 | 78 | export interface BadgeImage { 79 | srcset: string; 80 | src: string; 81 | } 82 | export interface User { 83 | id: number; 84 | username: string; 85 | agreed_to_terms: boolean; 86 | email_verified_at: Date; 87 | bio: string; 88 | country: null; 89 | state: null; 90 | city: null; 91 | instagram: string; 92 | twitter: string; 93 | youtube: string; 94 | discord: string; 95 | tiktok: string; 96 | facebook: string; 97 | profile_pic: string; 98 | } 99 | -------------------------------------------------------------------------------- /src/types/client.ts: -------------------------------------------------------------------------------- 1 | import type { Channel, Livestream } from "./video"; 2 | 3 | export type EventHandler = (data: T) => void; 4 | 5 | export interface ClientOptions { 6 | plainEmote?: boolean; 7 | logger?: boolean; 8 | readOnly?: boolean; 9 | } 10 | 11 | export interface Video { 12 | id: number; 13 | title: string; 14 | thumbnail: string; 15 | duration: number; 16 | live_stream_id: number; 17 | start_time: Date; 18 | created_at: Date; 19 | updated_at: Date; 20 | uuid: string; 21 | views: number; 22 | stream: string; 23 | language: string; 24 | livestream: Livestream; 25 | channel: Channel; 26 | } 27 | 28 | export interface KickClient { 29 | on: (event: string, listener: (...args: any[]) => void) => void; 30 | vod: (video_id: string) => Promise