├── .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 | [](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 | [](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 |
--------------------------------------------------------------------------------