├── .eslintignore ├── .eslintrc.json ├── .gitignore ├── .prettierrc ├── LICENSE ├── NOTICE.md ├── NOTICE_zh-CN.md ├── README.md ├── README_zh-CN.md ├── package-lock.json ├── package.json ├── src ├── index.ts ├── l10n │ └── index.ts └── withL10n.ts ├── tsconfig.json ├── tsup.config.ts ├── turbowarp └── .prettierrc └── types ├── README.md ├── turbowarp.d.ts └── universal.d.ts /.eslintignore: -------------------------------------------------------------------------------- 1 | dist/ -------------------------------------------------------------------------------- /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "browser": true, 4 | "es2021": true 5 | }, 6 | "extends": ["eslint:recommended", "plugin:@typescript-eslint/recommended"], 7 | "parser": "@typescript-eslint/parser", 8 | "parserOptions": { 9 | "ecmaVersion": "latest", 10 | "sourceType": "module" 11 | }, 12 | "plugins": ["@typescript-eslint"], 13 | "rules": { 14 | "indent": "off", 15 | "linebreak-style": ["error", "unix"], 16 | "quotes": "off", 17 | "semi": ["error", "never"], 18 | "no-extra-semi": "off", 19 | "@typescript-eslint/no-namespace": "off" 20 | } 21 | } -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | dist/ -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "singleQuote": true, 3 | "trailingComma": "none", 4 | "arrowParens": "avoid", 5 | "semi": false, 6 | "tabWidth": 2 7 | } -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2024 FurryR 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 | -------------------------------------------------------------------------------- /NOTICE.md: -------------------------------------------------------------------------------- 1 | # Restrictions 2 | 3 | 1. As this scaffolding is licensed under the MIT license, for closed-source projects you need to identify the project as using this scaffolding anywhere in the project that is visible and accessible to users (e.g., acknowledgements). 4 | For open source projects, you need to add a link reference to this scaffolding in the README. 5 | If you use a copy of a portion of the code in this scaffolding and then rewrite the used portion yourself, you still need to maintain an acknowledgement of this scaffolding. 6 | 2. We encourage you to license your project under the MPL-2.0 Open Source License, although this is not legal advice, it has a positive effect on the open source community. 7 | 3. If you encounter any failures in using this scaffolding, please actively use search engines rather than harassing the developers. 8 | -------------------------------------------------------------------------------- /NOTICE_zh-CN.md: -------------------------------------------------------------------------------- 1 | # 限制 2 | 3 | 1. 由于该脚手架以 MIT 许可,因此,对于闭源的项目,您需要在项目中任何用户可见且可访问的位置标识此项目使用此脚手架(例:鸣谢)。 4 | 对于开源的项目,您需要在 README 中添加对于此脚手架的链接引用。 5 | 若您使用本脚手架中的一部分代码的副本后自行重写使用的部分,则您仍需保持关于本脚手架的鸣谢。 6 | 2. 我们倡导您使用 MPL-2.0 开源协议许可您的项目,尽管这不是法律建议,但这样做对开源社区有积极的效应。 7 | 3. 若您在使用本脚手架中遇到任何故障,请积极使用搜索引擎,而不是对开发者进行骚扰。 -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |
2 | 3 | # ⚡ scratch-ext 4 | 5 | > Scaffolding for Javascript/Typescript Scratch extensions. 6 | 7 | [![Visitors](https://hits.dwyl.com/FurryR/scratch-ext.svg?style=flat-square)](http://github.com/FurryR/scratch-ext) 8 | 9 | [🇺🇸](./README.md) | [🇨🇳](./README_zh-CN.md) 10 | 11 |
12 | 13 | ## 👾 Features 14 | 15 | - 📄 Allows you writing in Typescript with type descriptions. 16 | - 🩷 Supports Turbowarp, Eureka, and Gandi IDE. 17 | - 😎 Out-of-box eslint (`npm run lint`) & prettier (`npm run format`) support. 18 | - 🐱 Auto-format to match Turbowarp's format. 19 | - 💫 Third-party module support & blazing-fast. 20 | 21 | ## 🧪 Usage 22 | 23 | 1. 🛠️ Use this template repository. 24 | 2. 🔽 Clone and install. 25 | 26 | ```bash 27 | git clone git@github.com:/.git && cd 28 | npm install 29 | ``` 30 | 31 | 3. 🎉 Tada! 32 | 33 | ## ❓ Something you need to change 34 | 35 | In `package.json`: 36 | 37 | ```javascript 38 | { 39 | "name": "scratch-ext", // Replace this with your extension's name 40 | "version": "1.0.0", // Replace this with your extension's version (or use `npm version major|minor|patch` to change) 41 | "description": "Scaffolding for Javascript/Typescript Scratch extensions", // Replace this with your extension's description 42 | "main": "dist/index.js", 43 | "scripts": { 44 | // ... 45 | }, 46 | "author": "FurryR", // Replace this with your extension's author 47 | "license": "MIT", // Replace this with your extension's license (MPL-2.0 is recommended) 48 | "devDependencies": { 49 | // ... 50 | } 51 | } 52 | ``` 53 | 54 | In `tsconfig.json`: 55 | 56 | ```javascript 57 | { 58 | "compilerOptions": { 59 | // ... 60 | }, 61 | "include": [ 62 | "node_modules/@turbowarp/types/types/scratch-vm-extension.d.ts", 63 | "types/universal.d.ts", 64 | "types/turbowarp.d.ts", // Add this for better experience on Turbowarp, plz remove it if you only want to write Gandi-only extensions 65 | "types/gandi.d.ts", // Add this for better experience on Gandi IDE, plz remove it if you want to write Turbowarp-only extensions 66 | "src/**/*", 67 | "tsup.config.ts", 68 | "package.json" 69 | ] 70 | } 71 | ``` 72 | 73 | In `tsup.config.ts`: 74 | 75 | ```typescript 76 | import { defineConfig } from 'tsup' 77 | 78 | export default defineConfig({ 79 | name: 'scratch-ext', // Replace it with your extension name 80 | entry: ['src/index.ts', 'src/index.js'], 81 | target: ['esnext'], 82 | format: ['iife'], 83 | outDir: 'dist', 84 | banner: { 85 | // Replace it with your extension's metadata (for Turbowarp) 86 | js: `// Name: FurryR's example Extension 87 | // ID: newExtension 88 | // Description: Scaffolding for Advanced Scratch extensions. 89 | // By: You 90 | // Original: Me 91 | // License: MPL-2.0 92 | ` 93 | }, 94 | platform: 'browser', 95 | clean: true 96 | }) 97 | ``` 98 | 99 | ## 🐺 Command shortcuts 100 | 101 | ### 🤖 Lint & Format 102 | 103 | - Check for typing: `npm run lint:type` 104 | - Check for format: `npm run lint:format` (Fix: `npm run format`) 105 | - Check for eslint: `npm run lint` (Fix: `npm run fix`) 106 | 107 | ### 🛠️ Build 108 | 109 | - Build: `npm run build` 110 | - Build for Turbowarp (format to match its prettier): `npm run build:turbowarp` 111 | - Development server: `npm run start` (Extension: `http://localhost:8080/index.global.js`) 112 | 113 | --- 114 | 115 |
116 | 117 | _`This project is licensed under the MIT license.`_ 118 | 119 | [NOTICE](./NOTICE.md) 120 | 121 | ❤️ 122 | 123 |
124 | -------------------------------------------------------------------------------- /README_zh-CN.md: -------------------------------------------------------------------------------- 1 |
2 | 3 | # ⚡ scratch-ext 4 | 5 | > 适用于 Javascript/Typescript Scratch 扩展的脚手架。 6 | 7 | [![Visitors](https://hits.dwyl.com/FurryR/scratch-ext.svg?style=flat-square)](http://github.com/FurryR/scratch-ext) 8 | 9 | [🇺🇸](./README.md) | [🇨🇳](./README_zh-CN.md) 10 | 11 |
12 | 13 | ## 👾 功能 14 | 15 | - 📄 允许你使用 Typescript 写扩展,并附有类型注释。 16 | - 🩷 支持 Turbowarp, Eureka 和 Gandi IDE。 17 | - 😎 开箱即用的 eslint (`npm run lint`) 和 prettier (`npm run format`) 支持。 18 | - 🐱 自动将扩展格式化到 Turbowarp 格式。 19 | - 💫 第三方模块支持 & 超高速打包。 20 | 21 | ## 🧪 使用 22 | 23 | 1. 🛠️ 使用此仓库作为模板。 24 | 2. 🔽 克隆你的仓库,并安装依赖。 25 | 26 | ```bash 27 | git clone git@github.com:<你的 GitHub 名称>/<你的 GitHub 仓库>.git <扩展目录> && cd <扩展目录> 28 | npm install 29 | ``` 30 | 31 | 3. 🎉 好耶! 32 | 33 | ## ❓ 你需要变更的一些东西 34 | 35 | 在 `package.json` 中: 36 | 37 | ```javascript 38 | { 39 | "name": "scratch-ext", // 把这个改成你扩展的名字 40 | "version": "1.0.0", // 把这个改成你扩展的版本 (你也可以使用 `npm version major|minor|patch` 来更改版本) 41 | "description": "Scaffolding for Javascript/Typescript Scratch extensions", // 把这个改成你的扩展的说明 42 | "main": "dist/index.js", 43 | "scripts": { 44 | // ... 45 | }, 46 | "author": "FurryR", // 把这个改成你的扩展的作者 47 | "license": "MIT", // 把这个改成你的扩展的开源协议 (推荐 MPL-2.0) 48 | "devDependencies": { 49 | // ... 50 | } 51 | } 52 | ``` 53 | 54 | 在 `tsconfig.json` 中: 55 | 56 | ```javascript 57 | { 58 | "compilerOptions": { 59 | // ... 60 | }, 61 | "include": [ 62 | "node_modules/@turbowarp/types/types/scratch-vm-extension.d.ts", 63 | "types/universal.d.ts", 64 | "types/turbowarp.d.ts", // 若需要 Turbowarp 上更好的体验,请保留这一行。如果你希望写仅适配 Gandi IDE 的扩展,请删除这一行。 65 | "types/gandi.d.ts", // 若需要 Gandi IDE 上更好的体验,请保留这一行。如果你希望写仅适配 Turbowarp 的扩展,请删除这一行。 66 | "src/**/*", 67 | "tsup.config.ts", 68 | "package.json" 69 | ] 70 | } 71 | ``` 72 | 73 | 在 `tsup.config.ts` 中: 74 | 75 | ```typescript 76 | import { defineConfig } from 'tsup' 77 | 78 | export default defineConfig({ 79 | name: 'scratch-ext', // 把这个改成你扩展的名字 80 | entry: ['src/index.ts', 'src/index.js'], 81 | target: ['esnext'], 82 | format: ['iife'], 83 | outDir: 'dist', 84 | banner: { 85 | // 把这个改成你扩展的元数据 (仅适用于 Turbowarp) 86 | js: `// Name: FurryR 的测试扩展 87 | // ID: newExtension 88 | // Description: 为了高级 Scratch 扩展的脚手架。 89 | // By: 你 90 | // Original: 我 91 | // License: MPL-2.0 92 | ` 93 | }, 94 | platform: 'browser', 95 | clean: true 96 | }) 97 | ``` 98 | 99 | ## 🐺 快捷命令 100 | 101 | ### 🤖 代码问题检查 & 格式化 102 | 103 | - 检查类型错误: `npm run lint:type` 104 | - 检查格式化问题: `npm run lint:format` (快捷修复: `npm run format`) 105 | - 检查代码风格(eslint)问题: `npm run lint` (快捷修复: `npm run fix`) 106 | 107 | ### 🛠️ 构建 108 | 109 | - 构建: `npm run build` 110 | - 为 Turbowarp 构建 (自动格式化到匹配它的 prettier): `npm run build:turbowarp` 111 | - 开发服务器: `npm run start` (扩展位置: `http://localhost:8080/index.global.js`) 112 | 113 | --- 114 | 115 |
116 | 117 | _`此项目以 MIT 协议发行。`_ 118 | 119 | [查看 NOTICE](./NOTICE_zh-CN.md) 120 | 121 | ❤️ 122 | 123 |
124 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "scratch-ext", 3 | "version": "1.0.0", 4 | "lockfileVersion": 3, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "scratch-ext", 9 | "version": "1.0.0", 10 | "license": "MIT", 11 | "devDependencies": { 12 | "@turbowarp/types": "^0.0.12", 13 | "@typescript-eslint/eslint-plugin": "^8.19.1", 14 | "@typescript-eslint/parser": "^8.19.1", 15 | "eslint": "^9.17.0", 16 | "http-server": "^14.1.1", 17 | "prettier": "^3.4.2", 18 | "tsup": "^8.0.2", 19 | "typescript": "^5.7.2" 20 | } 21 | }, 22 | "node_modules/@esbuild/aix-ppc64": { 23 | "version": "0.23.1", 24 | "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.23.1.tgz", 25 | "integrity": "sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==", 26 | "cpu": [ 27 | "ppc64" 28 | ], 29 | "dev": true, 30 | "optional": true, 31 | "os": [ 32 | "aix" 33 | ], 34 | "engines": { 35 | "node": ">=18" 36 | } 37 | }, 38 | "node_modules/@esbuild/android-arm": { 39 | "version": "0.23.1", 40 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.23.1.tgz", 41 | "integrity": "sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==", 42 | "cpu": [ 43 | "arm" 44 | ], 45 | "dev": true, 46 | "optional": true, 47 | "os": [ 48 | "android" 49 | ], 50 | "engines": { 51 | "node": ">=18" 52 | } 53 | }, 54 | "node_modules/@esbuild/android-arm64": { 55 | "version": "0.23.1", 56 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.23.1.tgz", 57 | "integrity": "sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==", 58 | "cpu": [ 59 | "arm64" 60 | ], 61 | "dev": true, 62 | "optional": true, 63 | "os": [ 64 | "android" 65 | ], 66 | "engines": { 67 | "node": ">=18" 68 | } 69 | }, 70 | "node_modules/@esbuild/android-x64": { 71 | "version": "0.23.1", 72 | "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.23.1.tgz", 73 | "integrity": "sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==", 74 | "cpu": [ 75 | "x64" 76 | ], 77 | "dev": true, 78 | "optional": true, 79 | "os": [ 80 | "android" 81 | ], 82 | "engines": { 83 | "node": ">=18" 84 | } 85 | }, 86 | "node_modules/@esbuild/darwin-arm64": { 87 | "version": "0.23.1", 88 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.23.1.tgz", 89 | "integrity": "sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==", 90 | "cpu": [ 91 | "arm64" 92 | ], 93 | "dev": true, 94 | "optional": true, 95 | "os": [ 96 | "darwin" 97 | ], 98 | "engines": { 99 | "node": ">=18" 100 | } 101 | }, 102 | "node_modules/@esbuild/darwin-x64": { 103 | "version": "0.23.1", 104 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.23.1.tgz", 105 | "integrity": "sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==", 106 | "cpu": [ 107 | "x64" 108 | ], 109 | "dev": true, 110 | "optional": true, 111 | "os": [ 112 | "darwin" 113 | ], 114 | "engines": { 115 | "node": ">=18" 116 | } 117 | }, 118 | "node_modules/@esbuild/freebsd-arm64": { 119 | "version": "0.23.1", 120 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.1.tgz", 121 | "integrity": "sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==", 122 | "cpu": [ 123 | "arm64" 124 | ], 125 | "dev": true, 126 | "optional": true, 127 | "os": [ 128 | "freebsd" 129 | ], 130 | "engines": { 131 | "node": ">=18" 132 | } 133 | }, 134 | "node_modules/@esbuild/freebsd-x64": { 135 | "version": "0.23.1", 136 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.23.1.tgz", 137 | "integrity": "sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==", 138 | "cpu": [ 139 | "x64" 140 | ], 141 | "dev": true, 142 | "optional": true, 143 | "os": [ 144 | "freebsd" 145 | ], 146 | "engines": { 147 | "node": ">=18" 148 | } 149 | }, 150 | "node_modules/@esbuild/linux-arm": { 151 | "version": "0.23.1", 152 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.23.1.tgz", 153 | "integrity": "sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==", 154 | "cpu": [ 155 | "arm" 156 | ], 157 | "dev": true, 158 | "optional": true, 159 | "os": [ 160 | "linux" 161 | ], 162 | "engines": { 163 | "node": ">=18" 164 | } 165 | }, 166 | "node_modules/@esbuild/linux-arm64": { 167 | "version": "0.23.1", 168 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.23.1.tgz", 169 | "integrity": "sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==", 170 | "cpu": [ 171 | "arm64" 172 | ], 173 | "dev": true, 174 | "optional": true, 175 | "os": [ 176 | "linux" 177 | ], 178 | "engines": { 179 | "node": ">=18" 180 | } 181 | }, 182 | "node_modules/@esbuild/linux-ia32": { 183 | "version": "0.23.1", 184 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.23.1.tgz", 185 | "integrity": "sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==", 186 | "cpu": [ 187 | "ia32" 188 | ], 189 | "dev": true, 190 | "optional": true, 191 | "os": [ 192 | "linux" 193 | ], 194 | "engines": { 195 | "node": ">=18" 196 | } 197 | }, 198 | "node_modules/@esbuild/linux-loong64": { 199 | "version": "0.23.1", 200 | "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.23.1.tgz", 201 | "integrity": "sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==", 202 | "cpu": [ 203 | "loong64" 204 | ], 205 | "dev": true, 206 | "optional": true, 207 | "os": [ 208 | "linux" 209 | ], 210 | "engines": { 211 | "node": ">=18" 212 | } 213 | }, 214 | "node_modules/@esbuild/linux-mips64el": { 215 | "version": "0.23.1", 216 | "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.23.1.tgz", 217 | "integrity": "sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==", 218 | "cpu": [ 219 | "mips64el" 220 | ], 221 | "dev": true, 222 | "optional": true, 223 | "os": [ 224 | "linux" 225 | ], 226 | "engines": { 227 | "node": ">=18" 228 | } 229 | }, 230 | "node_modules/@esbuild/linux-ppc64": { 231 | "version": "0.23.1", 232 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.23.1.tgz", 233 | "integrity": "sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==", 234 | "cpu": [ 235 | "ppc64" 236 | ], 237 | "dev": true, 238 | "optional": true, 239 | "os": [ 240 | "linux" 241 | ], 242 | "engines": { 243 | "node": ">=18" 244 | } 245 | }, 246 | "node_modules/@esbuild/linux-riscv64": { 247 | "version": "0.23.1", 248 | "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.23.1.tgz", 249 | "integrity": "sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==", 250 | "cpu": [ 251 | "riscv64" 252 | ], 253 | "dev": true, 254 | "optional": true, 255 | "os": [ 256 | "linux" 257 | ], 258 | "engines": { 259 | "node": ">=18" 260 | } 261 | }, 262 | "node_modules/@esbuild/linux-s390x": { 263 | "version": "0.23.1", 264 | "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.23.1.tgz", 265 | "integrity": "sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==", 266 | "cpu": [ 267 | "s390x" 268 | ], 269 | "dev": true, 270 | "optional": true, 271 | "os": [ 272 | "linux" 273 | ], 274 | "engines": { 275 | "node": ">=18" 276 | } 277 | }, 278 | "node_modules/@esbuild/linux-x64": { 279 | "version": "0.23.1", 280 | "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.23.1.tgz", 281 | "integrity": "sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==", 282 | "cpu": [ 283 | "x64" 284 | ], 285 | "dev": true, 286 | "optional": true, 287 | "os": [ 288 | "linux" 289 | ], 290 | "engines": { 291 | "node": ">=18" 292 | } 293 | }, 294 | "node_modules/@esbuild/netbsd-x64": { 295 | "version": "0.23.1", 296 | "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.23.1.tgz", 297 | "integrity": "sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==", 298 | "cpu": [ 299 | "x64" 300 | ], 301 | "dev": true, 302 | "optional": true, 303 | "os": [ 304 | "netbsd" 305 | ], 306 | "engines": { 307 | "node": ">=18" 308 | } 309 | }, 310 | "node_modules/@esbuild/openbsd-arm64": { 311 | "version": "0.23.1", 312 | "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.1.tgz", 313 | "integrity": "sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==", 314 | "cpu": [ 315 | "arm64" 316 | ], 317 | "dev": true, 318 | "optional": true, 319 | "os": [ 320 | "openbsd" 321 | ], 322 | "engines": { 323 | "node": ">=18" 324 | } 325 | }, 326 | "node_modules/@esbuild/openbsd-x64": { 327 | "version": "0.23.1", 328 | "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.23.1.tgz", 329 | "integrity": "sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==", 330 | "cpu": [ 331 | "x64" 332 | ], 333 | "dev": true, 334 | "optional": true, 335 | "os": [ 336 | "openbsd" 337 | ], 338 | "engines": { 339 | "node": ">=18" 340 | } 341 | }, 342 | "node_modules/@esbuild/sunos-x64": { 343 | "version": "0.23.1", 344 | "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.23.1.tgz", 345 | "integrity": "sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==", 346 | "cpu": [ 347 | "x64" 348 | ], 349 | "dev": true, 350 | "optional": true, 351 | "os": [ 352 | "sunos" 353 | ], 354 | "engines": { 355 | "node": ">=18" 356 | } 357 | }, 358 | "node_modules/@esbuild/win32-arm64": { 359 | "version": "0.23.1", 360 | "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.23.1.tgz", 361 | "integrity": "sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==", 362 | "cpu": [ 363 | "arm64" 364 | ], 365 | "dev": true, 366 | "optional": true, 367 | "os": [ 368 | "win32" 369 | ], 370 | "engines": { 371 | "node": ">=18" 372 | } 373 | }, 374 | "node_modules/@esbuild/win32-ia32": { 375 | "version": "0.23.1", 376 | "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.23.1.tgz", 377 | "integrity": "sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==", 378 | "cpu": [ 379 | "ia32" 380 | ], 381 | "dev": true, 382 | "optional": true, 383 | "os": [ 384 | "win32" 385 | ], 386 | "engines": { 387 | "node": ">=18" 388 | } 389 | }, 390 | "node_modules/@esbuild/win32-x64": { 391 | "version": "0.23.1", 392 | "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.23.1.tgz", 393 | "integrity": "sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==", 394 | "cpu": [ 395 | "x64" 396 | ], 397 | "dev": true, 398 | "optional": true, 399 | "os": [ 400 | "win32" 401 | ], 402 | "engines": { 403 | "node": ">=18" 404 | } 405 | }, 406 | "node_modules/@eslint-community/eslint-utils": { 407 | "version": "4.4.1", 408 | "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", 409 | "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", 410 | "dev": true, 411 | "dependencies": { 412 | "eslint-visitor-keys": "^3.4.3" 413 | }, 414 | "engines": { 415 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 416 | }, 417 | "funding": { 418 | "url": "https://opencollective.com/eslint" 419 | }, 420 | "peerDependencies": { 421 | "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" 422 | } 423 | }, 424 | "node_modules/@eslint-community/regexpp": { 425 | "version": "4.12.1", 426 | "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", 427 | "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", 428 | "dev": true, 429 | "engines": { 430 | "node": "^12.0.0 || ^14.0.0 || >=16.0.0" 431 | } 432 | }, 433 | "node_modules/@eslint/config-array": { 434 | "version": "0.19.1", 435 | "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.1.tgz", 436 | "integrity": "sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==", 437 | "dev": true, 438 | "dependencies": { 439 | "@eslint/object-schema": "^2.1.5", 440 | "debug": "^4.3.1", 441 | "minimatch": "^3.1.2" 442 | }, 443 | "engines": { 444 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 445 | } 446 | }, 447 | "node_modules/@eslint/config-array/node_modules/brace-expansion": { 448 | "version": "1.1.11", 449 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 450 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 451 | "dev": true, 452 | "dependencies": { 453 | "balanced-match": "^1.0.0", 454 | "concat-map": "0.0.1" 455 | } 456 | }, 457 | "node_modules/@eslint/config-array/node_modules/minimatch": { 458 | "version": "3.1.2", 459 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 460 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 461 | "dev": true, 462 | "dependencies": { 463 | "brace-expansion": "^1.1.7" 464 | }, 465 | "engines": { 466 | "node": "*" 467 | } 468 | }, 469 | "node_modules/@eslint/core": { 470 | "version": "0.9.1", 471 | "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.9.1.tgz", 472 | "integrity": "sha512-GuUdqkyyzQI5RMIWkHhvTWLCyLo1jNK3vzkSyaExH5kHPDHcuL2VOpHjmMY+y3+NC69qAKToBqldTBgYeLSr9Q==", 473 | "dev": true, 474 | "dependencies": { 475 | "@types/json-schema": "^7.0.15" 476 | }, 477 | "engines": { 478 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 479 | } 480 | }, 481 | "node_modules/@eslint/eslintrc": { 482 | "version": "3.2.0", 483 | "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.2.0.tgz", 484 | "integrity": "sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==", 485 | "dev": true, 486 | "dependencies": { 487 | "ajv": "^6.12.4", 488 | "debug": "^4.3.2", 489 | "espree": "^10.0.1", 490 | "globals": "^14.0.0", 491 | "ignore": "^5.2.0", 492 | "import-fresh": "^3.2.1", 493 | "js-yaml": "^4.1.0", 494 | "minimatch": "^3.1.2", 495 | "strip-json-comments": "^3.1.1" 496 | }, 497 | "engines": { 498 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 499 | }, 500 | "funding": { 501 | "url": "https://opencollective.com/eslint" 502 | } 503 | }, 504 | "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { 505 | "version": "1.1.11", 506 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 507 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 508 | "dev": true, 509 | "dependencies": { 510 | "balanced-match": "^1.0.0", 511 | "concat-map": "0.0.1" 512 | } 513 | }, 514 | "node_modules/@eslint/eslintrc/node_modules/minimatch": { 515 | "version": "3.1.2", 516 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 517 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 518 | "dev": true, 519 | "dependencies": { 520 | "brace-expansion": "^1.1.7" 521 | }, 522 | "engines": { 523 | "node": "*" 524 | } 525 | }, 526 | "node_modules/@eslint/js": { 527 | "version": "9.17.0", 528 | "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.17.0.tgz", 529 | "integrity": "sha512-Sxc4hqcs1kTu0iID3kcZDW3JHq2a77HO9P8CP6YEA/FpH3Ll8UXE2r/86Rz9YJLKme39S9vU5OWNjC6Xl0Cr3w==", 530 | "dev": true, 531 | "engines": { 532 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 533 | } 534 | }, 535 | "node_modules/@eslint/object-schema": { 536 | "version": "2.1.5", 537 | "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.5.tgz", 538 | "integrity": "sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==", 539 | "dev": true, 540 | "engines": { 541 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 542 | } 543 | }, 544 | "node_modules/@eslint/plugin-kit": { 545 | "version": "0.2.4", 546 | "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.4.tgz", 547 | "integrity": "sha512-zSkKow6H5Kdm0ZUQUB2kV5JIXqoG0+uH5YADhaEHswm664N9Db8dXSi0nMJpacpMf+MyyglF1vnZohpEg5yUtg==", 548 | "dev": true, 549 | "dependencies": { 550 | "levn": "^0.4.1" 551 | }, 552 | "engines": { 553 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 554 | } 555 | }, 556 | "node_modules/@humanfs/core": { 557 | "version": "0.19.1", 558 | "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", 559 | "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", 560 | "dev": true, 561 | "engines": { 562 | "node": ">=18.18.0" 563 | } 564 | }, 565 | "node_modules/@humanfs/node": { 566 | "version": "0.16.6", 567 | "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", 568 | "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", 569 | "dev": true, 570 | "dependencies": { 571 | "@humanfs/core": "^0.19.1", 572 | "@humanwhocodes/retry": "^0.3.0" 573 | }, 574 | "engines": { 575 | "node": ">=18.18.0" 576 | } 577 | }, 578 | "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { 579 | "version": "0.3.1", 580 | "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", 581 | "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", 582 | "dev": true, 583 | "engines": { 584 | "node": ">=18.18" 585 | }, 586 | "funding": { 587 | "type": "github", 588 | "url": "https://github.com/sponsors/nzakas" 589 | } 590 | }, 591 | "node_modules/@humanwhocodes/module-importer": { 592 | "version": "1.0.1", 593 | "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", 594 | "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", 595 | "dev": true, 596 | "engines": { 597 | "node": ">=12.22" 598 | }, 599 | "funding": { 600 | "type": "github", 601 | "url": "https://github.com/sponsors/nzakas" 602 | } 603 | }, 604 | "node_modules/@humanwhocodes/retry": { 605 | "version": "0.4.1", 606 | "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.1.tgz", 607 | "integrity": "sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==", 608 | "dev": true, 609 | "engines": { 610 | "node": ">=18.18" 611 | }, 612 | "funding": { 613 | "type": "github", 614 | "url": "https://github.com/sponsors/nzakas" 615 | } 616 | }, 617 | "node_modules/@isaacs/cliui": { 618 | "version": "8.0.2", 619 | "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", 620 | "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", 621 | "dev": true, 622 | "dependencies": { 623 | "string-width": "^5.1.2", 624 | "string-width-cjs": "npm:string-width@^4.2.0", 625 | "strip-ansi": "^7.0.1", 626 | "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", 627 | "wrap-ansi": "^8.1.0", 628 | "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" 629 | }, 630 | "engines": { 631 | "node": ">=12" 632 | } 633 | }, 634 | "node_modules/@isaacs/cliui/node_modules/ansi-regex": { 635 | "version": "6.1.0", 636 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", 637 | "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", 638 | "dev": true, 639 | "engines": { 640 | "node": ">=12" 641 | }, 642 | "funding": { 643 | "url": "https://github.com/chalk/ansi-regex?sponsor=1" 644 | } 645 | }, 646 | "node_modules/@isaacs/cliui/node_modules/strip-ansi": { 647 | "version": "7.1.0", 648 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", 649 | "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", 650 | "dev": true, 651 | "dependencies": { 652 | "ansi-regex": "^6.0.1" 653 | }, 654 | "engines": { 655 | "node": ">=12" 656 | }, 657 | "funding": { 658 | "url": "https://github.com/chalk/strip-ansi?sponsor=1" 659 | } 660 | }, 661 | "node_modules/@jridgewell/gen-mapping": { 662 | "version": "0.3.5", 663 | "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", 664 | "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", 665 | "dev": true, 666 | "dependencies": { 667 | "@jridgewell/set-array": "^1.2.1", 668 | "@jridgewell/sourcemap-codec": "^1.4.10", 669 | "@jridgewell/trace-mapping": "^0.3.24" 670 | }, 671 | "engines": { 672 | "node": ">=6.0.0" 673 | } 674 | }, 675 | "node_modules/@jridgewell/resolve-uri": { 676 | "version": "3.1.2", 677 | "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", 678 | "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", 679 | "dev": true, 680 | "engines": { 681 | "node": ">=6.0.0" 682 | } 683 | }, 684 | "node_modules/@jridgewell/set-array": { 685 | "version": "1.2.1", 686 | "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", 687 | "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", 688 | "dev": true, 689 | "engines": { 690 | "node": ">=6.0.0" 691 | } 692 | }, 693 | "node_modules/@jridgewell/sourcemap-codec": { 694 | "version": "1.5.0", 695 | "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", 696 | "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", 697 | "dev": true 698 | }, 699 | "node_modules/@jridgewell/trace-mapping": { 700 | "version": "0.3.25", 701 | "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", 702 | "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", 703 | "dev": true, 704 | "dependencies": { 705 | "@jridgewell/resolve-uri": "^3.1.0", 706 | "@jridgewell/sourcemap-codec": "^1.4.14" 707 | } 708 | }, 709 | "node_modules/@nodelib/fs.scandir": { 710 | "version": "2.1.5", 711 | "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", 712 | "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", 713 | "dev": true, 714 | "dependencies": { 715 | "@nodelib/fs.stat": "2.0.5", 716 | "run-parallel": "^1.1.9" 717 | }, 718 | "engines": { 719 | "node": ">= 8" 720 | } 721 | }, 722 | "node_modules/@nodelib/fs.stat": { 723 | "version": "2.0.5", 724 | "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", 725 | "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", 726 | "dev": true, 727 | "engines": { 728 | "node": ">= 8" 729 | } 730 | }, 731 | "node_modules/@nodelib/fs.walk": { 732 | "version": "1.2.8", 733 | "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", 734 | "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", 735 | "dev": true, 736 | "dependencies": { 737 | "@nodelib/fs.scandir": "2.1.5", 738 | "fastq": "^1.6.0" 739 | }, 740 | "engines": { 741 | "node": ">= 8" 742 | } 743 | }, 744 | "node_modules/@pkgjs/parseargs": { 745 | "version": "0.11.0", 746 | "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", 747 | "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", 748 | "dev": true, 749 | "optional": true, 750 | "engines": { 751 | "node": ">=14" 752 | } 753 | }, 754 | "node_modules/@rollup/rollup-android-arm-eabi": { 755 | "version": "4.22.4", 756 | "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.22.4.tgz", 757 | "integrity": "sha512-Fxamp4aEZnfPOcGA8KSNEohV8hX7zVHOemC8jVBoBUHu5zpJK/Eu3uJwt6BMgy9fkvzxDaurgj96F/NiLukF2w==", 758 | "cpu": [ 759 | "arm" 760 | ], 761 | "dev": true, 762 | "optional": true, 763 | "os": [ 764 | "android" 765 | ] 766 | }, 767 | "node_modules/@rollup/rollup-android-arm64": { 768 | "version": "4.22.4", 769 | "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.22.4.tgz", 770 | "integrity": "sha512-VXoK5UMrgECLYaMuGuVTOx5kcuap1Jm8g/M83RnCHBKOqvPPmROFJGQaZhGccnsFtfXQ3XYa4/jMCJvZnbJBdA==", 771 | "cpu": [ 772 | "arm64" 773 | ], 774 | "dev": true, 775 | "optional": true, 776 | "os": [ 777 | "android" 778 | ] 779 | }, 780 | "node_modules/@rollup/rollup-darwin-arm64": { 781 | "version": "4.22.4", 782 | "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.22.4.tgz", 783 | "integrity": "sha512-xMM9ORBqu81jyMKCDP+SZDhnX2QEVQzTcC6G18KlTQEzWK8r/oNZtKuZaCcHhnsa6fEeOBionoyl5JsAbE/36Q==", 784 | "cpu": [ 785 | "arm64" 786 | ], 787 | "dev": true, 788 | "optional": true, 789 | "os": [ 790 | "darwin" 791 | ] 792 | }, 793 | "node_modules/@rollup/rollup-darwin-x64": { 794 | "version": "4.22.4", 795 | "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.22.4.tgz", 796 | "integrity": "sha512-aJJyYKQwbHuhTUrjWjxEvGnNNBCnmpHDvrb8JFDbeSH3m2XdHcxDd3jthAzvmoI8w/kSjd2y0udT+4okADsZIw==", 797 | "cpu": [ 798 | "x64" 799 | ], 800 | "dev": true, 801 | "optional": true, 802 | "os": [ 803 | "darwin" 804 | ] 805 | }, 806 | "node_modules/@rollup/rollup-linux-arm-gnueabihf": { 807 | "version": "4.22.4", 808 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.22.4.tgz", 809 | "integrity": "sha512-j63YtCIRAzbO+gC2L9dWXRh5BFetsv0j0va0Wi9epXDgU/XUi5dJKo4USTttVyK7fGw2nPWK0PbAvyliz50SCQ==", 810 | "cpu": [ 811 | "arm" 812 | ], 813 | "dev": true, 814 | "optional": true, 815 | "os": [ 816 | "linux" 817 | ] 818 | }, 819 | "node_modules/@rollup/rollup-linux-arm-musleabihf": { 820 | "version": "4.22.4", 821 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.22.4.tgz", 822 | "integrity": "sha512-dJnWUgwWBX1YBRsuKKMOlXCzh2Wu1mlHzv20TpqEsfdZLb3WoJW2kIEsGwLkroYf24IrPAvOT/ZQ2OYMV6vlrg==", 823 | "cpu": [ 824 | "arm" 825 | ], 826 | "dev": true, 827 | "optional": true, 828 | "os": [ 829 | "linux" 830 | ] 831 | }, 832 | "node_modules/@rollup/rollup-linux-arm64-gnu": { 833 | "version": "4.22.4", 834 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.22.4.tgz", 835 | "integrity": "sha512-AdPRoNi3NKVLolCN/Sp4F4N1d98c4SBnHMKoLuiG6RXgoZ4sllseuGioszumnPGmPM2O7qaAX/IJdeDU8f26Aw==", 836 | "cpu": [ 837 | "arm64" 838 | ], 839 | "dev": true, 840 | "optional": true, 841 | "os": [ 842 | "linux" 843 | ] 844 | }, 845 | "node_modules/@rollup/rollup-linux-arm64-musl": { 846 | "version": "4.22.4", 847 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.22.4.tgz", 848 | "integrity": "sha512-Gl0AxBtDg8uoAn5CCqQDMqAx22Wx22pjDOjBdmG0VIWX3qUBHzYmOKh8KXHL4UpogfJ14G4wk16EQogF+v8hmA==", 849 | "cpu": [ 850 | "arm64" 851 | ], 852 | "dev": true, 853 | "optional": true, 854 | "os": [ 855 | "linux" 856 | ] 857 | }, 858 | "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { 859 | "version": "4.22.4", 860 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.22.4.tgz", 861 | "integrity": "sha512-3aVCK9xfWW1oGQpTsYJJPF6bfpWfhbRnhdlyhak2ZiyFLDaayz0EP5j9V1RVLAAxlmWKTDfS9wyRyY3hvhPoOg==", 862 | "cpu": [ 863 | "ppc64" 864 | ], 865 | "dev": true, 866 | "optional": true, 867 | "os": [ 868 | "linux" 869 | ] 870 | }, 871 | "node_modules/@rollup/rollup-linux-riscv64-gnu": { 872 | "version": "4.22.4", 873 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.22.4.tgz", 874 | "integrity": "sha512-ePYIir6VYnhgv2C5Xe9u+ico4t8sZWXschR6fMgoPUK31yQu7hTEJb7bCqivHECwIClJfKgE7zYsh1qTP3WHUA==", 875 | "cpu": [ 876 | "riscv64" 877 | ], 878 | "dev": true, 879 | "optional": true, 880 | "os": [ 881 | "linux" 882 | ] 883 | }, 884 | "node_modules/@rollup/rollup-linux-s390x-gnu": { 885 | "version": "4.22.4", 886 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.22.4.tgz", 887 | "integrity": "sha512-GqFJ9wLlbB9daxhVlrTe61vJtEY99/xB3C8e4ULVsVfflcpmR6c8UZXjtkMA6FhNONhj2eA5Tk9uAVw5orEs4Q==", 888 | "cpu": [ 889 | "s390x" 890 | ], 891 | "dev": true, 892 | "optional": true, 893 | "os": [ 894 | "linux" 895 | ] 896 | }, 897 | "node_modules/@rollup/rollup-linux-x64-gnu": { 898 | "version": "4.22.4", 899 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.22.4.tgz", 900 | "integrity": "sha512-87v0ol2sH9GE3cLQLNEy0K/R0pz1nvg76o8M5nhMR0+Q+BBGLnb35P0fVz4CQxHYXaAOhE8HhlkaZfsdUOlHwg==", 901 | "cpu": [ 902 | "x64" 903 | ], 904 | "dev": true, 905 | "optional": true, 906 | "os": [ 907 | "linux" 908 | ] 909 | }, 910 | "node_modules/@rollup/rollup-linux-x64-musl": { 911 | "version": "4.22.4", 912 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.22.4.tgz", 913 | "integrity": "sha512-UV6FZMUgePDZrFjrNGIWzDo/vABebuXBhJEqrHxrGiU6HikPy0Z3LfdtciIttEUQfuDdCn8fqh7wiFJjCNwO+g==", 914 | "cpu": [ 915 | "x64" 916 | ], 917 | "dev": true, 918 | "optional": true, 919 | "os": [ 920 | "linux" 921 | ] 922 | }, 923 | "node_modules/@rollup/rollup-win32-arm64-msvc": { 924 | "version": "4.22.4", 925 | "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.22.4.tgz", 926 | "integrity": "sha512-BjI+NVVEGAXjGWYHz/vv0pBqfGoUH0IGZ0cICTn7kB9PyjrATSkX+8WkguNjWoj2qSr1im/+tTGRaY+4/PdcQw==", 927 | "cpu": [ 928 | "arm64" 929 | ], 930 | "dev": true, 931 | "optional": true, 932 | "os": [ 933 | "win32" 934 | ] 935 | }, 936 | "node_modules/@rollup/rollup-win32-ia32-msvc": { 937 | "version": "4.22.4", 938 | "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.22.4.tgz", 939 | "integrity": "sha512-SiWG/1TuUdPvYmzmYnmd3IEifzR61Tragkbx9D3+R8mzQqDBz8v+BvZNDlkiTtI9T15KYZhP0ehn3Dld4n9J5g==", 940 | "cpu": [ 941 | "ia32" 942 | ], 943 | "dev": true, 944 | "optional": true, 945 | "os": [ 946 | "win32" 947 | ] 948 | }, 949 | "node_modules/@rollup/rollup-win32-x64-msvc": { 950 | "version": "4.22.4", 951 | "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.22.4.tgz", 952 | "integrity": "sha512-j8pPKp53/lq9lMXN57S8cFz0MynJk8OWNuUnXct/9KCpKU7DgU3bYMJhwWmcqC0UU29p8Lr0/7KEVcaM6bf47Q==", 953 | "cpu": [ 954 | "x64" 955 | ], 956 | "dev": true, 957 | "optional": true, 958 | "os": [ 959 | "win32" 960 | ] 961 | }, 962 | "node_modules/@turbowarp/types": { 963 | "version": "0.0.12", 964 | "resolved": "https://registry.npmjs.org/@turbowarp/types/-/types-0.0.12.tgz", 965 | "integrity": "sha512-VhYdLDyk3ZgCnGb0xN0x0sj4SXsiYknnA/b1UzJlK1EVzK8gO4c+BQg0famYUVIgfS93eBbgRTXP0EyEz0zu/Q==", 966 | "dev": true 967 | }, 968 | "node_modules/@types/estree": { 969 | "version": "1.0.5", 970 | "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", 971 | "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", 972 | "dev": true 973 | }, 974 | "node_modules/@types/json-schema": { 975 | "version": "7.0.15", 976 | "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", 977 | "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", 978 | "dev": true 979 | }, 980 | "node_modules/@typescript-eslint/eslint-plugin": { 981 | "version": "8.19.1", 982 | "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.19.1.tgz", 983 | "integrity": "sha512-tJzcVyvvb9h/PB96g30MpxACd9IrunT7GF9wfA9/0TJ1LxGOJx1TdPzSbBBnNED7K9Ka8ybJsnEpiXPktolTLg==", 984 | "dev": true, 985 | "dependencies": { 986 | "@eslint-community/regexpp": "^4.10.0", 987 | "@typescript-eslint/scope-manager": "8.19.1", 988 | "@typescript-eslint/type-utils": "8.19.1", 989 | "@typescript-eslint/utils": "8.19.1", 990 | "@typescript-eslint/visitor-keys": "8.19.1", 991 | "graphemer": "^1.4.0", 992 | "ignore": "^5.3.1", 993 | "natural-compare": "^1.4.0", 994 | "ts-api-utils": "^2.0.0" 995 | }, 996 | "engines": { 997 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 998 | }, 999 | "funding": { 1000 | "type": "opencollective", 1001 | "url": "https://opencollective.com/typescript-eslint" 1002 | }, 1003 | "peerDependencies": { 1004 | "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", 1005 | "eslint": "^8.57.0 || ^9.0.0", 1006 | "typescript": ">=4.8.4 <5.8.0" 1007 | } 1008 | }, 1009 | "node_modules/@typescript-eslint/parser": { 1010 | "version": "8.19.1", 1011 | "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.19.1.tgz", 1012 | "integrity": "sha512-67gbfv8rAwawjYx3fYArwldTQKoYfezNUT4D5ioWetr/xCrxXxvleo3uuiFuKfejipvq+og7mjz3b0G2bVyUCw==", 1013 | "dev": true, 1014 | "dependencies": { 1015 | "@typescript-eslint/scope-manager": "8.19.1", 1016 | "@typescript-eslint/types": "8.19.1", 1017 | "@typescript-eslint/typescript-estree": "8.19.1", 1018 | "@typescript-eslint/visitor-keys": "8.19.1", 1019 | "debug": "^4.3.4" 1020 | }, 1021 | "engines": { 1022 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1023 | }, 1024 | "funding": { 1025 | "type": "opencollective", 1026 | "url": "https://opencollective.com/typescript-eslint" 1027 | }, 1028 | "peerDependencies": { 1029 | "eslint": "^8.57.0 || ^9.0.0", 1030 | "typescript": ">=4.8.4 <5.8.0" 1031 | } 1032 | }, 1033 | "node_modules/@typescript-eslint/scope-manager": { 1034 | "version": "8.19.1", 1035 | "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.19.1.tgz", 1036 | "integrity": "sha512-60L9KIuN/xgmsINzonOcMDSB8p82h95hoBfSBtXuO4jlR1R9L1xSkmVZKgCPVfavDlXihh4ARNjXhh1gGnLC7Q==", 1037 | "dev": true, 1038 | "dependencies": { 1039 | "@typescript-eslint/types": "8.19.1", 1040 | "@typescript-eslint/visitor-keys": "8.19.1" 1041 | }, 1042 | "engines": { 1043 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1044 | }, 1045 | "funding": { 1046 | "type": "opencollective", 1047 | "url": "https://opencollective.com/typescript-eslint" 1048 | } 1049 | }, 1050 | "node_modules/@typescript-eslint/type-utils": { 1051 | "version": "8.19.1", 1052 | "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.19.1.tgz", 1053 | "integrity": "sha512-Rp7k9lhDKBMRJB/nM9Ksp1zs4796wVNyihG9/TU9R6KCJDNkQbc2EOKjrBtLYh3396ZdpXLtr/MkaSEmNMtykw==", 1054 | "dev": true, 1055 | "dependencies": { 1056 | "@typescript-eslint/typescript-estree": "8.19.1", 1057 | "@typescript-eslint/utils": "8.19.1", 1058 | "debug": "^4.3.4", 1059 | "ts-api-utils": "^2.0.0" 1060 | }, 1061 | "engines": { 1062 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1063 | }, 1064 | "funding": { 1065 | "type": "opencollective", 1066 | "url": "https://opencollective.com/typescript-eslint" 1067 | }, 1068 | "peerDependencies": { 1069 | "eslint": "^8.57.0 || ^9.0.0", 1070 | "typescript": ">=4.8.4 <5.8.0" 1071 | } 1072 | }, 1073 | "node_modules/@typescript-eslint/types": { 1074 | "version": "8.19.1", 1075 | "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.19.1.tgz", 1076 | "integrity": "sha512-JBVHMLj7B1K1v1051ZaMMgLW4Q/jre5qGK0Ew6UgXz1Rqh+/xPzV1aW581OM00X6iOfyr1be+QyW8LOUf19BbA==", 1077 | "dev": true, 1078 | "engines": { 1079 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1080 | }, 1081 | "funding": { 1082 | "type": "opencollective", 1083 | "url": "https://opencollective.com/typescript-eslint" 1084 | } 1085 | }, 1086 | "node_modules/@typescript-eslint/typescript-estree": { 1087 | "version": "8.19.1", 1088 | "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.19.1.tgz", 1089 | "integrity": "sha512-jk/TZwSMJlxlNnqhy0Eod1PNEvCkpY6MXOXE/WLlblZ6ibb32i2We4uByoKPv1d0OD2xebDv4hbs3fm11SMw8Q==", 1090 | "dev": true, 1091 | "dependencies": { 1092 | "@typescript-eslint/types": "8.19.1", 1093 | "@typescript-eslint/visitor-keys": "8.19.1", 1094 | "debug": "^4.3.4", 1095 | "fast-glob": "^3.3.2", 1096 | "is-glob": "^4.0.3", 1097 | "minimatch": "^9.0.4", 1098 | "semver": "^7.6.0", 1099 | "ts-api-utils": "^2.0.0" 1100 | }, 1101 | "engines": { 1102 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1103 | }, 1104 | "funding": { 1105 | "type": "opencollective", 1106 | "url": "https://opencollective.com/typescript-eslint" 1107 | }, 1108 | "peerDependencies": { 1109 | "typescript": ">=4.8.4 <5.8.0" 1110 | } 1111 | }, 1112 | "node_modules/@typescript-eslint/utils": { 1113 | "version": "8.19.1", 1114 | "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.19.1.tgz", 1115 | "integrity": "sha512-IxG5gLO0Ne+KaUc8iW1A+XuKLd63o4wlbI1Zp692n1xojCl/THvgIKXJXBZixTh5dd5+yTJ/VXH7GJaaw21qXA==", 1116 | "dev": true, 1117 | "dependencies": { 1118 | "@eslint-community/eslint-utils": "^4.4.0", 1119 | "@typescript-eslint/scope-manager": "8.19.1", 1120 | "@typescript-eslint/types": "8.19.1", 1121 | "@typescript-eslint/typescript-estree": "8.19.1" 1122 | }, 1123 | "engines": { 1124 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1125 | }, 1126 | "funding": { 1127 | "type": "opencollective", 1128 | "url": "https://opencollective.com/typescript-eslint" 1129 | }, 1130 | "peerDependencies": { 1131 | "eslint": "^8.57.0 || ^9.0.0", 1132 | "typescript": ">=4.8.4 <5.8.0" 1133 | } 1134 | }, 1135 | "node_modules/@typescript-eslint/visitor-keys": { 1136 | "version": "8.19.1", 1137 | "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.19.1.tgz", 1138 | "integrity": "sha512-fzmjU8CHK853V/avYZAvuVut3ZTfwN5YtMaoi+X9Y9MA9keaWNHC3zEQ9zvyX/7Hj+5JkNyK1l7TOR2hevHB6Q==", 1139 | "dev": true, 1140 | "dependencies": { 1141 | "@typescript-eslint/types": "8.19.1", 1142 | "eslint-visitor-keys": "^4.2.0" 1143 | }, 1144 | "engines": { 1145 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1146 | }, 1147 | "funding": { 1148 | "type": "opencollective", 1149 | "url": "https://opencollective.com/typescript-eslint" 1150 | } 1151 | }, 1152 | "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { 1153 | "version": "4.2.0", 1154 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", 1155 | "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", 1156 | "dev": true, 1157 | "engines": { 1158 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1159 | }, 1160 | "funding": { 1161 | "url": "https://opencollective.com/eslint" 1162 | } 1163 | }, 1164 | "node_modules/acorn": { 1165 | "version": "8.14.0", 1166 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", 1167 | "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", 1168 | "dev": true, 1169 | "bin": { 1170 | "acorn": "bin/acorn" 1171 | }, 1172 | "engines": { 1173 | "node": ">=0.4.0" 1174 | } 1175 | }, 1176 | "node_modules/acorn-jsx": { 1177 | "version": "5.3.2", 1178 | "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", 1179 | "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", 1180 | "dev": true, 1181 | "peerDependencies": { 1182 | "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" 1183 | } 1184 | }, 1185 | "node_modules/ajv": { 1186 | "version": "6.12.6", 1187 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", 1188 | "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", 1189 | "dev": true, 1190 | "dependencies": { 1191 | "fast-deep-equal": "^3.1.1", 1192 | "fast-json-stable-stringify": "^2.0.0", 1193 | "json-schema-traverse": "^0.4.1", 1194 | "uri-js": "^4.2.2" 1195 | }, 1196 | "funding": { 1197 | "type": "github", 1198 | "url": "https://github.com/sponsors/epoberezkin" 1199 | } 1200 | }, 1201 | "node_modules/ansi-regex": { 1202 | "version": "5.0.1", 1203 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", 1204 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", 1205 | "dev": true, 1206 | "engines": { 1207 | "node": ">=8" 1208 | } 1209 | }, 1210 | "node_modules/ansi-styles": { 1211 | "version": "4.3.0", 1212 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 1213 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 1214 | "dev": true, 1215 | "dependencies": { 1216 | "color-convert": "^2.0.1" 1217 | }, 1218 | "engines": { 1219 | "node": ">=8" 1220 | }, 1221 | "funding": { 1222 | "url": "https://github.com/chalk/ansi-styles?sponsor=1" 1223 | } 1224 | }, 1225 | "node_modules/any-promise": { 1226 | "version": "1.3.0", 1227 | "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", 1228 | "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", 1229 | "dev": true 1230 | }, 1231 | "node_modules/anymatch": { 1232 | "version": "3.1.3", 1233 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", 1234 | "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", 1235 | "dev": true, 1236 | "dependencies": { 1237 | "normalize-path": "^3.0.0", 1238 | "picomatch": "^2.0.4" 1239 | }, 1240 | "engines": { 1241 | "node": ">= 8" 1242 | } 1243 | }, 1244 | "node_modules/argparse": { 1245 | "version": "2.0.1", 1246 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", 1247 | "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", 1248 | "dev": true 1249 | }, 1250 | "node_modules/async": { 1251 | "version": "2.6.4", 1252 | "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", 1253 | "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", 1254 | "dev": true, 1255 | "dependencies": { 1256 | "lodash": "^4.17.14" 1257 | } 1258 | }, 1259 | "node_modules/balanced-match": { 1260 | "version": "1.0.2", 1261 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", 1262 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", 1263 | "dev": true 1264 | }, 1265 | "node_modules/basic-auth": { 1266 | "version": "2.0.1", 1267 | "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", 1268 | "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", 1269 | "dev": true, 1270 | "dependencies": { 1271 | "safe-buffer": "5.1.2" 1272 | }, 1273 | "engines": { 1274 | "node": ">= 0.8" 1275 | } 1276 | }, 1277 | "node_modules/binary-extensions": { 1278 | "version": "2.3.0", 1279 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", 1280 | "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", 1281 | "dev": true, 1282 | "engines": { 1283 | "node": ">=8" 1284 | }, 1285 | "funding": { 1286 | "url": "https://github.com/sponsors/sindresorhus" 1287 | } 1288 | }, 1289 | "node_modules/brace-expansion": { 1290 | "version": "2.0.1", 1291 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", 1292 | "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", 1293 | "dev": true, 1294 | "dependencies": { 1295 | "balanced-match": "^1.0.0" 1296 | } 1297 | }, 1298 | "node_modules/braces": { 1299 | "version": "3.0.3", 1300 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", 1301 | "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", 1302 | "dev": true, 1303 | "dependencies": { 1304 | "fill-range": "^7.1.1" 1305 | }, 1306 | "engines": { 1307 | "node": ">=8" 1308 | } 1309 | }, 1310 | "node_modules/bundle-require": { 1311 | "version": "5.0.0", 1312 | "resolved": "https://registry.npmjs.org/bundle-require/-/bundle-require-5.0.0.tgz", 1313 | "integrity": "sha512-GuziW3fSSmopcx4KRymQEJVbZUfqlCqcq7dvs6TYwKRZiegK/2buMxQTPs6MGlNv50wms1699qYO54R8XfRX4w==", 1314 | "dev": true, 1315 | "dependencies": { 1316 | "load-tsconfig": "^0.2.3" 1317 | }, 1318 | "engines": { 1319 | "node": "^12.20.0 || ^14.13.1 || >=16.0.0" 1320 | }, 1321 | "peerDependencies": { 1322 | "esbuild": ">=0.18" 1323 | } 1324 | }, 1325 | "node_modules/cac": { 1326 | "version": "6.7.14", 1327 | "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", 1328 | "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", 1329 | "dev": true, 1330 | "engines": { 1331 | "node": ">=8" 1332 | } 1333 | }, 1334 | "node_modules/call-bind": { 1335 | "version": "1.0.7", 1336 | "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", 1337 | "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", 1338 | "dev": true, 1339 | "dependencies": { 1340 | "es-define-property": "^1.0.0", 1341 | "es-errors": "^1.3.0", 1342 | "function-bind": "^1.1.2", 1343 | "get-intrinsic": "^1.2.4", 1344 | "set-function-length": "^1.2.1" 1345 | }, 1346 | "engines": { 1347 | "node": ">= 0.4" 1348 | }, 1349 | "funding": { 1350 | "url": "https://github.com/sponsors/ljharb" 1351 | } 1352 | }, 1353 | "node_modules/callsites": { 1354 | "version": "3.1.0", 1355 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", 1356 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", 1357 | "dev": true, 1358 | "engines": { 1359 | "node": ">=6" 1360 | } 1361 | }, 1362 | "node_modules/chalk": { 1363 | "version": "4.1.2", 1364 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", 1365 | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", 1366 | "dev": true, 1367 | "dependencies": { 1368 | "ansi-styles": "^4.1.0", 1369 | "supports-color": "^7.1.0" 1370 | }, 1371 | "engines": { 1372 | "node": ">=10" 1373 | }, 1374 | "funding": { 1375 | "url": "https://github.com/chalk/chalk?sponsor=1" 1376 | } 1377 | }, 1378 | "node_modules/chokidar": { 1379 | "version": "3.6.0", 1380 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", 1381 | "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", 1382 | "dev": true, 1383 | "dependencies": { 1384 | "anymatch": "~3.1.2", 1385 | "braces": "~3.0.2", 1386 | "glob-parent": "~5.1.2", 1387 | "is-binary-path": "~2.1.0", 1388 | "is-glob": "~4.0.1", 1389 | "normalize-path": "~3.0.0", 1390 | "readdirp": "~3.6.0" 1391 | }, 1392 | "engines": { 1393 | "node": ">= 8.10.0" 1394 | }, 1395 | "funding": { 1396 | "url": "https://paulmillr.com/funding/" 1397 | }, 1398 | "optionalDependencies": { 1399 | "fsevents": "~2.3.2" 1400 | } 1401 | }, 1402 | "node_modules/chokidar/node_modules/glob-parent": { 1403 | "version": "5.1.2", 1404 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 1405 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 1406 | "dev": true, 1407 | "dependencies": { 1408 | "is-glob": "^4.0.1" 1409 | }, 1410 | "engines": { 1411 | "node": ">= 6" 1412 | } 1413 | }, 1414 | "node_modules/color-convert": { 1415 | "version": "2.0.1", 1416 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 1417 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 1418 | "dev": true, 1419 | "dependencies": { 1420 | "color-name": "~1.1.4" 1421 | }, 1422 | "engines": { 1423 | "node": ">=7.0.0" 1424 | } 1425 | }, 1426 | "node_modules/color-name": { 1427 | "version": "1.1.4", 1428 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 1429 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 1430 | "dev": true 1431 | }, 1432 | "node_modules/commander": { 1433 | "version": "4.1.1", 1434 | "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", 1435 | "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", 1436 | "dev": true, 1437 | "engines": { 1438 | "node": ">= 6" 1439 | } 1440 | }, 1441 | "node_modules/concat-map": { 1442 | "version": "0.0.1", 1443 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 1444 | "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", 1445 | "dev": true 1446 | }, 1447 | "node_modules/consola": { 1448 | "version": "3.2.3", 1449 | "resolved": "https://registry.npmjs.org/consola/-/consola-3.2.3.tgz", 1450 | "integrity": "sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==", 1451 | "dev": true, 1452 | "engines": { 1453 | "node": "^14.18.0 || >=16.10.0" 1454 | } 1455 | }, 1456 | "node_modules/corser": { 1457 | "version": "2.0.1", 1458 | "resolved": "https://registry.npmjs.org/corser/-/corser-2.0.1.tgz", 1459 | "integrity": "sha512-utCYNzRSQIZNPIcGZdQc92UVJYAhtGAteCFg0yRaFm8f0P+CPtyGyHXJcGXnffjCybUCEx3FQ2G7U3/o9eIkVQ==", 1460 | "dev": true, 1461 | "engines": { 1462 | "node": ">= 0.4.0" 1463 | } 1464 | }, 1465 | "node_modules/cross-spawn": { 1466 | "version": "7.0.6", 1467 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", 1468 | "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", 1469 | "dev": true, 1470 | "dependencies": { 1471 | "path-key": "^3.1.0", 1472 | "shebang-command": "^2.0.0", 1473 | "which": "^2.0.1" 1474 | }, 1475 | "engines": { 1476 | "node": ">= 8" 1477 | } 1478 | }, 1479 | "node_modules/debug": { 1480 | "version": "4.3.7", 1481 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", 1482 | "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", 1483 | "dev": true, 1484 | "dependencies": { 1485 | "ms": "^2.1.3" 1486 | }, 1487 | "engines": { 1488 | "node": ">=6.0" 1489 | }, 1490 | "peerDependenciesMeta": { 1491 | "supports-color": { 1492 | "optional": true 1493 | } 1494 | } 1495 | }, 1496 | "node_modules/deep-is": { 1497 | "version": "0.1.4", 1498 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", 1499 | "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", 1500 | "dev": true 1501 | }, 1502 | "node_modules/define-data-property": { 1503 | "version": "1.1.4", 1504 | "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", 1505 | "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", 1506 | "dev": true, 1507 | "dependencies": { 1508 | "es-define-property": "^1.0.0", 1509 | "es-errors": "^1.3.0", 1510 | "gopd": "^1.0.1" 1511 | }, 1512 | "engines": { 1513 | "node": ">= 0.4" 1514 | }, 1515 | "funding": { 1516 | "url": "https://github.com/sponsors/ljharb" 1517 | } 1518 | }, 1519 | "node_modules/eastasianwidth": { 1520 | "version": "0.2.0", 1521 | "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", 1522 | "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", 1523 | "dev": true 1524 | }, 1525 | "node_modules/emoji-regex": { 1526 | "version": "9.2.2", 1527 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", 1528 | "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", 1529 | "dev": true 1530 | }, 1531 | "node_modules/es-define-property": { 1532 | "version": "1.0.0", 1533 | "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", 1534 | "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", 1535 | "dev": true, 1536 | "dependencies": { 1537 | "get-intrinsic": "^1.2.4" 1538 | }, 1539 | "engines": { 1540 | "node": ">= 0.4" 1541 | } 1542 | }, 1543 | "node_modules/es-errors": { 1544 | "version": "1.3.0", 1545 | "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", 1546 | "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", 1547 | "dev": true, 1548 | "engines": { 1549 | "node": ">= 0.4" 1550 | } 1551 | }, 1552 | "node_modules/esbuild": { 1553 | "version": "0.23.1", 1554 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.23.1.tgz", 1555 | "integrity": "sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==", 1556 | "dev": true, 1557 | "hasInstallScript": true, 1558 | "bin": { 1559 | "esbuild": "bin/esbuild" 1560 | }, 1561 | "engines": { 1562 | "node": ">=18" 1563 | }, 1564 | "optionalDependencies": { 1565 | "@esbuild/aix-ppc64": "0.23.1", 1566 | "@esbuild/android-arm": "0.23.1", 1567 | "@esbuild/android-arm64": "0.23.1", 1568 | "@esbuild/android-x64": "0.23.1", 1569 | "@esbuild/darwin-arm64": "0.23.1", 1570 | "@esbuild/darwin-x64": "0.23.1", 1571 | "@esbuild/freebsd-arm64": "0.23.1", 1572 | "@esbuild/freebsd-x64": "0.23.1", 1573 | "@esbuild/linux-arm": "0.23.1", 1574 | "@esbuild/linux-arm64": "0.23.1", 1575 | "@esbuild/linux-ia32": "0.23.1", 1576 | "@esbuild/linux-loong64": "0.23.1", 1577 | "@esbuild/linux-mips64el": "0.23.1", 1578 | "@esbuild/linux-ppc64": "0.23.1", 1579 | "@esbuild/linux-riscv64": "0.23.1", 1580 | "@esbuild/linux-s390x": "0.23.1", 1581 | "@esbuild/linux-x64": "0.23.1", 1582 | "@esbuild/netbsd-x64": "0.23.1", 1583 | "@esbuild/openbsd-arm64": "0.23.1", 1584 | "@esbuild/openbsd-x64": "0.23.1", 1585 | "@esbuild/sunos-x64": "0.23.1", 1586 | "@esbuild/win32-arm64": "0.23.1", 1587 | "@esbuild/win32-ia32": "0.23.1", 1588 | "@esbuild/win32-x64": "0.23.1" 1589 | } 1590 | }, 1591 | "node_modules/escape-string-regexp": { 1592 | "version": "4.0.0", 1593 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", 1594 | "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", 1595 | "dev": true, 1596 | "engines": { 1597 | "node": ">=10" 1598 | }, 1599 | "funding": { 1600 | "url": "https://github.com/sponsors/sindresorhus" 1601 | } 1602 | }, 1603 | "node_modules/eslint": { 1604 | "version": "9.17.0", 1605 | "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.17.0.tgz", 1606 | "integrity": "sha512-evtlNcpJg+cZLcnVKwsai8fExnqjGPicK7gnUtlNuzu+Fv9bI0aLpND5T44VLQtoMEnI57LoXO9XAkIXwohKrA==", 1607 | "dev": true, 1608 | "dependencies": { 1609 | "@eslint-community/eslint-utils": "^4.2.0", 1610 | "@eslint-community/regexpp": "^4.12.1", 1611 | "@eslint/config-array": "^0.19.0", 1612 | "@eslint/core": "^0.9.0", 1613 | "@eslint/eslintrc": "^3.2.0", 1614 | "@eslint/js": "9.17.0", 1615 | "@eslint/plugin-kit": "^0.2.3", 1616 | "@humanfs/node": "^0.16.6", 1617 | "@humanwhocodes/module-importer": "^1.0.1", 1618 | "@humanwhocodes/retry": "^0.4.1", 1619 | "@types/estree": "^1.0.6", 1620 | "@types/json-schema": "^7.0.15", 1621 | "ajv": "^6.12.4", 1622 | "chalk": "^4.0.0", 1623 | "cross-spawn": "^7.0.6", 1624 | "debug": "^4.3.2", 1625 | "escape-string-regexp": "^4.0.0", 1626 | "eslint-scope": "^8.2.0", 1627 | "eslint-visitor-keys": "^4.2.0", 1628 | "espree": "^10.3.0", 1629 | "esquery": "^1.5.0", 1630 | "esutils": "^2.0.2", 1631 | "fast-deep-equal": "^3.1.3", 1632 | "file-entry-cache": "^8.0.0", 1633 | "find-up": "^5.0.0", 1634 | "glob-parent": "^6.0.2", 1635 | "ignore": "^5.2.0", 1636 | "imurmurhash": "^0.1.4", 1637 | "is-glob": "^4.0.0", 1638 | "json-stable-stringify-without-jsonify": "^1.0.1", 1639 | "lodash.merge": "^4.6.2", 1640 | "minimatch": "^3.1.2", 1641 | "natural-compare": "^1.4.0", 1642 | "optionator": "^0.9.3" 1643 | }, 1644 | "bin": { 1645 | "eslint": "bin/eslint.js" 1646 | }, 1647 | "engines": { 1648 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1649 | }, 1650 | "funding": { 1651 | "url": "https://eslint.org/donate" 1652 | }, 1653 | "peerDependencies": { 1654 | "jiti": "*" 1655 | }, 1656 | "peerDependenciesMeta": { 1657 | "jiti": { 1658 | "optional": true 1659 | } 1660 | } 1661 | }, 1662 | "node_modules/eslint-scope": { 1663 | "version": "8.2.0", 1664 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz", 1665 | "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==", 1666 | "dev": true, 1667 | "dependencies": { 1668 | "esrecurse": "^4.3.0", 1669 | "estraverse": "^5.2.0" 1670 | }, 1671 | "engines": { 1672 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1673 | }, 1674 | "funding": { 1675 | "url": "https://opencollective.com/eslint" 1676 | } 1677 | }, 1678 | "node_modules/eslint-visitor-keys": { 1679 | "version": "3.4.3", 1680 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", 1681 | "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", 1682 | "dev": true, 1683 | "engines": { 1684 | "node": "^12.22.0 || ^14.17.0 || >=16.0.0" 1685 | }, 1686 | "funding": { 1687 | "url": "https://opencollective.com/eslint" 1688 | } 1689 | }, 1690 | "node_modules/eslint/node_modules/@types/estree": { 1691 | "version": "1.0.6", 1692 | "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", 1693 | "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", 1694 | "dev": true 1695 | }, 1696 | "node_modules/eslint/node_modules/brace-expansion": { 1697 | "version": "1.1.11", 1698 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 1699 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 1700 | "dev": true, 1701 | "dependencies": { 1702 | "balanced-match": "^1.0.0", 1703 | "concat-map": "0.0.1" 1704 | } 1705 | }, 1706 | "node_modules/eslint/node_modules/eslint-visitor-keys": { 1707 | "version": "4.2.0", 1708 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", 1709 | "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", 1710 | "dev": true, 1711 | "engines": { 1712 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1713 | }, 1714 | "funding": { 1715 | "url": "https://opencollective.com/eslint" 1716 | } 1717 | }, 1718 | "node_modules/eslint/node_modules/minimatch": { 1719 | "version": "3.1.2", 1720 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", 1721 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", 1722 | "dev": true, 1723 | "dependencies": { 1724 | "brace-expansion": "^1.1.7" 1725 | }, 1726 | "engines": { 1727 | "node": "*" 1728 | } 1729 | }, 1730 | "node_modules/espree": { 1731 | "version": "10.3.0", 1732 | "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", 1733 | "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", 1734 | "dev": true, 1735 | "dependencies": { 1736 | "acorn": "^8.14.0", 1737 | "acorn-jsx": "^5.3.2", 1738 | "eslint-visitor-keys": "^4.2.0" 1739 | }, 1740 | "engines": { 1741 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1742 | }, 1743 | "funding": { 1744 | "url": "https://opencollective.com/eslint" 1745 | } 1746 | }, 1747 | "node_modules/espree/node_modules/eslint-visitor-keys": { 1748 | "version": "4.2.0", 1749 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", 1750 | "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", 1751 | "dev": true, 1752 | "engines": { 1753 | "node": "^18.18.0 || ^20.9.0 || >=21.1.0" 1754 | }, 1755 | "funding": { 1756 | "url": "https://opencollective.com/eslint" 1757 | } 1758 | }, 1759 | "node_modules/esquery": { 1760 | "version": "1.6.0", 1761 | "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", 1762 | "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", 1763 | "dev": true, 1764 | "dependencies": { 1765 | "estraverse": "^5.1.0" 1766 | }, 1767 | "engines": { 1768 | "node": ">=0.10" 1769 | } 1770 | }, 1771 | "node_modules/esrecurse": { 1772 | "version": "4.3.0", 1773 | "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", 1774 | "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", 1775 | "dev": true, 1776 | "dependencies": { 1777 | "estraverse": "^5.2.0" 1778 | }, 1779 | "engines": { 1780 | "node": ">=4.0" 1781 | } 1782 | }, 1783 | "node_modules/estraverse": { 1784 | "version": "5.3.0", 1785 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", 1786 | "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", 1787 | "dev": true, 1788 | "engines": { 1789 | "node": ">=4.0" 1790 | } 1791 | }, 1792 | "node_modules/esutils": { 1793 | "version": "2.0.3", 1794 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", 1795 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", 1796 | "dev": true, 1797 | "engines": { 1798 | "node": ">=0.10.0" 1799 | } 1800 | }, 1801 | "node_modules/eventemitter3": { 1802 | "version": "4.0.7", 1803 | "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", 1804 | "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", 1805 | "dev": true 1806 | }, 1807 | "node_modules/execa": { 1808 | "version": "5.1.1", 1809 | "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", 1810 | "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", 1811 | "dev": true, 1812 | "dependencies": { 1813 | "cross-spawn": "^7.0.3", 1814 | "get-stream": "^6.0.0", 1815 | "human-signals": "^2.1.0", 1816 | "is-stream": "^2.0.0", 1817 | "merge-stream": "^2.0.0", 1818 | "npm-run-path": "^4.0.1", 1819 | "onetime": "^5.1.2", 1820 | "signal-exit": "^3.0.3", 1821 | "strip-final-newline": "^2.0.0" 1822 | }, 1823 | "engines": { 1824 | "node": ">=10" 1825 | }, 1826 | "funding": { 1827 | "url": "https://github.com/sindresorhus/execa?sponsor=1" 1828 | } 1829 | }, 1830 | "node_modules/fast-deep-equal": { 1831 | "version": "3.1.3", 1832 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", 1833 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", 1834 | "dev": true 1835 | }, 1836 | "node_modules/fast-glob": { 1837 | "version": "3.3.3", 1838 | "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", 1839 | "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", 1840 | "dev": true, 1841 | "dependencies": { 1842 | "@nodelib/fs.stat": "^2.0.2", 1843 | "@nodelib/fs.walk": "^1.2.3", 1844 | "glob-parent": "^5.1.2", 1845 | "merge2": "^1.3.0", 1846 | "micromatch": "^4.0.8" 1847 | }, 1848 | "engines": { 1849 | "node": ">=8.6.0" 1850 | } 1851 | }, 1852 | "node_modules/fast-glob/node_modules/glob-parent": { 1853 | "version": "5.1.2", 1854 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 1855 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 1856 | "dev": true, 1857 | "dependencies": { 1858 | "is-glob": "^4.0.1" 1859 | }, 1860 | "engines": { 1861 | "node": ">= 6" 1862 | } 1863 | }, 1864 | "node_modules/fast-json-stable-stringify": { 1865 | "version": "2.1.0", 1866 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", 1867 | "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", 1868 | "dev": true 1869 | }, 1870 | "node_modules/fast-levenshtein": { 1871 | "version": "2.0.6", 1872 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", 1873 | "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", 1874 | "dev": true 1875 | }, 1876 | "node_modules/fastq": { 1877 | "version": "1.18.0", 1878 | "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.18.0.tgz", 1879 | "integrity": "sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==", 1880 | "dev": true, 1881 | "dependencies": { 1882 | "reusify": "^1.0.4" 1883 | } 1884 | }, 1885 | "node_modules/file-entry-cache": { 1886 | "version": "8.0.0", 1887 | "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", 1888 | "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", 1889 | "dev": true, 1890 | "dependencies": { 1891 | "flat-cache": "^4.0.0" 1892 | }, 1893 | "engines": { 1894 | "node": ">=16.0.0" 1895 | } 1896 | }, 1897 | "node_modules/fill-range": { 1898 | "version": "7.1.1", 1899 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", 1900 | "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", 1901 | "dev": true, 1902 | "dependencies": { 1903 | "to-regex-range": "^5.0.1" 1904 | }, 1905 | "engines": { 1906 | "node": ">=8" 1907 | } 1908 | }, 1909 | "node_modules/find-up": { 1910 | "version": "5.0.0", 1911 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", 1912 | "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", 1913 | "dev": true, 1914 | "dependencies": { 1915 | "locate-path": "^6.0.0", 1916 | "path-exists": "^4.0.0" 1917 | }, 1918 | "engines": { 1919 | "node": ">=10" 1920 | }, 1921 | "funding": { 1922 | "url": "https://github.com/sponsors/sindresorhus" 1923 | } 1924 | }, 1925 | "node_modules/flat-cache": { 1926 | "version": "4.0.1", 1927 | "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", 1928 | "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", 1929 | "dev": true, 1930 | "dependencies": { 1931 | "flatted": "^3.2.9", 1932 | "keyv": "^4.5.4" 1933 | }, 1934 | "engines": { 1935 | "node": ">=16" 1936 | } 1937 | }, 1938 | "node_modules/flatted": { 1939 | "version": "3.3.2", 1940 | "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz", 1941 | "integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==", 1942 | "dev": true 1943 | }, 1944 | "node_modules/follow-redirects": { 1945 | "version": "1.15.9", 1946 | "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", 1947 | "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", 1948 | "dev": true, 1949 | "funding": [ 1950 | { 1951 | "type": "individual", 1952 | "url": "https://github.com/sponsors/RubenVerborgh" 1953 | } 1954 | ], 1955 | "engines": { 1956 | "node": ">=4.0" 1957 | }, 1958 | "peerDependenciesMeta": { 1959 | "debug": { 1960 | "optional": true 1961 | } 1962 | } 1963 | }, 1964 | "node_modules/foreground-child": { 1965 | "version": "3.3.0", 1966 | "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", 1967 | "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", 1968 | "dev": true, 1969 | "dependencies": { 1970 | "cross-spawn": "^7.0.0", 1971 | "signal-exit": "^4.0.1" 1972 | }, 1973 | "engines": { 1974 | "node": ">=14" 1975 | }, 1976 | "funding": { 1977 | "url": "https://github.com/sponsors/isaacs" 1978 | } 1979 | }, 1980 | "node_modules/foreground-child/node_modules/signal-exit": { 1981 | "version": "4.1.0", 1982 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", 1983 | "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", 1984 | "dev": true, 1985 | "engines": { 1986 | "node": ">=14" 1987 | }, 1988 | "funding": { 1989 | "url": "https://github.com/sponsors/isaacs" 1990 | } 1991 | }, 1992 | "node_modules/fsevents": { 1993 | "version": "2.3.3", 1994 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", 1995 | "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", 1996 | "dev": true, 1997 | "hasInstallScript": true, 1998 | "optional": true, 1999 | "os": [ 2000 | "darwin" 2001 | ], 2002 | "engines": { 2003 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0" 2004 | } 2005 | }, 2006 | "node_modules/function-bind": { 2007 | "version": "1.1.2", 2008 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", 2009 | "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", 2010 | "dev": true, 2011 | "funding": { 2012 | "url": "https://github.com/sponsors/ljharb" 2013 | } 2014 | }, 2015 | "node_modules/get-intrinsic": { 2016 | "version": "1.2.4", 2017 | "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", 2018 | "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", 2019 | "dev": true, 2020 | "dependencies": { 2021 | "es-errors": "^1.3.0", 2022 | "function-bind": "^1.1.2", 2023 | "has-proto": "^1.0.1", 2024 | "has-symbols": "^1.0.3", 2025 | "hasown": "^2.0.0" 2026 | }, 2027 | "engines": { 2028 | "node": ">= 0.4" 2029 | }, 2030 | "funding": { 2031 | "url": "https://github.com/sponsors/ljharb" 2032 | } 2033 | }, 2034 | "node_modules/get-stream": { 2035 | "version": "6.0.1", 2036 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", 2037 | "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", 2038 | "dev": true, 2039 | "engines": { 2040 | "node": ">=10" 2041 | }, 2042 | "funding": { 2043 | "url": "https://github.com/sponsors/sindresorhus" 2044 | } 2045 | }, 2046 | "node_modules/glob-parent": { 2047 | "version": "6.0.2", 2048 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", 2049 | "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", 2050 | "dev": true, 2051 | "dependencies": { 2052 | "is-glob": "^4.0.3" 2053 | }, 2054 | "engines": { 2055 | "node": ">=10.13.0" 2056 | } 2057 | }, 2058 | "node_modules/globals": { 2059 | "version": "14.0.0", 2060 | "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", 2061 | "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", 2062 | "dev": true, 2063 | "engines": { 2064 | "node": ">=18" 2065 | }, 2066 | "funding": { 2067 | "url": "https://github.com/sponsors/sindresorhus" 2068 | } 2069 | }, 2070 | "node_modules/gopd": { 2071 | "version": "1.0.1", 2072 | "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", 2073 | "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", 2074 | "dev": true, 2075 | "dependencies": { 2076 | "get-intrinsic": "^1.1.3" 2077 | }, 2078 | "funding": { 2079 | "url": "https://github.com/sponsors/ljharb" 2080 | } 2081 | }, 2082 | "node_modules/graphemer": { 2083 | "version": "1.4.0", 2084 | "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", 2085 | "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", 2086 | "dev": true 2087 | }, 2088 | "node_modules/has-flag": { 2089 | "version": "4.0.0", 2090 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 2091 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 2092 | "dev": true, 2093 | "engines": { 2094 | "node": ">=8" 2095 | } 2096 | }, 2097 | "node_modules/has-property-descriptors": { 2098 | "version": "1.0.2", 2099 | "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", 2100 | "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", 2101 | "dev": true, 2102 | "dependencies": { 2103 | "es-define-property": "^1.0.0" 2104 | }, 2105 | "funding": { 2106 | "url": "https://github.com/sponsors/ljharb" 2107 | } 2108 | }, 2109 | "node_modules/has-proto": { 2110 | "version": "1.0.3", 2111 | "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", 2112 | "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", 2113 | "dev": true, 2114 | "engines": { 2115 | "node": ">= 0.4" 2116 | }, 2117 | "funding": { 2118 | "url": "https://github.com/sponsors/ljharb" 2119 | } 2120 | }, 2121 | "node_modules/has-symbols": { 2122 | "version": "1.0.3", 2123 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", 2124 | "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", 2125 | "dev": true, 2126 | "engines": { 2127 | "node": ">= 0.4" 2128 | }, 2129 | "funding": { 2130 | "url": "https://github.com/sponsors/ljharb" 2131 | } 2132 | }, 2133 | "node_modules/hasown": { 2134 | "version": "2.0.2", 2135 | "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", 2136 | "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", 2137 | "dev": true, 2138 | "dependencies": { 2139 | "function-bind": "^1.1.2" 2140 | }, 2141 | "engines": { 2142 | "node": ">= 0.4" 2143 | } 2144 | }, 2145 | "node_modules/he": { 2146 | "version": "1.2.0", 2147 | "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", 2148 | "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", 2149 | "dev": true, 2150 | "bin": { 2151 | "he": "bin/he" 2152 | } 2153 | }, 2154 | "node_modules/html-encoding-sniffer": { 2155 | "version": "3.0.0", 2156 | "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", 2157 | "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", 2158 | "dev": true, 2159 | "dependencies": { 2160 | "whatwg-encoding": "^2.0.0" 2161 | }, 2162 | "engines": { 2163 | "node": ">=12" 2164 | } 2165 | }, 2166 | "node_modules/http-proxy": { 2167 | "version": "1.18.1", 2168 | "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", 2169 | "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", 2170 | "dev": true, 2171 | "dependencies": { 2172 | "eventemitter3": "^4.0.0", 2173 | "follow-redirects": "^1.0.0", 2174 | "requires-port": "^1.0.0" 2175 | }, 2176 | "engines": { 2177 | "node": ">=8.0.0" 2178 | } 2179 | }, 2180 | "node_modules/http-server": { 2181 | "version": "14.1.1", 2182 | "resolved": "https://registry.npmjs.org/http-server/-/http-server-14.1.1.tgz", 2183 | "integrity": "sha512-+cbxadF40UXd9T01zUHgA+rlo2Bg1Srer4+B4NwIHdaGxAGGv59nYRnGGDJ9LBk7alpS0US+J+bLLdQOOkJq4A==", 2184 | "dev": true, 2185 | "dependencies": { 2186 | "basic-auth": "^2.0.1", 2187 | "chalk": "^4.1.2", 2188 | "corser": "^2.0.1", 2189 | "he": "^1.2.0", 2190 | "html-encoding-sniffer": "^3.0.0", 2191 | "http-proxy": "^1.18.1", 2192 | "mime": "^1.6.0", 2193 | "minimist": "^1.2.6", 2194 | "opener": "^1.5.1", 2195 | "portfinder": "^1.0.28", 2196 | "secure-compare": "3.0.1", 2197 | "union": "~0.5.0", 2198 | "url-join": "^4.0.1" 2199 | }, 2200 | "bin": { 2201 | "http-server": "bin/http-server" 2202 | }, 2203 | "engines": { 2204 | "node": ">=12" 2205 | } 2206 | }, 2207 | "node_modules/human-signals": { 2208 | "version": "2.1.0", 2209 | "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", 2210 | "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", 2211 | "dev": true, 2212 | "engines": { 2213 | "node": ">=10.17.0" 2214 | } 2215 | }, 2216 | "node_modules/iconv-lite": { 2217 | "version": "0.6.3", 2218 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", 2219 | "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", 2220 | "dev": true, 2221 | "dependencies": { 2222 | "safer-buffer": ">= 2.1.2 < 3.0.0" 2223 | }, 2224 | "engines": { 2225 | "node": ">=0.10.0" 2226 | } 2227 | }, 2228 | "node_modules/ignore": { 2229 | "version": "5.3.2", 2230 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", 2231 | "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", 2232 | "dev": true, 2233 | "engines": { 2234 | "node": ">= 4" 2235 | } 2236 | }, 2237 | "node_modules/import-fresh": { 2238 | "version": "3.3.0", 2239 | "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", 2240 | "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", 2241 | "dev": true, 2242 | "dependencies": { 2243 | "parent-module": "^1.0.0", 2244 | "resolve-from": "^4.0.0" 2245 | }, 2246 | "engines": { 2247 | "node": ">=6" 2248 | }, 2249 | "funding": { 2250 | "url": "https://github.com/sponsors/sindresorhus" 2251 | } 2252 | }, 2253 | "node_modules/imurmurhash": { 2254 | "version": "0.1.4", 2255 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", 2256 | "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", 2257 | "dev": true, 2258 | "engines": { 2259 | "node": ">=0.8.19" 2260 | } 2261 | }, 2262 | "node_modules/is-binary-path": { 2263 | "version": "2.1.0", 2264 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", 2265 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", 2266 | "dev": true, 2267 | "dependencies": { 2268 | "binary-extensions": "^2.0.0" 2269 | }, 2270 | "engines": { 2271 | "node": ">=8" 2272 | } 2273 | }, 2274 | "node_modules/is-extglob": { 2275 | "version": "2.1.1", 2276 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 2277 | "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", 2278 | "dev": true, 2279 | "engines": { 2280 | "node": ">=0.10.0" 2281 | } 2282 | }, 2283 | "node_modules/is-fullwidth-code-point": { 2284 | "version": "3.0.0", 2285 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", 2286 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", 2287 | "dev": true, 2288 | "engines": { 2289 | "node": ">=8" 2290 | } 2291 | }, 2292 | "node_modules/is-glob": { 2293 | "version": "4.0.3", 2294 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", 2295 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", 2296 | "dev": true, 2297 | "dependencies": { 2298 | "is-extglob": "^2.1.1" 2299 | }, 2300 | "engines": { 2301 | "node": ">=0.10.0" 2302 | } 2303 | }, 2304 | "node_modules/is-number": { 2305 | "version": "7.0.0", 2306 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", 2307 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", 2308 | "dev": true, 2309 | "engines": { 2310 | "node": ">=0.12.0" 2311 | } 2312 | }, 2313 | "node_modules/is-stream": { 2314 | "version": "2.0.1", 2315 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", 2316 | "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", 2317 | "dev": true, 2318 | "engines": { 2319 | "node": ">=8" 2320 | }, 2321 | "funding": { 2322 | "url": "https://github.com/sponsors/sindresorhus" 2323 | } 2324 | }, 2325 | "node_modules/isexe": { 2326 | "version": "2.0.0", 2327 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 2328 | "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", 2329 | "dev": true 2330 | }, 2331 | "node_modules/jackspeak": { 2332 | "version": "3.4.3", 2333 | "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", 2334 | "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", 2335 | "dev": true, 2336 | "dependencies": { 2337 | "@isaacs/cliui": "^8.0.2" 2338 | }, 2339 | "funding": { 2340 | "url": "https://github.com/sponsors/isaacs" 2341 | }, 2342 | "optionalDependencies": { 2343 | "@pkgjs/parseargs": "^0.11.0" 2344 | } 2345 | }, 2346 | "node_modules/joycon": { 2347 | "version": "3.1.1", 2348 | "resolved": "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz", 2349 | "integrity": "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==", 2350 | "dev": true, 2351 | "engines": { 2352 | "node": ">=10" 2353 | } 2354 | }, 2355 | "node_modules/js-yaml": { 2356 | "version": "4.1.0", 2357 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", 2358 | "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", 2359 | "dev": true, 2360 | "dependencies": { 2361 | "argparse": "^2.0.1" 2362 | }, 2363 | "bin": { 2364 | "js-yaml": "bin/js-yaml.js" 2365 | } 2366 | }, 2367 | "node_modules/json-buffer": { 2368 | "version": "3.0.1", 2369 | "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", 2370 | "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", 2371 | "dev": true 2372 | }, 2373 | "node_modules/json-schema-traverse": { 2374 | "version": "0.4.1", 2375 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", 2376 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", 2377 | "dev": true 2378 | }, 2379 | "node_modules/json-stable-stringify-without-jsonify": { 2380 | "version": "1.0.1", 2381 | "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", 2382 | "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", 2383 | "dev": true 2384 | }, 2385 | "node_modules/keyv": { 2386 | "version": "4.5.4", 2387 | "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", 2388 | "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", 2389 | "dev": true, 2390 | "dependencies": { 2391 | "json-buffer": "3.0.1" 2392 | } 2393 | }, 2394 | "node_modules/levn": { 2395 | "version": "0.4.1", 2396 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", 2397 | "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", 2398 | "dev": true, 2399 | "dependencies": { 2400 | "prelude-ls": "^1.2.1", 2401 | "type-check": "~0.4.0" 2402 | }, 2403 | "engines": { 2404 | "node": ">= 0.8.0" 2405 | } 2406 | }, 2407 | "node_modules/lilconfig": { 2408 | "version": "3.1.2", 2409 | "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", 2410 | "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", 2411 | "dev": true, 2412 | "engines": { 2413 | "node": ">=14" 2414 | }, 2415 | "funding": { 2416 | "url": "https://github.com/sponsors/antonk52" 2417 | } 2418 | }, 2419 | "node_modules/lines-and-columns": { 2420 | "version": "1.2.4", 2421 | "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", 2422 | "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", 2423 | "dev": true 2424 | }, 2425 | "node_modules/load-tsconfig": { 2426 | "version": "0.2.5", 2427 | "resolved": "https://registry.npmjs.org/load-tsconfig/-/load-tsconfig-0.2.5.tgz", 2428 | "integrity": "sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==", 2429 | "dev": true, 2430 | "engines": { 2431 | "node": "^12.20.0 || ^14.13.1 || >=16.0.0" 2432 | } 2433 | }, 2434 | "node_modules/locate-path": { 2435 | "version": "6.0.0", 2436 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", 2437 | "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", 2438 | "dev": true, 2439 | "dependencies": { 2440 | "p-locate": "^5.0.0" 2441 | }, 2442 | "engines": { 2443 | "node": ">=10" 2444 | }, 2445 | "funding": { 2446 | "url": "https://github.com/sponsors/sindresorhus" 2447 | } 2448 | }, 2449 | "node_modules/lodash": { 2450 | "version": "4.17.21", 2451 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", 2452 | "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", 2453 | "dev": true 2454 | }, 2455 | "node_modules/lodash.merge": { 2456 | "version": "4.6.2", 2457 | "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", 2458 | "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", 2459 | "dev": true 2460 | }, 2461 | "node_modules/lodash.sortby": { 2462 | "version": "4.7.0", 2463 | "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", 2464 | "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==", 2465 | "dev": true 2466 | }, 2467 | "node_modules/lru-cache": { 2468 | "version": "10.4.3", 2469 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", 2470 | "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", 2471 | "dev": true 2472 | }, 2473 | "node_modules/merge-stream": { 2474 | "version": "2.0.0", 2475 | "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", 2476 | "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", 2477 | "dev": true 2478 | }, 2479 | "node_modules/merge2": { 2480 | "version": "1.4.1", 2481 | "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", 2482 | "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", 2483 | "dev": true, 2484 | "engines": { 2485 | "node": ">= 8" 2486 | } 2487 | }, 2488 | "node_modules/micromatch": { 2489 | "version": "4.0.8", 2490 | "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", 2491 | "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", 2492 | "dev": true, 2493 | "dependencies": { 2494 | "braces": "^3.0.3", 2495 | "picomatch": "^2.3.1" 2496 | }, 2497 | "engines": { 2498 | "node": ">=8.6" 2499 | } 2500 | }, 2501 | "node_modules/mime": { 2502 | "version": "1.6.0", 2503 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", 2504 | "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", 2505 | "dev": true, 2506 | "bin": { 2507 | "mime": "cli.js" 2508 | }, 2509 | "engines": { 2510 | "node": ">=4" 2511 | } 2512 | }, 2513 | "node_modules/mimic-fn": { 2514 | "version": "2.1.0", 2515 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", 2516 | "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", 2517 | "dev": true, 2518 | "engines": { 2519 | "node": ">=6" 2520 | } 2521 | }, 2522 | "node_modules/minimatch": { 2523 | "version": "9.0.5", 2524 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", 2525 | "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", 2526 | "dev": true, 2527 | "dependencies": { 2528 | "brace-expansion": "^2.0.1" 2529 | }, 2530 | "engines": { 2531 | "node": ">=16 || 14 >=14.17" 2532 | }, 2533 | "funding": { 2534 | "url": "https://github.com/sponsors/isaacs" 2535 | } 2536 | }, 2537 | "node_modules/minimist": { 2538 | "version": "1.2.8", 2539 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", 2540 | "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", 2541 | "dev": true, 2542 | "funding": { 2543 | "url": "https://github.com/sponsors/ljharb" 2544 | } 2545 | }, 2546 | "node_modules/minipass": { 2547 | "version": "7.1.2", 2548 | "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", 2549 | "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", 2550 | "dev": true, 2551 | "engines": { 2552 | "node": ">=16 || 14 >=14.17" 2553 | } 2554 | }, 2555 | "node_modules/mkdirp": { 2556 | "version": "0.5.6", 2557 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", 2558 | "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", 2559 | "dev": true, 2560 | "dependencies": { 2561 | "minimist": "^1.2.6" 2562 | }, 2563 | "bin": { 2564 | "mkdirp": "bin/cmd.js" 2565 | } 2566 | }, 2567 | "node_modules/ms": { 2568 | "version": "2.1.3", 2569 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", 2570 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", 2571 | "dev": true 2572 | }, 2573 | "node_modules/mz": { 2574 | "version": "2.7.0", 2575 | "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", 2576 | "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", 2577 | "dev": true, 2578 | "dependencies": { 2579 | "any-promise": "^1.0.0", 2580 | "object-assign": "^4.0.1", 2581 | "thenify-all": "^1.0.0" 2582 | } 2583 | }, 2584 | "node_modules/natural-compare": { 2585 | "version": "1.4.0", 2586 | "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", 2587 | "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", 2588 | "dev": true 2589 | }, 2590 | "node_modules/normalize-path": { 2591 | "version": "3.0.0", 2592 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", 2593 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", 2594 | "dev": true, 2595 | "engines": { 2596 | "node": ">=0.10.0" 2597 | } 2598 | }, 2599 | "node_modules/npm-run-path": { 2600 | "version": "4.0.1", 2601 | "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", 2602 | "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", 2603 | "dev": true, 2604 | "dependencies": { 2605 | "path-key": "^3.0.0" 2606 | }, 2607 | "engines": { 2608 | "node": ">=8" 2609 | } 2610 | }, 2611 | "node_modules/object-assign": { 2612 | "version": "4.1.1", 2613 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 2614 | "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", 2615 | "dev": true, 2616 | "engines": { 2617 | "node": ">=0.10.0" 2618 | } 2619 | }, 2620 | "node_modules/object-inspect": { 2621 | "version": "1.13.2", 2622 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", 2623 | "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", 2624 | "dev": true, 2625 | "engines": { 2626 | "node": ">= 0.4" 2627 | }, 2628 | "funding": { 2629 | "url": "https://github.com/sponsors/ljharb" 2630 | } 2631 | }, 2632 | "node_modules/onetime": { 2633 | "version": "5.1.2", 2634 | "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", 2635 | "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", 2636 | "dev": true, 2637 | "dependencies": { 2638 | "mimic-fn": "^2.1.0" 2639 | }, 2640 | "engines": { 2641 | "node": ">=6" 2642 | }, 2643 | "funding": { 2644 | "url": "https://github.com/sponsors/sindresorhus" 2645 | } 2646 | }, 2647 | "node_modules/opener": { 2648 | "version": "1.5.2", 2649 | "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", 2650 | "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", 2651 | "dev": true, 2652 | "bin": { 2653 | "opener": "bin/opener-bin.js" 2654 | } 2655 | }, 2656 | "node_modules/optionator": { 2657 | "version": "0.9.4", 2658 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", 2659 | "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", 2660 | "dev": true, 2661 | "dependencies": { 2662 | "deep-is": "^0.1.3", 2663 | "fast-levenshtein": "^2.0.6", 2664 | "levn": "^0.4.1", 2665 | "prelude-ls": "^1.2.1", 2666 | "type-check": "^0.4.0", 2667 | "word-wrap": "^1.2.5" 2668 | }, 2669 | "engines": { 2670 | "node": ">= 0.8.0" 2671 | } 2672 | }, 2673 | "node_modules/p-limit": { 2674 | "version": "3.1.0", 2675 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", 2676 | "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", 2677 | "dev": true, 2678 | "dependencies": { 2679 | "yocto-queue": "^0.1.0" 2680 | }, 2681 | "engines": { 2682 | "node": ">=10" 2683 | }, 2684 | "funding": { 2685 | "url": "https://github.com/sponsors/sindresorhus" 2686 | } 2687 | }, 2688 | "node_modules/p-locate": { 2689 | "version": "5.0.0", 2690 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", 2691 | "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", 2692 | "dev": true, 2693 | "dependencies": { 2694 | "p-limit": "^3.0.2" 2695 | }, 2696 | "engines": { 2697 | "node": ">=10" 2698 | }, 2699 | "funding": { 2700 | "url": "https://github.com/sponsors/sindresorhus" 2701 | } 2702 | }, 2703 | "node_modules/package-json-from-dist": { 2704 | "version": "1.0.0", 2705 | "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", 2706 | "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==", 2707 | "dev": true 2708 | }, 2709 | "node_modules/parent-module": { 2710 | "version": "1.0.1", 2711 | "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", 2712 | "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", 2713 | "dev": true, 2714 | "dependencies": { 2715 | "callsites": "^3.0.0" 2716 | }, 2717 | "engines": { 2718 | "node": ">=6" 2719 | } 2720 | }, 2721 | "node_modules/path-exists": { 2722 | "version": "4.0.0", 2723 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", 2724 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", 2725 | "dev": true, 2726 | "engines": { 2727 | "node": ">=8" 2728 | } 2729 | }, 2730 | "node_modules/path-key": { 2731 | "version": "3.1.1", 2732 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", 2733 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", 2734 | "dev": true, 2735 | "engines": { 2736 | "node": ">=8" 2737 | } 2738 | }, 2739 | "node_modules/path-scurry": { 2740 | "version": "1.11.1", 2741 | "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", 2742 | "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", 2743 | "dev": true, 2744 | "dependencies": { 2745 | "lru-cache": "^10.2.0", 2746 | "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" 2747 | }, 2748 | "engines": { 2749 | "node": ">=16 || 14 >=14.18" 2750 | }, 2751 | "funding": { 2752 | "url": "https://github.com/sponsors/isaacs" 2753 | } 2754 | }, 2755 | "node_modules/picocolors": { 2756 | "version": "1.1.0", 2757 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", 2758 | "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==", 2759 | "dev": true 2760 | }, 2761 | "node_modules/picomatch": { 2762 | "version": "2.3.1", 2763 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", 2764 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", 2765 | "dev": true, 2766 | "engines": { 2767 | "node": ">=8.6" 2768 | }, 2769 | "funding": { 2770 | "url": "https://github.com/sponsors/jonschlinkert" 2771 | } 2772 | }, 2773 | "node_modules/pirates": { 2774 | "version": "4.0.6", 2775 | "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", 2776 | "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", 2777 | "dev": true, 2778 | "engines": { 2779 | "node": ">= 6" 2780 | } 2781 | }, 2782 | "node_modules/portfinder": { 2783 | "version": "1.0.32", 2784 | "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.32.tgz", 2785 | "integrity": "sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==", 2786 | "dev": true, 2787 | "dependencies": { 2788 | "async": "^2.6.4", 2789 | "debug": "^3.2.7", 2790 | "mkdirp": "^0.5.6" 2791 | }, 2792 | "engines": { 2793 | "node": ">= 0.12.0" 2794 | } 2795 | }, 2796 | "node_modules/portfinder/node_modules/debug": { 2797 | "version": "3.2.7", 2798 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", 2799 | "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", 2800 | "dev": true, 2801 | "dependencies": { 2802 | "ms": "^2.1.1" 2803 | } 2804 | }, 2805 | "node_modules/postcss-load-config": { 2806 | "version": "6.0.1", 2807 | "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-6.0.1.tgz", 2808 | "integrity": "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==", 2809 | "dev": true, 2810 | "funding": [ 2811 | { 2812 | "type": "opencollective", 2813 | "url": "https://opencollective.com/postcss/" 2814 | }, 2815 | { 2816 | "type": "github", 2817 | "url": "https://github.com/sponsors/ai" 2818 | } 2819 | ], 2820 | "dependencies": { 2821 | "lilconfig": "^3.1.1" 2822 | }, 2823 | "engines": { 2824 | "node": ">= 18" 2825 | }, 2826 | "peerDependencies": { 2827 | "jiti": ">=1.21.0", 2828 | "postcss": ">=8.0.9", 2829 | "tsx": "^4.8.1", 2830 | "yaml": "^2.4.2" 2831 | }, 2832 | "peerDependenciesMeta": { 2833 | "jiti": { 2834 | "optional": true 2835 | }, 2836 | "postcss": { 2837 | "optional": true 2838 | }, 2839 | "tsx": { 2840 | "optional": true 2841 | }, 2842 | "yaml": { 2843 | "optional": true 2844 | } 2845 | } 2846 | }, 2847 | "node_modules/prelude-ls": { 2848 | "version": "1.2.1", 2849 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", 2850 | "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", 2851 | "dev": true, 2852 | "engines": { 2853 | "node": ">= 0.8.0" 2854 | } 2855 | }, 2856 | "node_modules/prettier": { 2857 | "version": "3.4.2", 2858 | "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.4.2.tgz", 2859 | "integrity": "sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==", 2860 | "dev": true, 2861 | "bin": { 2862 | "prettier": "bin/prettier.cjs" 2863 | }, 2864 | "engines": { 2865 | "node": ">=14" 2866 | }, 2867 | "funding": { 2868 | "url": "https://github.com/prettier/prettier?sponsor=1" 2869 | } 2870 | }, 2871 | "node_modules/punycode": { 2872 | "version": "2.3.1", 2873 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", 2874 | "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", 2875 | "dev": true, 2876 | "engines": { 2877 | "node": ">=6" 2878 | } 2879 | }, 2880 | "node_modules/qs": { 2881 | "version": "6.13.0", 2882 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", 2883 | "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", 2884 | "dev": true, 2885 | "dependencies": { 2886 | "side-channel": "^1.0.6" 2887 | }, 2888 | "engines": { 2889 | "node": ">=0.6" 2890 | }, 2891 | "funding": { 2892 | "url": "https://github.com/sponsors/ljharb" 2893 | } 2894 | }, 2895 | "node_modules/queue-microtask": { 2896 | "version": "1.2.3", 2897 | "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", 2898 | "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", 2899 | "dev": true, 2900 | "funding": [ 2901 | { 2902 | "type": "github", 2903 | "url": "https://github.com/sponsors/feross" 2904 | }, 2905 | { 2906 | "type": "patreon", 2907 | "url": "https://www.patreon.com/feross" 2908 | }, 2909 | { 2910 | "type": "consulting", 2911 | "url": "https://feross.org/support" 2912 | } 2913 | ] 2914 | }, 2915 | "node_modules/readdirp": { 2916 | "version": "3.6.0", 2917 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", 2918 | "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", 2919 | "dev": true, 2920 | "dependencies": { 2921 | "picomatch": "^2.2.1" 2922 | }, 2923 | "engines": { 2924 | "node": ">=8.10.0" 2925 | } 2926 | }, 2927 | "node_modules/requires-port": { 2928 | "version": "1.0.0", 2929 | "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", 2930 | "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", 2931 | "dev": true 2932 | }, 2933 | "node_modules/resolve-from": { 2934 | "version": "4.0.0", 2935 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", 2936 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", 2937 | "dev": true, 2938 | "engines": { 2939 | "node": ">=4" 2940 | } 2941 | }, 2942 | "node_modules/reusify": { 2943 | "version": "1.0.4", 2944 | "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", 2945 | "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", 2946 | "dev": true, 2947 | "engines": { 2948 | "iojs": ">=1.0.0", 2949 | "node": ">=0.10.0" 2950 | } 2951 | }, 2952 | "node_modules/rollup": { 2953 | "version": "4.22.4", 2954 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.22.4.tgz", 2955 | "integrity": "sha512-vD8HJ5raRcWOyymsR6Z3o6+RzfEPCnVLMFJ6vRslO1jt4LO6dUo5Qnpg7y4RkZFM2DMe3WUirkI5c16onjrc6A==", 2956 | "dev": true, 2957 | "dependencies": { 2958 | "@types/estree": "1.0.5" 2959 | }, 2960 | "bin": { 2961 | "rollup": "dist/bin/rollup" 2962 | }, 2963 | "engines": { 2964 | "node": ">=18.0.0", 2965 | "npm": ">=8.0.0" 2966 | }, 2967 | "optionalDependencies": { 2968 | "@rollup/rollup-android-arm-eabi": "4.22.4", 2969 | "@rollup/rollup-android-arm64": "4.22.4", 2970 | "@rollup/rollup-darwin-arm64": "4.22.4", 2971 | "@rollup/rollup-darwin-x64": "4.22.4", 2972 | "@rollup/rollup-linux-arm-gnueabihf": "4.22.4", 2973 | "@rollup/rollup-linux-arm-musleabihf": "4.22.4", 2974 | "@rollup/rollup-linux-arm64-gnu": "4.22.4", 2975 | "@rollup/rollup-linux-arm64-musl": "4.22.4", 2976 | "@rollup/rollup-linux-powerpc64le-gnu": "4.22.4", 2977 | "@rollup/rollup-linux-riscv64-gnu": "4.22.4", 2978 | "@rollup/rollup-linux-s390x-gnu": "4.22.4", 2979 | "@rollup/rollup-linux-x64-gnu": "4.22.4", 2980 | "@rollup/rollup-linux-x64-musl": "4.22.4", 2981 | "@rollup/rollup-win32-arm64-msvc": "4.22.4", 2982 | "@rollup/rollup-win32-ia32-msvc": "4.22.4", 2983 | "@rollup/rollup-win32-x64-msvc": "4.22.4", 2984 | "fsevents": "~2.3.2" 2985 | } 2986 | }, 2987 | "node_modules/run-parallel": { 2988 | "version": "1.2.0", 2989 | "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", 2990 | "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", 2991 | "dev": true, 2992 | "funding": [ 2993 | { 2994 | "type": "github", 2995 | "url": "https://github.com/sponsors/feross" 2996 | }, 2997 | { 2998 | "type": "patreon", 2999 | "url": "https://www.patreon.com/feross" 3000 | }, 3001 | { 3002 | "type": "consulting", 3003 | "url": "https://feross.org/support" 3004 | } 3005 | ], 3006 | "dependencies": { 3007 | "queue-microtask": "^1.2.2" 3008 | } 3009 | }, 3010 | "node_modules/safe-buffer": { 3011 | "version": "5.1.2", 3012 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 3013 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", 3014 | "dev": true 3015 | }, 3016 | "node_modules/safer-buffer": { 3017 | "version": "2.1.2", 3018 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 3019 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", 3020 | "dev": true 3021 | }, 3022 | "node_modules/secure-compare": { 3023 | "version": "3.0.1", 3024 | "resolved": "https://registry.npmjs.org/secure-compare/-/secure-compare-3.0.1.tgz", 3025 | "integrity": "sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw==", 3026 | "dev": true 3027 | }, 3028 | "node_modules/semver": { 3029 | "version": "7.6.3", 3030 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", 3031 | "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", 3032 | "dev": true, 3033 | "bin": { 3034 | "semver": "bin/semver.js" 3035 | }, 3036 | "engines": { 3037 | "node": ">=10" 3038 | } 3039 | }, 3040 | "node_modules/set-function-length": { 3041 | "version": "1.2.2", 3042 | "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", 3043 | "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", 3044 | "dev": true, 3045 | "dependencies": { 3046 | "define-data-property": "^1.1.4", 3047 | "es-errors": "^1.3.0", 3048 | "function-bind": "^1.1.2", 3049 | "get-intrinsic": "^1.2.4", 3050 | "gopd": "^1.0.1", 3051 | "has-property-descriptors": "^1.0.2" 3052 | }, 3053 | "engines": { 3054 | "node": ">= 0.4" 3055 | } 3056 | }, 3057 | "node_modules/shebang-command": { 3058 | "version": "2.0.0", 3059 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", 3060 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", 3061 | "dev": true, 3062 | "dependencies": { 3063 | "shebang-regex": "^3.0.0" 3064 | }, 3065 | "engines": { 3066 | "node": ">=8" 3067 | } 3068 | }, 3069 | "node_modules/shebang-regex": { 3070 | "version": "3.0.0", 3071 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", 3072 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", 3073 | "dev": true, 3074 | "engines": { 3075 | "node": ">=8" 3076 | } 3077 | }, 3078 | "node_modules/side-channel": { 3079 | "version": "1.0.6", 3080 | "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", 3081 | "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", 3082 | "dev": true, 3083 | "dependencies": { 3084 | "call-bind": "^1.0.7", 3085 | "es-errors": "^1.3.0", 3086 | "get-intrinsic": "^1.2.4", 3087 | "object-inspect": "^1.13.1" 3088 | }, 3089 | "engines": { 3090 | "node": ">= 0.4" 3091 | }, 3092 | "funding": { 3093 | "url": "https://github.com/sponsors/ljharb" 3094 | } 3095 | }, 3096 | "node_modules/signal-exit": { 3097 | "version": "3.0.7", 3098 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", 3099 | "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", 3100 | "dev": true 3101 | }, 3102 | "node_modules/source-map": { 3103 | "version": "0.8.0-beta.0", 3104 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", 3105 | "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", 3106 | "dev": true, 3107 | "dependencies": { 3108 | "whatwg-url": "^7.0.0" 3109 | }, 3110 | "engines": { 3111 | "node": ">= 8" 3112 | } 3113 | }, 3114 | "node_modules/string-width": { 3115 | "version": "5.1.2", 3116 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", 3117 | "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", 3118 | "dev": true, 3119 | "dependencies": { 3120 | "eastasianwidth": "^0.2.0", 3121 | "emoji-regex": "^9.2.2", 3122 | "strip-ansi": "^7.0.1" 3123 | }, 3124 | "engines": { 3125 | "node": ">=12" 3126 | }, 3127 | "funding": { 3128 | "url": "https://github.com/sponsors/sindresorhus" 3129 | } 3130 | }, 3131 | "node_modules/string-width-cjs": { 3132 | "name": "string-width", 3133 | "version": "4.2.3", 3134 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", 3135 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", 3136 | "dev": true, 3137 | "dependencies": { 3138 | "emoji-regex": "^8.0.0", 3139 | "is-fullwidth-code-point": "^3.0.0", 3140 | "strip-ansi": "^6.0.1" 3141 | }, 3142 | "engines": { 3143 | "node": ">=8" 3144 | } 3145 | }, 3146 | "node_modules/string-width-cjs/node_modules/emoji-regex": { 3147 | "version": "8.0.0", 3148 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", 3149 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", 3150 | "dev": true 3151 | }, 3152 | "node_modules/string-width/node_modules/ansi-regex": { 3153 | "version": "6.1.0", 3154 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", 3155 | "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", 3156 | "dev": true, 3157 | "engines": { 3158 | "node": ">=12" 3159 | }, 3160 | "funding": { 3161 | "url": "https://github.com/chalk/ansi-regex?sponsor=1" 3162 | } 3163 | }, 3164 | "node_modules/string-width/node_modules/strip-ansi": { 3165 | "version": "7.1.0", 3166 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", 3167 | "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", 3168 | "dev": true, 3169 | "dependencies": { 3170 | "ansi-regex": "^6.0.1" 3171 | }, 3172 | "engines": { 3173 | "node": ">=12" 3174 | }, 3175 | "funding": { 3176 | "url": "https://github.com/chalk/strip-ansi?sponsor=1" 3177 | } 3178 | }, 3179 | "node_modules/strip-ansi": { 3180 | "version": "6.0.1", 3181 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 3182 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 3183 | "dev": true, 3184 | "dependencies": { 3185 | "ansi-regex": "^5.0.1" 3186 | }, 3187 | "engines": { 3188 | "node": ">=8" 3189 | } 3190 | }, 3191 | "node_modules/strip-ansi-cjs": { 3192 | "name": "strip-ansi", 3193 | "version": "6.0.1", 3194 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", 3195 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", 3196 | "dev": true, 3197 | "dependencies": { 3198 | "ansi-regex": "^5.0.1" 3199 | }, 3200 | "engines": { 3201 | "node": ">=8" 3202 | } 3203 | }, 3204 | "node_modules/strip-final-newline": { 3205 | "version": "2.0.0", 3206 | "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", 3207 | "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", 3208 | "dev": true, 3209 | "engines": { 3210 | "node": ">=6" 3211 | } 3212 | }, 3213 | "node_modules/strip-json-comments": { 3214 | "version": "3.1.1", 3215 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", 3216 | "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", 3217 | "dev": true, 3218 | "engines": { 3219 | "node": ">=8" 3220 | }, 3221 | "funding": { 3222 | "url": "https://github.com/sponsors/sindresorhus" 3223 | } 3224 | }, 3225 | "node_modules/sucrase": { 3226 | "version": "3.35.0", 3227 | "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", 3228 | "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", 3229 | "dev": true, 3230 | "dependencies": { 3231 | "@jridgewell/gen-mapping": "^0.3.2", 3232 | "commander": "^4.0.0", 3233 | "glob": "^10.3.10", 3234 | "lines-and-columns": "^1.1.6", 3235 | "mz": "^2.7.0", 3236 | "pirates": "^4.0.1", 3237 | "ts-interface-checker": "^0.1.9" 3238 | }, 3239 | "bin": { 3240 | "sucrase": "bin/sucrase", 3241 | "sucrase-node": "bin/sucrase-node" 3242 | }, 3243 | "engines": { 3244 | "node": ">=16 || 14 >=14.17" 3245 | } 3246 | }, 3247 | "node_modules/sucrase/node_modules/glob": { 3248 | "version": "10.4.5", 3249 | "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", 3250 | "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", 3251 | "dev": true, 3252 | "dependencies": { 3253 | "foreground-child": "^3.1.0", 3254 | "jackspeak": "^3.1.2", 3255 | "minimatch": "^9.0.4", 3256 | "minipass": "^7.1.2", 3257 | "package-json-from-dist": "^1.0.0", 3258 | "path-scurry": "^1.11.1" 3259 | }, 3260 | "bin": { 3261 | "glob": "dist/esm/bin.mjs" 3262 | }, 3263 | "funding": { 3264 | "url": "https://github.com/sponsors/isaacs" 3265 | } 3266 | }, 3267 | "node_modules/supports-color": { 3268 | "version": "7.2.0", 3269 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 3270 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 3271 | "dev": true, 3272 | "dependencies": { 3273 | "has-flag": "^4.0.0" 3274 | }, 3275 | "engines": { 3276 | "node": ">=8" 3277 | } 3278 | }, 3279 | "node_modules/thenify": { 3280 | "version": "3.3.1", 3281 | "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", 3282 | "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", 3283 | "dev": true, 3284 | "dependencies": { 3285 | "any-promise": "^1.0.0" 3286 | } 3287 | }, 3288 | "node_modules/thenify-all": { 3289 | "version": "1.6.0", 3290 | "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", 3291 | "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", 3292 | "dev": true, 3293 | "dependencies": { 3294 | "thenify": ">= 3.1.0 < 4" 3295 | }, 3296 | "engines": { 3297 | "node": ">=0.8" 3298 | } 3299 | }, 3300 | "node_modules/tinyglobby": { 3301 | "version": "0.2.6", 3302 | "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.6.tgz", 3303 | "integrity": "sha512-NbBoFBpqfcgd1tCiO8Lkfdk+xrA7mlLR9zgvZcZWQQwU63XAfUePyd6wZBaU93Hqw347lHnwFzttAkemHzzz4g==", 3304 | "dev": true, 3305 | "dependencies": { 3306 | "fdir": "^6.3.0", 3307 | "picomatch": "^4.0.2" 3308 | }, 3309 | "engines": { 3310 | "node": ">=12.0.0" 3311 | } 3312 | }, 3313 | "node_modules/tinyglobby/node_modules/fdir": { 3314 | "version": "6.3.0", 3315 | "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.3.0.tgz", 3316 | "integrity": "sha512-QOnuT+BOtivR77wYvCWHfGt9s4Pz1VIMbD463vegT5MLqNXy8rYFT/lPVEqf/bhYeT6qmqrNHhsX+rWwe3rOCQ==", 3317 | "dev": true, 3318 | "peerDependencies": { 3319 | "picomatch": "^3 || ^4" 3320 | }, 3321 | "peerDependenciesMeta": { 3322 | "picomatch": { 3323 | "optional": true 3324 | } 3325 | } 3326 | }, 3327 | "node_modules/tinyglobby/node_modules/picomatch": { 3328 | "version": "4.0.2", 3329 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", 3330 | "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", 3331 | "dev": true, 3332 | "engines": { 3333 | "node": ">=12" 3334 | }, 3335 | "funding": { 3336 | "url": "https://github.com/sponsors/jonschlinkert" 3337 | } 3338 | }, 3339 | "node_modules/to-regex-range": { 3340 | "version": "5.0.1", 3341 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", 3342 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", 3343 | "dev": true, 3344 | "dependencies": { 3345 | "is-number": "^7.0.0" 3346 | }, 3347 | "engines": { 3348 | "node": ">=8.0" 3349 | } 3350 | }, 3351 | "node_modules/tr46": { 3352 | "version": "1.0.1", 3353 | "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", 3354 | "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==", 3355 | "dev": true, 3356 | "dependencies": { 3357 | "punycode": "^2.1.0" 3358 | } 3359 | }, 3360 | "node_modules/tree-kill": { 3361 | "version": "1.2.2", 3362 | "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", 3363 | "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", 3364 | "dev": true, 3365 | "bin": { 3366 | "tree-kill": "cli.js" 3367 | } 3368 | }, 3369 | "node_modules/ts-api-utils": { 3370 | "version": "2.0.0", 3371 | "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.0.0.tgz", 3372 | "integrity": "sha512-xCt/TOAc+EOHS1XPnijD3/yzpH6qg2xppZO1YDqGoVsNXfQfzHpOdNuXwrwOU8u4ITXJyDCTyt8w5g1sZv9ynQ==", 3373 | "dev": true, 3374 | "engines": { 3375 | "node": ">=18.12" 3376 | }, 3377 | "peerDependencies": { 3378 | "typescript": ">=4.8.4" 3379 | } 3380 | }, 3381 | "node_modules/ts-interface-checker": { 3382 | "version": "0.1.13", 3383 | "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", 3384 | "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", 3385 | "dev": true 3386 | }, 3387 | "node_modules/tsup": { 3388 | "version": "8.3.0", 3389 | "resolved": "https://registry.npmjs.org/tsup/-/tsup-8.3.0.tgz", 3390 | "integrity": "sha512-ALscEeyS03IomcuNdFdc0YWGVIkwH1Ws7nfTbAPuoILvEV2hpGQAY72LIOjglGo4ShWpZfpBqP/jpQVCzqYQag==", 3391 | "dev": true, 3392 | "dependencies": { 3393 | "bundle-require": "^5.0.0", 3394 | "cac": "^6.7.14", 3395 | "chokidar": "^3.6.0", 3396 | "consola": "^3.2.3", 3397 | "debug": "^4.3.5", 3398 | "esbuild": "^0.23.0", 3399 | "execa": "^5.1.1", 3400 | "joycon": "^3.1.1", 3401 | "picocolors": "^1.0.1", 3402 | "postcss-load-config": "^6.0.1", 3403 | "resolve-from": "^5.0.0", 3404 | "rollup": "^4.19.0", 3405 | "source-map": "0.8.0-beta.0", 3406 | "sucrase": "^3.35.0", 3407 | "tinyglobby": "^0.2.1", 3408 | "tree-kill": "^1.2.2" 3409 | }, 3410 | "bin": { 3411 | "tsup": "dist/cli-default.js", 3412 | "tsup-node": "dist/cli-node.js" 3413 | }, 3414 | "engines": { 3415 | "node": ">=18" 3416 | }, 3417 | "peerDependencies": { 3418 | "@microsoft/api-extractor": "^7.36.0", 3419 | "@swc/core": "^1", 3420 | "postcss": "^8.4.12", 3421 | "typescript": ">=4.5.0" 3422 | }, 3423 | "peerDependenciesMeta": { 3424 | "@microsoft/api-extractor": { 3425 | "optional": true 3426 | }, 3427 | "@swc/core": { 3428 | "optional": true 3429 | }, 3430 | "postcss": { 3431 | "optional": true 3432 | }, 3433 | "typescript": { 3434 | "optional": true 3435 | } 3436 | } 3437 | }, 3438 | "node_modules/tsup/node_modules/resolve-from": { 3439 | "version": "5.0.0", 3440 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", 3441 | "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", 3442 | "dev": true, 3443 | "engines": { 3444 | "node": ">=8" 3445 | } 3446 | }, 3447 | "node_modules/type-check": { 3448 | "version": "0.4.0", 3449 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", 3450 | "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", 3451 | "dev": true, 3452 | "dependencies": { 3453 | "prelude-ls": "^1.2.1" 3454 | }, 3455 | "engines": { 3456 | "node": ">= 0.8.0" 3457 | } 3458 | }, 3459 | "node_modules/typescript": { 3460 | "version": "5.7.2", 3461 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.2.tgz", 3462 | "integrity": "sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==", 3463 | "dev": true, 3464 | "bin": { 3465 | "tsc": "bin/tsc", 3466 | "tsserver": "bin/tsserver" 3467 | }, 3468 | "engines": { 3469 | "node": ">=14.17" 3470 | } 3471 | }, 3472 | "node_modules/union": { 3473 | "version": "0.5.0", 3474 | "resolved": "https://registry.npmjs.org/union/-/union-0.5.0.tgz", 3475 | "integrity": "sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==", 3476 | "dev": true, 3477 | "dependencies": { 3478 | "qs": "^6.4.0" 3479 | }, 3480 | "engines": { 3481 | "node": ">= 0.8.0" 3482 | } 3483 | }, 3484 | "node_modules/uri-js": { 3485 | "version": "4.4.1", 3486 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", 3487 | "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", 3488 | "dev": true, 3489 | "dependencies": { 3490 | "punycode": "^2.1.0" 3491 | } 3492 | }, 3493 | "node_modules/url-join": { 3494 | "version": "4.0.1", 3495 | "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", 3496 | "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==", 3497 | "dev": true 3498 | }, 3499 | "node_modules/webidl-conversions": { 3500 | "version": "4.0.2", 3501 | "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", 3502 | "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", 3503 | "dev": true 3504 | }, 3505 | "node_modules/whatwg-encoding": { 3506 | "version": "2.0.0", 3507 | "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", 3508 | "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", 3509 | "dev": true, 3510 | "dependencies": { 3511 | "iconv-lite": "0.6.3" 3512 | }, 3513 | "engines": { 3514 | "node": ">=12" 3515 | } 3516 | }, 3517 | "node_modules/whatwg-url": { 3518 | "version": "7.1.0", 3519 | "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", 3520 | "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", 3521 | "dev": true, 3522 | "dependencies": { 3523 | "lodash.sortby": "^4.7.0", 3524 | "tr46": "^1.0.1", 3525 | "webidl-conversions": "^4.0.2" 3526 | } 3527 | }, 3528 | "node_modules/which": { 3529 | "version": "2.0.2", 3530 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", 3531 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", 3532 | "dev": true, 3533 | "dependencies": { 3534 | "isexe": "^2.0.0" 3535 | }, 3536 | "bin": { 3537 | "node-which": "bin/node-which" 3538 | }, 3539 | "engines": { 3540 | "node": ">= 8" 3541 | } 3542 | }, 3543 | "node_modules/word-wrap": { 3544 | "version": "1.2.5", 3545 | "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", 3546 | "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", 3547 | "dev": true, 3548 | "engines": { 3549 | "node": ">=0.10.0" 3550 | } 3551 | }, 3552 | "node_modules/wrap-ansi": { 3553 | "version": "8.1.0", 3554 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", 3555 | "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", 3556 | "dev": true, 3557 | "dependencies": { 3558 | "ansi-styles": "^6.1.0", 3559 | "string-width": "^5.0.1", 3560 | "strip-ansi": "^7.0.1" 3561 | }, 3562 | "engines": { 3563 | "node": ">=12" 3564 | }, 3565 | "funding": { 3566 | "url": "https://github.com/chalk/wrap-ansi?sponsor=1" 3567 | } 3568 | }, 3569 | "node_modules/wrap-ansi-cjs": { 3570 | "name": "wrap-ansi", 3571 | "version": "7.0.0", 3572 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", 3573 | "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", 3574 | "dev": true, 3575 | "dependencies": { 3576 | "ansi-styles": "^4.0.0", 3577 | "string-width": "^4.1.0", 3578 | "strip-ansi": "^6.0.0" 3579 | }, 3580 | "engines": { 3581 | "node": ">=10" 3582 | }, 3583 | "funding": { 3584 | "url": "https://github.com/chalk/wrap-ansi?sponsor=1" 3585 | } 3586 | }, 3587 | "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { 3588 | "version": "8.0.0", 3589 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", 3590 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", 3591 | "dev": true 3592 | }, 3593 | "node_modules/wrap-ansi-cjs/node_modules/string-width": { 3594 | "version": "4.2.3", 3595 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", 3596 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", 3597 | "dev": true, 3598 | "dependencies": { 3599 | "emoji-regex": "^8.0.0", 3600 | "is-fullwidth-code-point": "^3.0.0", 3601 | "strip-ansi": "^6.0.1" 3602 | }, 3603 | "engines": { 3604 | "node": ">=8" 3605 | } 3606 | }, 3607 | "node_modules/wrap-ansi/node_modules/ansi-regex": { 3608 | "version": "6.1.0", 3609 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", 3610 | "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", 3611 | "dev": true, 3612 | "engines": { 3613 | "node": ">=12" 3614 | }, 3615 | "funding": { 3616 | "url": "https://github.com/chalk/ansi-regex?sponsor=1" 3617 | } 3618 | }, 3619 | "node_modules/wrap-ansi/node_modules/ansi-styles": { 3620 | "version": "6.2.1", 3621 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", 3622 | "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", 3623 | "dev": true, 3624 | "engines": { 3625 | "node": ">=12" 3626 | }, 3627 | "funding": { 3628 | "url": "https://github.com/chalk/ansi-styles?sponsor=1" 3629 | } 3630 | }, 3631 | "node_modules/wrap-ansi/node_modules/strip-ansi": { 3632 | "version": "7.1.0", 3633 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", 3634 | "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", 3635 | "dev": true, 3636 | "dependencies": { 3637 | "ansi-regex": "^6.0.1" 3638 | }, 3639 | "engines": { 3640 | "node": ">=12" 3641 | }, 3642 | "funding": { 3643 | "url": "https://github.com/chalk/strip-ansi?sponsor=1" 3644 | } 3645 | }, 3646 | "node_modules/yocto-queue": { 3647 | "version": "0.1.0", 3648 | "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", 3649 | "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", 3650 | "dev": true, 3651 | "engines": { 3652 | "node": ">=10" 3653 | }, 3654 | "funding": { 3655 | "url": "https://github.com/sponsors/sindresorhus" 3656 | } 3657 | } 3658 | } 3659 | } 3660 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "scratch-ext", 3 | "version": "1.0.0", 4 | "description": "Scaffolding for Javascript/Typescript Scratch extensions", 5 | "main": "dist/index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1", 8 | "lint": "eslint ./src", 9 | "lint:type": "tsc --noEmit -p ./tsconfig.json", 10 | "fix": "eslint ./src --fix", 11 | "start": "tsup src/withL10n.ts && http-server ./dist -p 8080 --cors", 12 | "build": "tsup src/withL10n.ts", 13 | "build:turbowarp": "tsup src/index.ts && (npx prettier --config turbowarp/.prettierrc --parser acorn < dist/index.global.js) > dist/index.global.formatted.js && rimraf dist/index.global.js", 14 | "format": "prettier ./src -c -w", 15 | "lint:format": "prettier ./src -c" 16 | }, 17 | "author": "FurryR", 18 | "license": "MIT", 19 | "devDependencies": { 20 | "@turbowarp/types": "^0.0.12", 21 | "@typescript-eslint/eslint-plugin": "^8.19.1", 22 | "@typescript-eslint/parser": "^8.19.1", 23 | "eslint": "^9.17.0", 24 | "http-server": "^14.1.1", 25 | "prettier": "^3.4.2", 26 | "tsup": "^8.0.2", 27 | "typescript": "^5.7.2" 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | ;(function (Scratch) { 2 | if (Scratch.extensions.unsandboxed === false) { 3 | throw new Error('Sandboxed mode is not supported') 4 | } 5 | // Your extension's code 6 | class YourExtension implements Scratch.Extension { 7 | getInfo() { 8 | return { 9 | id: 'newExtension', 10 | name: "FurryR's example extension", 11 | blocks: [ 12 | { 13 | blockType: Scratch.BlockType.COMMAND, 14 | opcode: 'test', 15 | text: '1' 16 | } 17 | ] 18 | } 19 | } 20 | test(args: Record, util: VM.BlockUtility) { 21 | console.log('Hello World', args, util) 22 | } 23 | } 24 | Scratch.extensions.register(new YourExtension()) 25 | })(Scratch) 26 | -------------------------------------------------------------------------------- /src/l10n/index.ts: -------------------------------------------------------------------------------- 1 | // Contains l10n 2 | 3 | export default {} -------------------------------------------------------------------------------- /src/withL10n.ts: -------------------------------------------------------------------------------- 1 | import l10n from './l10n' 2 | ;(function (Scratch) { 3 | Scratch.translate.setup(l10n) 4 | })(Scratch) 5 | 6 | import './index' 7 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "sourceMap": false, 4 | "module": "ESNext", 5 | "removeComments": false /* Do not emit comments to output. */, 6 | // "noEmit": true, /* Do not emit outputs. */ 7 | // "importHelpers": true, /* Import emit helpers from 'tslib'. */ 8 | // "downlevelIteration": true, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */ 9 | // "isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */ 10 | /* Strict Type-Checking Options */ 11 | // "strict": true /* Enable all strict type-checking options. */, 12 | // "noImplicitAny": true, 13 | // "strictNullChecks": true /* Enable strict null checks. */, 14 | // "strictFunctionTypes": true /* Enable strict checking of function types. */, 15 | // "strictBindCallApply": true /* Enable strict 'bind', 'call', and 'apply' methods on functions. */, 16 | // "strictPropertyInitialization": true /* Enable strict checking of property initialization in classes. */, 17 | // "noImplicitThis": true /* Raise error on 'this' expressions with an implied 'any' type. */, 18 | // "alwaysStrict": true /* Parse in strict mode and emit "use strict" for each source file. */, 19 | /* Additional Checks */ 20 | "noUnusedLocals": true /* Report errors on unused locals. */, 21 | "noUnusedParameters": true /* Report errors on unused parameters. */, 22 | "noImplicitReturns": true /* Report error when not all code paths in function return a value. */, 23 | "noFallthroughCasesInSwitch": true /* Report errors for fallthrough cases in switch statement. */, 24 | /* Module Resolution Options */ 25 | "resolveJsonModule": true, 26 | "allowJs": true, 27 | "checkJs": true, 28 | // "moduleResolution": "", 29 | // "esModuleInterop": true, 30 | // "allowSyntheticDefaultImports": true, 31 | "types": [], 32 | "baseUrl": ".", 33 | "paths": { 34 | // "~/*": [ 35 | // "./types/*" 36 | // ] 37 | "scratch-vm": ["./node_modules/@turbowarp/types/index.d.ts"], 38 | "scratch-render": ["./node_modules/@turbowarp/types/index.d.ts"], 39 | "scratch-svg-renderer": ["./node_modules/@turbowarp/types/index.d.ts"], 40 | "scratch-render-fonts": ["./node_modules/@turbowarp/types/index.d.ts"], 41 | "scratch-storage": ["./node_modules/@turbowarp/types/index.d.ts"], 42 | "scratch-audio": ["./node_modules/@turbowarp/types/index.d.ts"], 43 | "scratch-parser": ["./node_modules/@turbowarp/types/index.d.ts"], 44 | "scratch-blocks": ["./node_modules/@turbowarp/types/index.d.ts"] 45 | }, 46 | "lib": ["ESNext", "DOM"], 47 | "target": "ESNext", 48 | "moduleResolution": "Node", 49 | "outDir": "dist", 50 | "declaration": true 51 | }, 52 | "include": [ 53 | "node_modules/@turbowarp/types/types/scratch-vm-extension.d.ts", 54 | "types/universal.d.ts", 55 | "types/turbowarp.d.ts", 56 | "src/**/*", 57 | "tsup.config.ts", 58 | "package.json" 59 | ] 60 | } 61 | -------------------------------------------------------------------------------- /tsup.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'tsup' 2 | 3 | export default defineConfig({ 4 | name: 'scratch-ext', // Replace it with your extension name 5 | entry: ['src/index.ts', 'src/index.js'], 6 | target: ['esnext'], 7 | format: ['iife'], 8 | outDir: 'dist', 9 | banner: { 10 | // Replace it with your extension's metadata 11 | js: `// Name: FurryR's example Extension 12 | // ID: newExtension 13 | // Description: Scaffolding for Advanced Scratch extensions. 14 | // By: You 15 | // Original: Me 16 | // License: MPL-2.0 17 | ` 18 | }, 19 | platform: 'browser', 20 | clean: true 21 | }) 22 | -------------------------------------------------------------------------------- /turbowarp/.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "trailingComma": "es5", 3 | "endOfLine": "auto" 4 | } -------------------------------------------------------------------------------- /types/README.md: -------------------------------------------------------------------------------- 1 | # Source 2 | 3 | These type description files are originally based on [`scratch-vm`](https://github.com/Turbowarp/scratch-vm) and Gandi internal code. 4 | 5 | They are licensed under the MIT license. -------------------------------------------------------------------------------- /types/turbowarp.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare namespace Scratch { 4 | const vm: VM 5 | const runtime: VM.Runtime 6 | const renderer: RenderWebGL 7 | const gui: { 8 | getBlockly(): Promise 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /types/universal.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | interface MessageObject { 4 | id?: string 5 | default: string 6 | description?: string 7 | } 8 | 9 | type Message = string | MessageObject 10 | 11 | interface TranslateFn { 12 | (message: Message): string 13 | setup(newTranslations: Record>): void 14 | } 15 | 16 | declare namespace Scratch { 17 | const translate: TranslateFn 18 | } 19 | --------------------------------------------------------------------------------