├── .editorconfig
├── .github
├── FUNDING.yml
├── dependabot.yml
└── workflows
│ └── nodejs.yml
├── .gitignore
├── LICENSE
├── README.md
├── biome.json
├── lib
└── index.js
├── package-lock.json
├── package.json
├── test
├── expected
│ ├── attribute.html
│ ├── expressions-options.html
│ ├── invalid-src.html
│ ├── local-src.html
│ ├── loop.html
│ ├── multiple-src.html
│ ├── no-attribute-value.html
│ ├── no-attribute.html
│ ├── object.html
│ ├── ofetch-options.html
│ ├── plugins-after.html
│ ├── plugins-before.html
│ ├── string.html
│ └── tag.html
├── fixtures
│ ├── attribute.html
│ ├── expressions-options.html
│ ├── invalid-src.html
│ ├── local-src.html
│ ├── local.json
│ ├── loop.html
│ ├── multiple-src.html
│ ├── no-attribute-value.html
│ ├── no-attribute.html
│ ├── object.html
│ ├── ofetch-options.html
│ ├── plugins-after.html
│ ├── plugins-before.html
│ ├── string.html
│ └── tag.html
└── test.js
├── types
├── expressions.d.ts
└── index.d.ts
└── vitest.config.js
/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*]
4 | charset = utf-8
5 | indent_size = 2
6 | indent_style = space
7 | trim_trailing_whitespace = true
8 | insert_final_newline = true
9 |
10 | [*.md]
11 | trim_trailing_whitespace = false
12 |
--------------------------------------------------------------------------------
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | # These are supported funding model platforms
2 |
3 | github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
4 | patreon: posthtml
5 | open_collective: posthtml
6 | ko_fi: # Replace with a single Ko-fi username
7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
9 | liberapay: # Replace with a single Liberapay username
10 | issuehunt: # Replace with a single IssueHunt username
11 | otechie: # Replace with a single Otechie username
12 | custom: ['https://mailviews.com']
13 |
--------------------------------------------------------------------------------
/.github/dependabot.yml:
--------------------------------------------------------------------------------
1 | version: 2
2 | updates:
3 | - package-ecosystem: npm
4 | directory: "/"
5 | schedule:
6 | interval: weekly
7 | time: "22:00"
8 | open-pull-requests-limit: 10
9 |
--------------------------------------------------------------------------------
/.github/workflows/nodejs.yml:
--------------------------------------------------------------------------------
1 | # This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node
2 | # For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions
3 |
4 | name: build
5 |
6 | on:
7 | push:
8 | branches: [master]
9 | pull_request:
10 |
11 | jobs:
12 | build:
13 | runs-on: ubuntu-latest
14 |
15 | strategy:
16 | matrix:
17 | node-version: [18, 20, 22]
18 |
19 | steps:
20 | - uses: actions/checkout@v4
21 | - name: Use Node.js ${{ matrix.node-version }}
22 | uses: actions/setup-node@v4
23 | with:
24 | node-version: ${{ matrix.node-version }}
25 | - run: npm install
26 | - run: npm test
27 | env:
28 | CI: true
29 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | coverage
3 | *.log
4 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) Cosmin Popovici
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
13 | all 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
21 | THE SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |

3 |
Fetch Content
4 |
A plugin for fetching and working with remote and local content
5 |
6 | [![Version][npm-version-shield]][npm]
7 | [![Build][github-ci-shield]][github-ci]
8 | [![License][license-shield]][license]
9 | [![Downloads][npm-stats-shield]][npm-stats]
10 |
11 |
12 | ## About
13 |
14 | This plugin allows you to fetch remote or local content and display it in your HTML.
15 |
16 | Input:
17 |
18 | ```hbs
19 |
20 | {{ response.name }}'s username is {{ response.username }}
21 |
22 | ```
23 |
24 | Output:
25 |
26 | ```html
27 | Leanne Graham's username is Bret
28 | ```
29 |
30 | ## Install
31 |
32 | ```
33 | npm i posthtml posthtml-fetch
34 | ```
35 |
36 | ## Usage
37 |
38 | ```js
39 | const posthtml = require('posthtml')
40 | const posthtmlFetch = require('posthtml-fetch')
41 |
42 | posthtml()
43 | .use(posthtmlFetch())
44 | .process('{{ response }}')
45 | .then(result => console.log(result.html))
46 |
47 | // => interpolated response body
48 | ```
49 |
50 | The response body will be available under the `response` local variable.
51 |
52 | ## Response types
53 |
54 | The plugin supports `json` and `text` responses.
55 |
56 | Only the response body is returned.
57 |
58 | ## Expressions
59 |
60 | The plugin uses [`posthtml-expressions`](https://github.com/posthtml/posthtml-expressions), so you can use any of its tags to work with the `response`.
61 |
62 | For example, you can iterate over items in a JSON response:
63 |
64 | ```hbs
65 |
66 |
67 | {{ user.name }}
68 |
69 |
70 | ```
71 |
72 | ## Options
73 |
74 | You may configure the plugin with the following options.
75 |
76 | ### `tags`
77 |
78 | Type: `String[]`\
79 | Default: `['fetch', 'remote']`
80 |
81 | Array of supported tag names.
82 |
83 | Only tags from this array will be processed by the plugin.
84 |
85 | Example:
86 |
87 | ```js
88 | const posthtml = require('posthtml')
89 | const posthtmlFetch = require('posthtml-fetch')
90 |
91 | posthtml()
92 | .use(posthtmlFetch({
93 | tags: ['get']
94 | }))
95 | .process('{{ response }}')
96 | .then(result => console.log(result.html))
97 | ```
98 |
99 | ### `attribute`
100 |
101 | Type: `String`\
102 | Default: `'url'`
103 |
104 | String representing attribute name containing the URL to fetch.
105 |
106 | Example:
107 |
108 | ```js
109 | const posthtml = require('posthtml')
110 | const posthtmlFetch = require('posthtml-fetch')
111 |
112 | posthtml()
113 | .use(posthtmlFetch({
114 | attribute: 'from'
115 | }))
116 | .process('{{ response }}')
117 | .then(result => {
118 | console.log(result.html) // interpolated response body
119 | })
120 | ```
121 |
122 | ### `ofetch`
123 |
124 | The plugin uses [`ofetch`](https://unjs.io/packages/ofetch) to fetch data. You can pass options directly to it, inside the `ofetch` object.
125 |
126 | Example:
127 |
128 | ```js
129 | const posthtml = require('posthtml')
130 | const posthtmlFetch = require('posthtml-fetch')
131 |
132 | posthtml()
133 | .use(posthtmlFetch({
134 | ofetch: {
135 | // pass options to ofetch...
136 | }
137 | }))
138 | .process('{{ response }}')
139 | .then(result => {
140 | console.log(result.html) // interpolated response body
141 | })
142 | ```
143 |
144 | ### `preserveTag`
145 |
146 | Type: `Boolean`\
147 | Default: `false`
148 |
149 | When set to `true`, this option will preserve the `tag` around the response body.
150 |
151 | Example:
152 |
153 | ```js
154 | const posthtml = require('posthtml')
155 | const posthtmlFetch = require('posthtml-fetch')
156 |
157 | posthtml()
158 | .use(posthtmlFetch({
159 | preserveTag: true
160 | }))
161 | .process('{{ response }}')
162 | .then(result => {
163 | console.log(result.html)
164 | // => interpolated response body
165 | })
166 | ```
167 |
168 | ### `expressions`
169 |
170 | Type: `Object`\
171 | Default: `{}`
172 |
173 | You can pass options to `posthtml-expressions`.
174 |
175 | Example:
176 |
177 | ```js
178 | const posthtml = require('posthtml')
179 | const posthtmlFetch = require('posthtml-fetch')
180 |
181 | posthtml()
182 | .use(posthtmlFetch({
183 | expressions: {
184 | delimiters: ['[[', ']]'],
185 | }
186 | }))
187 | .process('[[ response ]]')
188 | .then(result => {
189 | console.log(result.html) // interpolated response body
190 | })
191 | ```
192 |
193 | ## Plugins
194 |
195 | ### `after/before`
196 |
197 | List of plugins that will be called after/before receiving and processing `locals`
198 |
199 | Example:
200 |
201 | ```js
202 | const posthtml = require('posthtml')
203 | const posthtmlFetch = require('posthtml-fetch')
204 |
205 | posthtml()
206 | .use(posthtmlFetch({
207 | plugins: {
208 | before: [
209 | tree => {
210 | // Your plugin implementation
211 | },
212 | tree => {
213 | // Your plugin implementation
214 | }
215 | ],
216 | after: [
217 | tree => {
218 | // Your plugin implementation
219 | },
220 | tree => {
221 | // Your plugin implementation
222 | }
223 | ]
224 | }
225 | }))
226 | .process('{{ response }}')
227 | .then(result => {
228 | console.log(result.html) // interpolated response body
229 | })
230 | ```
231 |
232 | [npm]: https://www.npmjs.com/package/posthtml-fetch
233 | [npm-version-shield]: https://img.shields.io/npm/v/posthtml-fetch.svg
234 | [npm-stats]: http://npm-stat.com/charts.html?package=posthtml-fetch
235 | [npm-stats-shield]: https://img.shields.io/npm/dt/posthtml-fetch.svg
236 | [github-ci]: https://github.com/posthtml/posthtml-fetch/actions
237 | [github-ci-shield]: https://github.com/posthtml/posthtml-fetch/actions/workflows/nodejs.yml/badge.svg
238 | [license]: ./license
239 | [license-shield]: https://img.shields.io/npm/l/posthtml-fetch.svg
240 |
--------------------------------------------------------------------------------
/biome.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://biomejs.dev/schemas/1.8.3/schema.json",
3 | "organizeImports": {
4 | "enabled": true
5 | },
6 | "linter": {
7 | "enabled": true,
8 | "rules": {
9 | "recommended": true
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/lib/index.js:
--------------------------------------------------------------------------------
1 | const isUrl = require('is-url')
2 | const path = require('node:path')
3 | const { ofetch } = require('ofetch')
4 | const posthtml = require('posthtml')
5 | const { defu: merge } = require('defu')
6 | const matcher = require('posthtml-match-helper')
7 | const expressions = require('posthtml-expressions')
8 |
9 | module.exports = (options = {}) => tree => {
10 | options.ofetch = options.ofetch || {}
11 | options.attribute = options.attribute || 'url'
12 | options.expressions = options.expressions || {}
13 | options.preserveTag = options.preserveTag || false
14 | options.tags = options.tags || ['fetch', 'remote']
15 |
16 | return new Promise((resolve, reject) => {
17 | const all = []
18 |
19 | tree.match(matcher(options.tags.join(',')), node => {
20 | const responseAssign = response => {
21 | let [item] = response.tree
22 |
23 | if (typeof item === 'string') {
24 | item = {content: [item]}
25 | }
26 |
27 | Object.assign(node, item)
28 | }
29 |
30 | if (node.attrs?.[options.attribute]) {
31 | const url = options.ofetch.url || node.attrs[options.attribute]
32 |
33 | all.push(new Promise((resolve, reject) => {
34 | Promise.resolve((() => {
35 | let plugins = []
36 | const content = tree.render(node);
37 |
38 | if (options.plugins?.before) {
39 | plugins = plugins.concat(options.plugins.before)
40 | }
41 |
42 | return posthtml(plugins).process(content)
43 | })())
44 | .then(responseAssign)
45 | .then(() => {
46 | if (isUrl(url)) {
47 | return ofetch(url, options.ofetch).then(response => ({
48 | body: response
49 | }))
50 | }
51 |
52 | const response = {
53 | body: undefined
54 | }
55 |
56 | try {
57 | response.body = JSON.stringify(require(path.resolve(url)))
58 | } catch {}
59 |
60 | return response
61 | })
62 | .then(({body}) => {
63 | const plugins = []
64 | let content = body
65 |
66 | try {
67 | plugins.push(
68 | expressions(
69 | merge(
70 | options.expressions,
71 | {
72 | locals: {
73 | response: typeof body === 'object' ? body : JSON.parse(body)
74 | }
75 | }
76 | ))
77 | )
78 |
79 | content = tree.render(node.content)
80 | } catch {}
81 |
82 | if (body === undefined) {
83 | content = tree.render(node.content)
84 | }
85 |
86 | return posthtml(plugins).process(content)
87 | })
88 | .then(response => {
89 | node.content = response.html
90 | })
91 | .then(() => {
92 | let plugins = []
93 | const content = tree.render(node)
94 |
95 | if (options.plugins?.after) {
96 | plugins = plugins.concat(options.plugins.after)
97 | }
98 |
99 | return posthtml(plugins).process(content)
100 | })
101 | .then(responseAssign)
102 | .then(() => {
103 | if (options.preserveTag === false) {
104 | node.tag = false
105 | }
106 | })
107 | .then(resolve.bind(null, node))
108 | .catch(reject)
109 | }),
110 | )
111 | }
112 |
113 | return node
114 | })
115 |
116 | Promise.all(all).then(resolve.bind(null, tree)).catch(error => reject(error))
117 | })
118 | }
119 |
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "posthtml-fetch",
3 | "version": "4.0.2",
4 | "lockfileVersion": 2,
5 | "requires": true,
6 | "packages": {
7 | "": {
8 | "name": "posthtml-fetch",
9 | "version": "4.0.2",
10 | "license": "MIT",
11 | "dependencies": {
12 | "defu": "^6.1.4",
13 | "is-url": "^1.2.4",
14 | "ofetch": "^1.3.4",
15 | "posthtml": "^0.16.6",
16 | "posthtml-expressions": "^1.11.3",
17 | "posthtml-match-helper": "^1.0.1"
18 | },
19 | "devDependencies": {
20 | "@biomejs/biome": "1.9.4",
21 | "@vitest/coverage-v8": "^3.0.6",
22 | "vitest": "^3.0.6"
23 | },
24 | "engines": {
25 | "node": ">=14.0.0"
26 | }
27 | },
28 | "node_modules/@ampproject/remapping": {
29 | "version": "2.3.0",
30 | "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz",
31 | "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==",
32 | "dev": true,
33 | "dependencies": {
34 | "@jridgewell/gen-mapping": "^0.3.5",
35 | "@jridgewell/trace-mapping": "^0.3.24"
36 | },
37 | "engines": {
38 | "node": ">=6.0.0"
39 | }
40 | },
41 | "node_modules/@babel/helper-string-parser": {
42 | "version": "7.25.9",
43 | "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz",
44 | "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==",
45 | "dev": true,
46 | "engines": {
47 | "node": ">=6.9.0"
48 | }
49 | },
50 | "node_modules/@babel/helper-validator-identifier": {
51 | "version": "7.25.9",
52 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz",
53 | "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==",
54 | "dev": true,
55 | "engines": {
56 | "node": ">=6.9.0"
57 | }
58 | },
59 | "node_modules/@babel/parser": {
60 | "version": "7.26.1",
61 | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.1.tgz",
62 | "integrity": "sha512-reoQYNiAJreZNsJzyrDNzFQ+IQ5JFiIzAHJg9bn94S3l+4++J7RsIhNMoB+lgP/9tpmiAQqspv+xfdxTSzREOw==",
63 | "dev": true,
64 | "dependencies": {
65 | "@babel/types": "^7.26.0"
66 | },
67 | "bin": {
68 | "parser": "bin/babel-parser.js"
69 | },
70 | "engines": {
71 | "node": ">=6.0.0"
72 | }
73 | },
74 | "node_modules/@babel/types": {
75 | "version": "7.26.0",
76 | "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz",
77 | "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==",
78 | "dev": true,
79 | "dependencies": {
80 | "@babel/helper-string-parser": "^7.25.9",
81 | "@babel/helper-validator-identifier": "^7.25.9"
82 | },
83 | "engines": {
84 | "node": ">=6.9.0"
85 | }
86 | },
87 | "node_modules/@bcoe/v8-coverage": {
88 | "version": "1.0.2",
89 | "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-1.0.2.tgz",
90 | "integrity": "sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==",
91 | "dev": true,
92 | "license": "MIT",
93 | "engines": {
94 | "node": ">=18"
95 | }
96 | },
97 | "node_modules/@biomejs/biome": {
98 | "version": "1.9.4",
99 | "resolved": "https://registry.npmjs.org/@biomejs/biome/-/biome-1.9.4.tgz",
100 | "integrity": "sha512-1rkd7G70+o9KkTn5KLmDYXihGoTaIGO9PIIN2ZB7UJxFrWw04CZHPYiMRjYsaDvVV7hP1dYNRLxSANLaBFGpog==",
101 | "dev": true,
102 | "hasInstallScript": true,
103 | "bin": {
104 | "biome": "bin/biome"
105 | },
106 | "engines": {
107 | "node": ">=14.21.3"
108 | },
109 | "funding": {
110 | "type": "opencollective",
111 | "url": "https://opencollective.com/biome"
112 | },
113 | "optionalDependencies": {
114 | "@biomejs/cli-darwin-arm64": "1.9.4",
115 | "@biomejs/cli-darwin-x64": "1.9.4",
116 | "@biomejs/cli-linux-arm64": "1.9.4",
117 | "@biomejs/cli-linux-arm64-musl": "1.9.4",
118 | "@biomejs/cli-linux-x64": "1.9.4",
119 | "@biomejs/cli-linux-x64-musl": "1.9.4",
120 | "@biomejs/cli-win32-arm64": "1.9.4",
121 | "@biomejs/cli-win32-x64": "1.9.4"
122 | }
123 | },
124 | "node_modules/@biomejs/cli-darwin-arm64": {
125 | "version": "1.9.4",
126 | "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-1.9.4.tgz",
127 | "integrity": "sha512-bFBsPWrNvkdKrNCYeAp+xo2HecOGPAy9WyNyB/jKnnedgzl4W4Hb9ZMzYNbf8dMCGmUdSavlYHiR01QaYR58cw==",
128 | "cpu": [
129 | "arm64"
130 | ],
131 | "dev": true,
132 | "optional": true,
133 | "os": [
134 | "darwin"
135 | ],
136 | "engines": {
137 | "node": ">=14.21.3"
138 | }
139 | },
140 | "node_modules/@biomejs/cli-darwin-x64": {
141 | "version": "1.9.4",
142 | "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-x64/-/cli-darwin-x64-1.9.4.tgz",
143 | "integrity": "sha512-ngYBh/+bEedqkSevPVhLP4QfVPCpb+4BBe2p7Xs32dBgs7rh9nY2AIYUL6BgLw1JVXV8GlpKmb/hNiuIxfPfZg==",
144 | "cpu": [
145 | "x64"
146 | ],
147 | "dev": true,
148 | "optional": true,
149 | "os": [
150 | "darwin"
151 | ],
152 | "engines": {
153 | "node": ">=14.21.3"
154 | }
155 | },
156 | "node_modules/@biomejs/cli-linux-arm64": {
157 | "version": "1.9.4",
158 | "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64/-/cli-linux-arm64-1.9.4.tgz",
159 | "integrity": "sha512-fJIW0+LYujdjUgJJuwesP4EjIBl/N/TcOX3IvIHJQNsAqvV2CHIogsmA94BPG6jZATS4Hi+xv4SkBBQSt1N4/g==",
160 | "cpu": [
161 | "arm64"
162 | ],
163 | "dev": true,
164 | "optional": true,
165 | "os": [
166 | "linux"
167 | ],
168 | "engines": {
169 | "node": ">=14.21.3"
170 | }
171 | },
172 | "node_modules/@biomejs/cli-linux-arm64-musl": {
173 | "version": "1.9.4",
174 | "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-1.9.4.tgz",
175 | "integrity": "sha512-v665Ct9WCRjGa8+kTr0CzApU0+XXtRgwmzIf1SeKSGAv+2scAlW6JR5PMFo6FzqqZ64Po79cKODKf3/AAmECqA==",
176 | "cpu": [
177 | "arm64"
178 | ],
179 | "dev": true,
180 | "optional": true,
181 | "os": [
182 | "linux"
183 | ],
184 | "engines": {
185 | "node": ">=14.21.3"
186 | }
187 | },
188 | "node_modules/@biomejs/cli-linux-x64": {
189 | "version": "1.9.4",
190 | "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64/-/cli-linux-x64-1.9.4.tgz",
191 | "integrity": "sha512-lRCJv/Vi3Vlwmbd6K+oQ0KhLHMAysN8lXoCI7XeHlxaajk06u7G+UsFSO01NAs5iYuWKmVZjmiOzJ0OJmGsMwg==",
192 | "cpu": [
193 | "x64"
194 | ],
195 | "dev": true,
196 | "optional": true,
197 | "os": [
198 | "linux"
199 | ],
200 | "engines": {
201 | "node": ">=14.21.3"
202 | }
203 | },
204 | "node_modules/@biomejs/cli-linux-x64-musl": {
205 | "version": "1.9.4",
206 | "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-1.9.4.tgz",
207 | "integrity": "sha512-gEhi/jSBhZ2m6wjV530Yy8+fNqG8PAinM3oV7CyO+6c3CEh16Eizm21uHVsyVBEB6RIM8JHIl6AGYCv6Q6Q9Tg==",
208 | "cpu": [
209 | "x64"
210 | ],
211 | "dev": true,
212 | "optional": true,
213 | "os": [
214 | "linux"
215 | ],
216 | "engines": {
217 | "node": ">=14.21.3"
218 | }
219 | },
220 | "node_modules/@biomejs/cli-win32-arm64": {
221 | "version": "1.9.4",
222 | "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-arm64/-/cli-win32-arm64-1.9.4.tgz",
223 | "integrity": "sha512-tlbhLk+WXZmgwoIKwHIHEBZUwxml7bRJgk0X2sPyNR3S93cdRq6XulAZRQJ17FYGGzWne0fgrXBKpl7l4M87Hg==",
224 | "cpu": [
225 | "arm64"
226 | ],
227 | "dev": true,
228 | "optional": true,
229 | "os": [
230 | "win32"
231 | ],
232 | "engines": {
233 | "node": ">=14.21.3"
234 | }
235 | },
236 | "node_modules/@biomejs/cli-win32-x64": {
237 | "version": "1.9.4",
238 | "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-x64/-/cli-win32-x64-1.9.4.tgz",
239 | "integrity": "sha512-8Y5wMhVIPaWe6jw2H+KlEm4wP/f7EW3810ZLmDlrEEy5KvBsb9ECEfu/kMWD484ijfQ8+nIi0giMgu9g1UAuuA==",
240 | "cpu": [
241 | "x64"
242 | ],
243 | "dev": true,
244 | "optional": true,
245 | "os": [
246 | "win32"
247 | ],
248 | "engines": {
249 | "node": ">=14.21.3"
250 | }
251 | },
252 | "node_modules/@esbuild/aix-ppc64": {
253 | "version": "0.25.5",
254 | "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.5.tgz",
255 | "integrity": "sha512-9o3TMmpmftaCMepOdA5k/yDw8SfInyzWWTjYTFCX3kPSDJMROQTb8jg+h9Cnwnmm1vOzvxN7gIfB5V2ewpjtGA==",
256 | "cpu": [
257 | "ppc64"
258 | ],
259 | "dev": true,
260 | "license": "MIT",
261 | "optional": true,
262 | "os": [
263 | "aix"
264 | ],
265 | "engines": {
266 | "node": ">=18"
267 | }
268 | },
269 | "node_modules/@esbuild/android-arm": {
270 | "version": "0.25.5",
271 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.5.tgz",
272 | "integrity": "sha512-AdJKSPeEHgi7/ZhuIPtcQKr5RQdo6OO2IL87JkianiMYMPbCtot9fxPbrMiBADOWWm3T2si9stAiVsGbTQFkbA==",
273 | "cpu": [
274 | "arm"
275 | ],
276 | "dev": true,
277 | "license": "MIT",
278 | "optional": true,
279 | "os": [
280 | "android"
281 | ],
282 | "engines": {
283 | "node": ">=18"
284 | }
285 | },
286 | "node_modules/@esbuild/android-arm64": {
287 | "version": "0.25.5",
288 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.5.tgz",
289 | "integrity": "sha512-VGzGhj4lJO+TVGV1v8ntCZWJktV7SGCs3Pn1GRWI1SBFtRALoomm8k5E9Pmwg3HOAal2VDc2F9+PM/rEY6oIDg==",
290 | "cpu": [
291 | "arm64"
292 | ],
293 | "dev": true,
294 | "license": "MIT",
295 | "optional": true,
296 | "os": [
297 | "android"
298 | ],
299 | "engines": {
300 | "node": ">=18"
301 | }
302 | },
303 | "node_modules/@esbuild/android-x64": {
304 | "version": "0.25.5",
305 | "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.5.tgz",
306 | "integrity": "sha512-D2GyJT1kjvO//drbRT3Hib9XPwQeWd9vZoBJn+bu/lVsOZ13cqNdDeqIF/xQ5/VmWvMduP6AmXvylO/PIc2isw==",
307 | "cpu": [
308 | "x64"
309 | ],
310 | "dev": true,
311 | "license": "MIT",
312 | "optional": true,
313 | "os": [
314 | "android"
315 | ],
316 | "engines": {
317 | "node": ">=18"
318 | }
319 | },
320 | "node_modules/@esbuild/darwin-arm64": {
321 | "version": "0.25.5",
322 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.5.tgz",
323 | "integrity": "sha512-GtaBgammVvdF7aPIgH2jxMDdivezgFu6iKpmT+48+F8Hhg5J/sfnDieg0aeG/jfSvkYQU2/pceFPDKlqZzwnfQ==",
324 | "cpu": [
325 | "arm64"
326 | ],
327 | "dev": true,
328 | "license": "MIT",
329 | "optional": true,
330 | "os": [
331 | "darwin"
332 | ],
333 | "engines": {
334 | "node": ">=18"
335 | }
336 | },
337 | "node_modules/@esbuild/darwin-x64": {
338 | "version": "0.25.5",
339 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.5.tgz",
340 | "integrity": "sha512-1iT4FVL0dJ76/q1wd7XDsXrSW+oLoquptvh4CLR4kITDtqi2e/xwXwdCVH8hVHU43wgJdsq7Gxuzcs6Iq/7bxQ==",
341 | "cpu": [
342 | "x64"
343 | ],
344 | "dev": true,
345 | "license": "MIT",
346 | "optional": true,
347 | "os": [
348 | "darwin"
349 | ],
350 | "engines": {
351 | "node": ">=18"
352 | }
353 | },
354 | "node_modules/@esbuild/freebsd-arm64": {
355 | "version": "0.25.5",
356 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.5.tgz",
357 | "integrity": "sha512-nk4tGP3JThz4La38Uy/gzyXtpkPW8zSAmoUhK9xKKXdBCzKODMc2adkB2+8om9BDYugz+uGV7sLmpTYzvmz6Sw==",
358 | "cpu": [
359 | "arm64"
360 | ],
361 | "dev": true,
362 | "license": "MIT",
363 | "optional": true,
364 | "os": [
365 | "freebsd"
366 | ],
367 | "engines": {
368 | "node": ">=18"
369 | }
370 | },
371 | "node_modules/@esbuild/freebsd-x64": {
372 | "version": "0.25.5",
373 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.5.tgz",
374 | "integrity": "sha512-PrikaNjiXdR2laW6OIjlbeuCPrPaAl0IwPIaRv+SMV8CiM8i2LqVUHFC1+8eORgWyY7yhQY+2U2fA55mBzReaw==",
375 | "cpu": [
376 | "x64"
377 | ],
378 | "dev": true,
379 | "license": "MIT",
380 | "optional": true,
381 | "os": [
382 | "freebsd"
383 | ],
384 | "engines": {
385 | "node": ">=18"
386 | }
387 | },
388 | "node_modules/@esbuild/linux-arm": {
389 | "version": "0.25.5",
390 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.5.tgz",
391 | "integrity": "sha512-cPzojwW2okgh7ZlRpcBEtsX7WBuqbLrNXqLU89GxWbNt6uIg78ET82qifUy3W6OVww6ZWobWub5oqZOVtwolfw==",
392 | "cpu": [
393 | "arm"
394 | ],
395 | "dev": true,
396 | "license": "MIT",
397 | "optional": true,
398 | "os": [
399 | "linux"
400 | ],
401 | "engines": {
402 | "node": ">=18"
403 | }
404 | },
405 | "node_modules/@esbuild/linux-arm64": {
406 | "version": "0.25.5",
407 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.5.tgz",
408 | "integrity": "sha512-Z9kfb1v6ZlGbWj8EJk9T6czVEjjq2ntSYLY2cw6pAZl4oKtfgQuS4HOq41M/BcoLPzrUbNd+R4BXFyH//nHxVg==",
409 | "cpu": [
410 | "arm64"
411 | ],
412 | "dev": true,
413 | "license": "MIT",
414 | "optional": true,
415 | "os": [
416 | "linux"
417 | ],
418 | "engines": {
419 | "node": ">=18"
420 | }
421 | },
422 | "node_modules/@esbuild/linux-ia32": {
423 | "version": "0.25.5",
424 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.5.tgz",
425 | "integrity": "sha512-sQ7l00M8bSv36GLV95BVAdhJ2QsIbCuCjh/uYrWiMQSUuV+LpXwIqhgJDcvMTj+VsQmqAHL2yYaasENvJ7CDKA==",
426 | "cpu": [
427 | "ia32"
428 | ],
429 | "dev": true,
430 | "license": "MIT",
431 | "optional": true,
432 | "os": [
433 | "linux"
434 | ],
435 | "engines": {
436 | "node": ">=18"
437 | }
438 | },
439 | "node_modules/@esbuild/linux-loong64": {
440 | "version": "0.25.5",
441 | "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.5.tgz",
442 | "integrity": "sha512-0ur7ae16hDUC4OL5iEnDb0tZHDxYmuQyhKhsPBV8f99f6Z9KQM02g33f93rNH5A30agMS46u2HP6qTdEt6Q1kg==",
443 | "cpu": [
444 | "loong64"
445 | ],
446 | "dev": true,
447 | "license": "MIT",
448 | "optional": true,
449 | "os": [
450 | "linux"
451 | ],
452 | "engines": {
453 | "node": ">=18"
454 | }
455 | },
456 | "node_modules/@esbuild/linux-mips64el": {
457 | "version": "0.25.5",
458 | "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.5.tgz",
459 | "integrity": "sha512-kB/66P1OsHO5zLz0i6X0RxlQ+3cu0mkxS3TKFvkb5lin6uwZ/ttOkP3Z8lfR9mJOBk14ZwZ9182SIIWFGNmqmg==",
460 | "cpu": [
461 | "mips64el"
462 | ],
463 | "dev": true,
464 | "license": "MIT",
465 | "optional": true,
466 | "os": [
467 | "linux"
468 | ],
469 | "engines": {
470 | "node": ">=18"
471 | }
472 | },
473 | "node_modules/@esbuild/linux-ppc64": {
474 | "version": "0.25.5",
475 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.5.tgz",
476 | "integrity": "sha512-UZCmJ7r9X2fe2D6jBmkLBMQetXPXIsZjQJCjgwpVDz+YMcS6oFR27alkgGv3Oqkv07bxdvw7fyB71/olceJhkQ==",
477 | "cpu": [
478 | "ppc64"
479 | ],
480 | "dev": true,
481 | "license": "MIT",
482 | "optional": true,
483 | "os": [
484 | "linux"
485 | ],
486 | "engines": {
487 | "node": ">=18"
488 | }
489 | },
490 | "node_modules/@esbuild/linux-riscv64": {
491 | "version": "0.25.5",
492 | "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.5.tgz",
493 | "integrity": "sha512-kTxwu4mLyeOlsVIFPfQo+fQJAV9mh24xL+y+Bm6ej067sYANjyEw1dNHmvoqxJUCMnkBdKpvOn0Ahql6+4VyeA==",
494 | "cpu": [
495 | "riscv64"
496 | ],
497 | "dev": true,
498 | "license": "MIT",
499 | "optional": true,
500 | "os": [
501 | "linux"
502 | ],
503 | "engines": {
504 | "node": ">=18"
505 | }
506 | },
507 | "node_modules/@esbuild/linux-s390x": {
508 | "version": "0.25.5",
509 | "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.5.tgz",
510 | "integrity": "sha512-K2dSKTKfmdh78uJ3NcWFiqyRrimfdinS5ErLSn3vluHNeHVnBAFWC8a4X5N+7FgVE1EjXS1QDZbpqZBjfrqMTQ==",
511 | "cpu": [
512 | "s390x"
513 | ],
514 | "dev": true,
515 | "license": "MIT",
516 | "optional": true,
517 | "os": [
518 | "linux"
519 | ],
520 | "engines": {
521 | "node": ">=18"
522 | }
523 | },
524 | "node_modules/@esbuild/linux-x64": {
525 | "version": "0.25.5",
526 | "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.5.tgz",
527 | "integrity": "sha512-uhj8N2obKTE6pSZ+aMUbqq+1nXxNjZIIjCjGLfsWvVpy7gKCOL6rsY1MhRh9zLtUtAI7vpgLMK6DxjO8Qm9lJw==",
528 | "cpu": [
529 | "x64"
530 | ],
531 | "dev": true,
532 | "license": "MIT",
533 | "optional": true,
534 | "os": [
535 | "linux"
536 | ],
537 | "engines": {
538 | "node": ">=18"
539 | }
540 | },
541 | "node_modules/@esbuild/netbsd-arm64": {
542 | "version": "0.25.5",
543 | "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.5.tgz",
544 | "integrity": "sha512-pwHtMP9viAy1oHPvgxtOv+OkduK5ugofNTVDilIzBLpoWAM16r7b/mxBvfpuQDpRQFMfuVr5aLcn4yveGvBZvw==",
545 | "cpu": [
546 | "arm64"
547 | ],
548 | "dev": true,
549 | "license": "MIT",
550 | "optional": true,
551 | "os": [
552 | "netbsd"
553 | ],
554 | "engines": {
555 | "node": ">=18"
556 | }
557 | },
558 | "node_modules/@esbuild/netbsd-x64": {
559 | "version": "0.25.5",
560 | "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.5.tgz",
561 | "integrity": "sha512-WOb5fKrvVTRMfWFNCroYWWklbnXH0Q5rZppjq0vQIdlsQKuw6mdSihwSo4RV/YdQ5UCKKvBy7/0ZZYLBZKIbwQ==",
562 | "cpu": [
563 | "x64"
564 | ],
565 | "dev": true,
566 | "license": "MIT",
567 | "optional": true,
568 | "os": [
569 | "netbsd"
570 | ],
571 | "engines": {
572 | "node": ">=18"
573 | }
574 | },
575 | "node_modules/@esbuild/openbsd-arm64": {
576 | "version": "0.25.5",
577 | "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.5.tgz",
578 | "integrity": "sha512-7A208+uQKgTxHd0G0uqZO8UjK2R0DDb4fDmERtARjSHWxqMTye4Erz4zZafx7Di9Cv+lNHYuncAkiGFySoD+Mw==",
579 | "cpu": [
580 | "arm64"
581 | ],
582 | "dev": true,
583 | "license": "MIT",
584 | "optional": true,
585 | "os": [
586 | "openbsd"
587 | ],
588 | "engines": {
589 | "node": ">=18"
590 | }
591 | },
592 | "node_modules/@esbuild/openbsd-x64": {
593 | "version": "0.25.5",
594 | "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.5.tgz",
595 | "integrity": "sha512-G4hE405ErTWraiZ8UiSoesH8DaCsMm0Cay4fsFWOOUcz8b8rC6uCvnagr+gnioEjWn0wC+o1/TAHt+It+MpIMg==",
596 | "cpu": [
597 | "x64"
598 | ],
599 | "dev": true,
600 | "license": "MIT",
601 | "optional": true,
602 | "os": [
603 | "openbsd"
604 | ],
605 | "engines": {
606 | "node": ">=18"
607 | }
608 | },
609 | "node_modules/@esbuild/sunos-x64": {
610 | "version": "0.25.5",
611 | "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.5.tgz",
612 | "integrity": "sha512-l+azKShMy7FxzY0Rj4RCt5VD/q8mG/e+mDivgspo+yL8zW7qEwctQ6YqKX34DTEleFAvCIUviCFX1SDZRSyMQA==",
613 | "cpu": [
614 | "x64"
615 | ],
616 | "dev": true,
617 | "license": "MIT",
618 | "optional": true,
619 | "os": [
620 | "sunos"
621 | ],
622 | "engines": {
623 | "node": ">=18"
624 | }
625 | },
626 | "node_modules/@esbuild/win32-arm64": {
627 | "version": "0.25.5",
628 | "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.5.tgz",
629 | "integrity": "sha512-O2S7SNZzdcFG7eFKgvwUEZ2VG9D/sn/eIiz8XRZ1Q/DO5a3s76Xv0mdBzVM5j5R639lXQmPmSo0iRpHqUUrsxw==",
630 | "cpu": [
631 | "arm64"
632 | ],
633 | "dev": true,
634 | "license": "MIT",
635 | "optional": true,
636 | "os": [
637 | "win32"
638 | ],
639 | "engines": {
640 | "node": ">=18"
641 | }
642 | },
643 | "node_modules/@esbuild/win32-ia32": {
644 | "version": "0.25.5",
645 | "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.5.tgz",
646 | "integrity": "sha512-onOJ02pqs9h1iMJ1PQphR+VZv8qBMQ77Klcsqv9CNW2w6yLqoURLcgERAIurY6QE63bbLuqgP9ATqajFLK5AMQ==",
647 | "cpu": [
648 | "ia32"
649 | ],
650 | "dev": true,
651 | "license": "MIT",
652 | "optional": true,
653 | "os": [
654 | "win32"
655 | ],
656 | "engines": {
657 | "node": ">=18"
658 | }
659 | },
660 | "node_modules/@esbuild/win32-x64": {
661 | "version": "0.25.5",
662 | "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.5.tgz",
663 | "integrity": "sha512-TXv6YnJ8ZMVdX+SXWVBo/0p8LTcrUYngpWjvm91TMjjBQii7Oz11Lw5lbDV5Y0TzuhSJHwiH4hEtC1I42mMS0g==",
664 | "cpu": [
665 | "x64"
666 | ],
667 | "dev": true,
668 | "license": "MIT",
669 | "optional": true,
670 | "os": [
671 | "win32"
672 | ],
673 | "engines": {
674 | "node": ">=18"
675 | }
676 | },
677 | "node_modules/@isaacs/cliui": {
678 | "version": "8.0.2",
679 | "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
680 | "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
681 | "dev": true,
682 | "dependencies": {
683 | "string-width": "^5.1.2",
684 | "string-width-cjs": "npm:string-width@^4.2.0",
685 | "strip-ansi": "^7.0.1",
686 | "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
687 | "wrap-ansi": "^8.1.0",
688 | "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
689 | },
690 | "engines": {
691 | "node": ">=12"
692 | }
693 | },
694 | "node_modules/@isaacs/cliui/node_modules/ansi-regex": {
695 | "version": "6.0.1",
696 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
697 | "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
698 | "dev": true,
699 | "engines": {
700 | "node": ">=12"
701 | },
702 | "funding": {
703 | "url": "https://github.com/chalk/ansi-regex?sponsor=1"
704 | }
705 | },
706 | "node_modules/@isaacs/cliui/node_modules/emoji-regex": {
707 | "version": "9.2.2",
708 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
709 | "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
710 | "dev": true
711 | },
712 | "node_modules/@isaacs/cliui/node_modules/string-width": {
713 | "version": "5.1.2",
714 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
715 | "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
716 | "dev": true,
717 | "dependencies": {
718 | "eastasianwidth": "^0.2.0",
719 | "emoji-regex": "^9.2.2",
720 | "strip-ansi": "^7.0.1"
721 | },
722 | "engines": {
723 | "node": ">=12"
724 | },
725 | "funding": {
726 | "url": "https://github.com/sponsors/sindresorhus"
727 | }
728 | },
729 | "node_modules/@isaacs/cliui/node_modules/strip-ansi": {
730 | "version": "7.1.0",
731 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
732 | "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
733 | "dev": true,
734 | "dependencies": {
735 | "ansi-regex": "^6.0.1"
736 | },
737 | "engines": {
738 | "node": ">=12"
739 | },
740 | "funding": {
741 | "url": "https://github.com/chalk/strip-ansi?sponsor=1"
742 | }
743 | },
744 | "node_modules/@isaacs/cliui/node_modules/wrap-ansi": {
745 | "version": "8.1.0",
746 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
747 | "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
748 | "dev": true,
749 | "dependencies": {
750 | "ansi-styles": "^6.1.0",
751 | "string-width": "^5.0.1",
752 | "strip-ansi": "^7.0.1"
753 | },
754 | "engines": {
755 | "node": ">=12"
756 | },
757 | "funding": {
758 | "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
759 | }
760 | },
761 | "node_modules/@istanbuljs/schema": {
762 | "version": "0.1.3",
763 | "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz",
764 | "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==",
765 | "dev": true,
766 | "engines": {
767 | "node": ">=8"
768 | }
769 | },
770 | "node_modules/@jridgewell/gen-mapping": {
771 | "version": "0.3.5",
772 | "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
773 | "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
774 | "dev": true,
775 | "dependencies": {
776 | "@jridgewell/set-array": "^1.2.1",
777 | "@jridgewell/sourcemap-codec": "^1.4.10",
778 | "@jridgewell/trace-mapping": "^0.3.24"
779 | },
780 | "engines": {
781 | "node": ">=6.0.0"
782 | }
783 | },
784 | "node_modules/@jridgewell/resolve-uri": {
785 | "version": "3.1.0",
786 | "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
787 | "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==",
788 | "dev": true,
789 | "engines": {
790 | "node": ">=6.0.0"
791 | }
792 | },
793 | "node_modules/@jridgewell/set-array": {
794 | "version": "1.2.1",
795 | "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
796 | "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
797 | "dev": true,
798 | "engines": {
799 | "node": ">=6.0.0"
800 | }
801 | },
802 | "node_modules/@jridgewell/sourcemap-codec": {
803 | "version": "1.5.0",
804 | "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
805 | "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
806 | "dev": true
807 | },
808 | "node_modules/@jridgewell/trace-mapping": {
809 | "version": "0.3.25",
810 | "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
811 | "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
812 | "dev": true,
813 | "dependencies": {
814 | "@jridgewell/resolve-uri": "^3.1.0",
815 | "@jridgewell/sourcemap-codec": "^1.4.14"
816 | }
817 | },
818 | "node_modules/@pkgjs/parseargs": {
819 | "version": "0.11.0",
820 | "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
821 | "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
822 | "dev": true,
823 | "optional": true,
824 | "engines": {
825 | "node": ">=14"
826 | }
827 | },
828 | "node_modules/@rollup/rollup-android-arm-eabi": {
829 | "version": "4.41.1",
830 | "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.41.1.tgz",
831 | "integrity": "sha512-NELNvyEWZ6R9QMkiytB4/L4zSEaBC03KIXEghptLGLZWJ6VPrL63ooZQCOnlx36aQPGhzuOMwDerC1Eb2VmrLw==",
832 | "cpu": [
833 | "arm"
834 | ],
835 | "dev": true,
836 | "license": "MIT",
837 | "optional": true,
838 | "os": [
839 | "android"
840 | ]
841 | },
842 | "node_modules/@rollup/rollup-android-arm64": {
843 | "version": "4.41.1",
844 | "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.41.1.tgz",
845 | "integrity": "sha512-DXdQe1BJ6TK47ukAoZLehRHhfKnKg9BjnQYUu9gzhI8Mwa1d2fzxA1aw2JixHVl403bwp1+/o/NhhHtxWJBgEA==",
846 | "cpu": [
847 | "arm64"
848 | ],
849 | "dev": true,
850 | "license": "MIT",
851 | "optional": true,
852 | "os": [
853 | "android"
854 | ]
855 | },
856 | "node_modules/@rollup/rollup-darwin-arm64": {
857 | "version": "4.41.1",
858 | "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.41.1.tgz",
859 | "integrity": "sha512-5afxvwszzdulsU2w8JKWwY8/sJOLPzf0e1bFuvcW5h9zsEg+RQAojdW0ux2zyYAz7R8HvvzKCjLNJhVq965U7w==",
860 | "cpu": [
861 | "arm64"
862 | ],
863 | "dev": true,
864 | "license": "MIT",
865 | "optional": true,
866 | "os": [
867 | "darwin"
868 | ]
869 | },
870 | "node_modules/@rollup/rollup-darwin-x64": {
871 | "version": "4.41.1",
872 | "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.41.1.tgz",
873 | "integrity": "sha512-egpJACny8QOdHNNMZKf8xY0Is6gIMz+tuqXlusxquWu3F833DcMwmGM7WlvCO9sB3OsPjdC4U0wHw5FabzCGZg==",
874 | "cpu": [
875 | "x64"
876 | ],
877 | "dev": true,
878 | "license": "MIT",
879 | "optional": true,
880 | "os": [
881 | "darwin"
882 | ]
883 | },
884 | "node_modules/@rollup/rollup-freebsd-arm64": {
885 | "version": "4.41.1",
886 | "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.41.1.tgz",
887 | "integrity": "sha512-DBVMZH5vbjgRk3r0OzgjS38z+atlupJ7xfKIDJdZZL6sM6wjfDNo64aowcLPKIx7LMQi8vybB56uh1Ftck/Atg==",
888 | "cpu": [
889 | "arm64"
890 | ],
891 | "dev": true,
892 | "license": "MIT",
893 | "optional": true,
894 | "os": [
895 | "freebsd"
896 | ]
897 | },
898 | "node_modules/@rollup/rollup-freebsd-x64": {
899 | "version": "4.41.1",
900 | "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.41.1.tgz",
901 | "integrity": "sha512-3FkydeohozEskBxNWEIbPfOE0aqQgB6ttTkJ159uWOFn42VLyfAiyD9UK5mhu+ItWzft60DycIN1Xdgiy8o/SA==",
902 | "cpu": [
903 | "x64"
904 | ],
905 | "dev": true,
906 | "license": "MIT",
907 | "optional": true,
908 | "os": [
909 | "freebsd"
910 | ]
911 | },
912 | "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
913 | "version": "4.41.1",
914 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.41.1.tgz",
915 | "integrity": "sha512-wC53ZNDgt0pqx5xCAgNunkTzFE8GTgdZ9EwYGVcg+jEjJdZGtq9xPjDnFgfFozQI/Xm1mh+D9YlYtl+ueswNEg==",
916 | "cpu": [
917 | "arm"
918 | ],
919 | "dev": true,
920 | "license": "MIT",
921 | "optional": true,
922 | "os": [
923 | "linux"
924 | ]
925 | },
926 | "node_modules/@rollup/rollup-linux-arm-musleabihf": {
927 | "version": "4.41.1",
928 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.41.1.tgz",
929 | "integrity": "sha512-jwKCca1gbZkZLhLRtsrka5N8sFAaxrGz/7wRJ8Wwvq3jug7toO21vWlViihG85ei7uJTpzbXZRcORotE+xyrLA==",
930 | "cpu": [
931 | "arm"
932 | ],
933 | "dev": true,
934 | "license": "MIT",
935 | "optional": true,
936 | "os": [
937 | "linux"
938 | ]
939 | },
940 | "node_modules/@rollup/rollup-linux-arm64-gnu": {
941 | "version": "4.41.1",
942 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.41.1.tgz",
943 | "integrity": "sha512-g0UBcNknsmmNQ8V2d/zD2P7WWfJKU0F1nu0k5pW4rvdb+BIqMm8ToluW/eeRmxCared5dD76lS04uL4UaNgpNA==",
944 | "cpu": [
945 | "arm64"
946 | ],
947 | "dev": true,
948 | "license": "MIT",
949 | "optional": true,
950 | "os": [
951 | "linux"
952 | ]
953 | },
954 | "node_modules/@rollup/rollup-linux-arm64-musl": {
955 | "version": "4.41.1",
956 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.41.1.tgz",
957 | "integrity": "sha512-XZpeGB5TKEZWzIrj7sXr+BEaSgo/ma/kCgrZgL0oo5qdB1JlTzIYQKel/RmhT6vMAvOdM2teYlAaOGJpJ9lahg==",
958 | "cpu": [
959 | "arm64"
960 | ],
961 | "dev": true,
962 | "license": "MIT",
963 | "optional": true,
964 | "os": [
965 | "linux"
966 | ]
967 | },
968 | "node_modules/@rollup/rollup-linux-loongarch64-gnu": {
969 | "version": "4.41.1",
970 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.41.1.tgz",
971 | "integrity": "sha512-bkCfDJ4qzWfFRCNt5RVV4DOw6KEgFTUZi2r2RuYhGWC8WhCA8lCAJhDeAmrM/fdiAH54m0mA0Vk2FGRPyzI+tw==",
972 | "cpu": [
973 | "loong64"
974 | ],
975 | "dev": true,
976 | "license": "MIT",
977 | "optional": true,
978 | "os": [
979 | "linux"
980 | ]
981 | },
982 | "node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
983 | "version": "4.41.1",
984 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.41.1.tgz",
985 | "integrity": "sha512-3mr3Xm+gvMX+/8EKogIZSIEF0WUu0HL9di+YWlJpO8CQBnoLAEL/roTCxuLncEdgcfJcvA4UMOf+2dnjl4Ut1A==",
986 | "cpu": [
987 | "ppc64"
988 | ],
989 | "dev": true,
990 | "license": "MIT",
991 | "optional": true,
992 | "os": [
993 | "linux"
994 | ]
995 | },
996 | "node_modules/@rollup/rollup-linux-riscv64-gnu": {
997 | "version": "4.41.1",
998 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.41.1.tgz",
999 | "integrity": "sha512-3rwCIh6MQ1LGrvKJitQjZFuQnT2wxfU+ivhNBzmxXTXPllewOF7JR1s2vMX/tWtUYFgphygxjqMl76q4aMotGw==",
1000 | "cpu": [
1001 | "riscv64"
1002 | ],
1003 | "dev": true,
1004 | "license": "MIT",
1005 | "optional": true,
1006 | "os": [
1007 | "linux"
1008 | ]
1009 | },
1010 | "node_modules/@rollup/rollup-linux-riscv64-musl": {
1011 | "version": "4.41.1",
1012 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.41.1.tgz",
1013 | "integrity": "sha512-LdIUOb3gvfmpkgFZuccNa2uYiqtgZAz3PTzjuM5bH3nvuy9ty6RGc/Q0+HDFrHrizJGVpjnTZ1yS5TNNjFlklw==",
1014 | "cpu": [
1015 | "riscv64"
1016 | ],
1017 | "dev": true,
1018 | "license": "MIT",
1019 | "optional": true,
1020 | "os": [
1021 | "linux"
1022 | ]
1023 | },
1024 | "node_modules/@rollup/rollup-linux-s390x-gnu": {
1025 | "version": "4.41.1",
1026 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.41.1.tgz",
1027 | "integrity": "sha512-oIE6M8WC9ma6xYqjvPhzZYk6NbobIURvP/lEbh7FWplcMO6gn7MM2yHKA1eC/GvYwzNKK/1LYgqzdkZ8YFxR8g==",
1028 | "cpu": [
1029 | "s390x"
1030 | ],
1031 | "dev": true,
1032 | "license": "MIT",
1033 | "optional": true,
1034 | "os": [
1035 | "linux"
1036 | ]
1037 | },
1038 | "node_modules/@rollup/rollup-linux-x64-gnu": {
1039 | "version": "4.41.1",
1040 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.41.1.tgz",
1041 | "integrity": "sha512-cWBOvayNvA+SyeQMp79BHPK8ws6sHSsYnK5zDcsC3Hsxr1dgTABKjMnMslPq1DvZIp6uO7kIWhiGwaTdR4Og9A==",
1042 | "cpu": [
1043 | "x64"
1044 | ],
1045 | "dev": true,
1046 | "license": "MIT",
1047 | "optional": true,
1048 | "os": [
1049 | "linux"
1050 | ]
1051 | },
1052 | "node_modules/@rollup/rollup-linux-x64-musl": {
1053 | "version": "4.41.1",
1054 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.41.1.tgz",
1055 | "integrity": "sha512-y5CbN44M+pUCdGDlZFzGGBSKCA4A/J2ZH4edTYSSxFg7ce1Xt3GtydbVKWLlzL+INfFIZAEg1ZV6hh9+QQf9YQ==",
1056 | "cpu": [
1057 | "x64"
1058 | ],
1059 | "dev": true,
1060 | "license": "MIT",
1061 | "optional": true,
1062 | "os": [
1063 | "linux"
1064 | ]
1065 | },
1066 | "node_modules/@rollup/rollup-win32-arm64-msvc": {
1067 | "version": "4.41.1",
1068 | "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.41.1.tgz",
1069 | "integrity": "sha512-lZkCxIrjlJlMt1dLO/FbpZbzt6J/A8p4DnqzSa4PWqPEUUUnzXLeki/iyPLfV0BmHItlYgHUqJe+3KiyydmiNQ==",
1070 | "cpu": [
1071 | "arm64"
1072 | ],
1073 | "dev": true,
1074 | "license": "MIT",
1075 | "optional": true,
1076 | "os": [
1077 | "win32"
1078 | ]
1079 | },
1080 | "node_modules/@rollup/rollup-win32-ia32-msvc": {
1081 | "version": "4.41.1",
1082 | "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.41.1.tgz",
1083 | "integrity": "sha512-+psFT9+pIh2iuGsxFYYa/LhS5MFKmuivRsx9iPJWNSGbh2XVEjk90fmpUEjCnILPEPJnikAU6SFDiEUyOv90Pg==",
1084 | "cpu": [
1085 | "ia32"
1086 | ],
1087 | "dev": true,
1088 | "license": "MIT",
1089 | "optional": true,
1090 | "os": [
1091 | "win32"
1092 | ]
1093 | },
1094 | "node_modules/@rollup/rollup-win32-x64-msvc": {
1095 | "version": "4.41.1",
1096 | "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.41.1.tgz",
1097 | "integrity": "sha512-Wq2zpapRYLfi4aKxf2Xff0tN+7slj2d4R87WEzqw7ZLsVvO5zwYCIuEGSZYiK41+GlwUo1HiR+GdkLEJnCKTCw==",
1098 | "cpu": [
1099 | "x64"
1100 | ],
1101 | "dev": true,
1102 | "license": "MIT",
1103 | "optional": true,
1104 | "os": [
1105 | "win32"
1106 | ]
1107 | },
1108 | "node_modules/@types/chai": {
1109 | "version": "5.2.2",
1110 | "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.2.tgz",
1111 | "integrity": "sha512-8kB30R7Hwqf40JPiKhVzodJs2Qc1ZJ5zuT3uzw5Hq/dhNCl3G3l83jfpdI1e20BP348+fV7VIL/+FxaXkqBmWg==",
1112 | "dev": true,
1113 | "license": "MIT",
1114 | "dependencies": {
1115 | "@types/deep-eql": "*"
1116 | }
1117 | },
1118 | "node_modules/@types/deep-eql": {
1119 | "version": "4.0.2",
1120 | "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz",
1121 | "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==",
1122 | "dev": true,
1123 | "license": "MIT"
1124 | },
1125 | "node_modules/@types/estree": {
1126 | "version": "1.0.7",
1127 | "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz",
1128 | "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==",
1129 | "dev": true,
1130 | "license": "MIT"
1131 | },
1132 | "node_modules/@vitest/coverage-v8": {
1133 | "version": "3.2.0",
1134 | "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-3.2.0.tgz",
1135 | "integrity": "sha512-HjgvaokAiHxRMI5ioXl4WmgAi4zQtKtnltOOlmpzUqApdcTTZrZJAastbbRGydtiqwtYLFaIb6Jpo3PzowZ0cg==",
1136 | "dev": true,
1137 | "license": "MIT",
1138 | "dependencies": {
1139 | "@ampproject/remapping": "^2.3.0",
1140 | "@bcoe/v8-coverage": "^1.0.2",
1141 | "ast-v8-to-istanbul": "^0.3.3",
1142 | "debug": "^4.4.1",
1143 | "istanbul-lib-coverage": "^3.2.2",
1144 | "istanbul-lib-report": "^3.0.1",
1145 | "istanbul-lib-source-maps": "^5.0.6",
1146 | "istanbul-reports": "^3.1.7",
1147 | "magic-string": "^0.30.17",
1148 | "magicast": "^0.3.5",
1149 | "std-env": "^3.9.0",
1150 | "test-exclude": "^7.0.1",
1151 | "tinyrainbow": "^2.0.0"
1152 | },
1153 | "funding": {
1154 | "url": "https://opencollective.com/vitest"
1155 | },
1156 | "peerDependencies": {
1157 | "@vitest/browser": "3.2.0",
1158 | "vitest": "3.2.0"
1159 | },
1160 | "peerDependenciesMeta": {
1161 | "@vitest/browser": {
1162 | "optional": true
1163 | }
1164 | }
1165 | },
1166 | "node_modules/@vitest/coverage-v8/node_modules/brace-expansion": {
1167 | "version": "2.0.1",
1168 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
1169 | "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
1170 | "dev": true,
1171 | "dependencies": {
1172 | "balanced-match": "^1.0.0"
1173 | }
1174 | },
1175 | "node_modules/@vitest/coverage-v8/node_modules/foreground-child": {
1176 | "version": "3.2.1",
1177 | "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.2.1.tgz",
1178 | "integrity": "sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==",
1179 | "dev": true,
1180 | "dependencies": {
1181 | "cross-spawn": "^7.0.0",
1182 | "signal-exit": "^4.0.1"
1183 | },
1184 | "engines": {
1185 | "node": ">=14"
1186 | },
1187 | "funding": {
1188 | "url": "https://github.com/sponsors/isaacs"
1189 | }
1190 | },
1191 | "node_modules/@vitest/coverage-v8/node_modules/glob": {
1192 | "version": "10.4.5",
1193 | "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
1194 | "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
1195 | "dev": true,
1196 | "dependencies": {
1197 | "foreground-child": "^3.1.0",
1198 | "jackspeak": "^3.1.2",
1199 | "minimatch": "^9.0.4",
1200 | "minipass": "^7.1.2",
1201 | "package-json-from-dist": "^1.0.0",
1202 | "path-scurry": "^1.11.1"
1203 | },
1204 | "bin": {
1205 | "glob": "dist/esm/bin.mjs"
1206 | },
1207 | "funding": {
1208 | "url": "https://github.com/sponsors/isaacs"
1209 | }
1210 | },
1211 | "node_modules/@vitest/coverage-v8/node_modules/minimatch": {
1212 | "version": "9.0.5",
1213 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
1214 | "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
1215 | "dev": true,
1216 | "dependencies": {
1217 | "brace-expansion": "^2.0.1"
1218 | },
1219 | "engines": {
1220 | "node": ">=16 || 14 >=14.17"
1221 | },
1222 | "funding": {
1223 | "url": "https://github.com/sponsors/isaacs"
1224 | }
1225 | },
1226 | "node_modules/@vitest/coverage-v8/node_modules/signal-exit": {
1227 | "version": "4.1.0",
1228 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
1229 | "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
1230 | "dev": true,
1231 | "engines": {
1232 | "node": ">=14"
1233 | },
1234 | "funding": {
1235 | "url": "https://github.com/sponsors/isaacs"
1236 | }
1237 | },
1238 | "node_modules/@vitest/coverage-v8/node_modules/test-exclude": {
1239 | "version": "7.0.1",
1240 | "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-7.0.1.tgz",
1241 | "integrity": "sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==",
1242 | "dev": true,
1243 | "dependencies": {
1244 | "@istanbuljs/schema": "^0.1.2",
1245 | "glob": "^10.4.1",
1246 | "minimatch": "^9.0.4"
1247 | },
1248 | "engines": {
1249 | "node": ">=18"
1250 | }
1251 | },
1252 | "node_modules/@vitest/expect": {
1253 | "version": "3.2.0",
1254 | "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.2.0.tgz",
1255 | "integrity": "sha512-0v4YVbhDKX3SKoy0PHWXpKhj44w+3zZkIoVES9Ex2pq+u6+Bijijbi2ua5kE+h3qT6LBWFTNZSCOEU37H8Y5sA==",
1256 | "dev": true,
1257 | "license": "MIT",
1258 | "dependencies": {
1259 | "@types/chai": "^5.2.2",
1260 | "@vitest/spy": "3.2.0",
1261 | "@vitest/utils": "3.2.0",
1262 | "chai": "^5.2.0",
1263 | "tinyrainbow": "^2.0.0"
1264 | },
1265 | "funding": {
1266 | "url": "https://opencollective.com/vitest"
1267 | }
1268 | },
1269 | "node_modules/@vitest/mocker": {
1270 | "version": "3.2.0",
1271 | "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.2.0.tgz",
1272 | "integrity": "sha512-HFcW0lAMx3eN9vQqis63H0Pscv0QcVMo1Kv8BNysZbxcmHu3ZUYv59DS6BGYiGQ8F5lUkmsfMMlPm4DJFJdf/A==",
1273 | "dev": true,
1274 | "license": "MIT",
1275 | "dependencies": {
1276 | "@vitest/spy": "3.2.0",
1277 | "estree-walker": "^3.0.3",
1278 | "magic-string": "^0.30.17"
1279 | },
1280 | "funding": {
1281 | "url": "https://opencollective.com/vitest"
1282 | },
1283 | "peerDependencies": {
1284 | "msw": "^2.4.9",
1285 | "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0"
1286 | },
1287 | "peerDependenciesMeta": {
1288 | "msw": {
1289 | "optional": true
1290 | },
1291 | "vite": {
1292 | "optional": true
1293 | }
1294 | }
1295 | },
1296 | "node_modules/@vitest/pretty-format": {
1297 | "version": "3.2.0",
1298 | "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.2.0.tgz",
1299 | "integrity": "sha512-gUUhaUmPBHFkrqnOokmfMGRBMHhgpICud9nrz/xpNV3/4OXCn35oG+Pl8rYYsKaTNd/FAIrqRHnwpDpmYxCYZw==",
1300 | "dev": true,
1301 | "license": "MIT",
1302 | "dependencies": {
1303 | "tinyrainbow": "^2.0.0"
1304 | },
1305 | "funding": {
1306 | "url": "https://opencollective.com/vitest"
1307 | }
1308 | },
1309 | "node_modules/@vitest/runner": {
1310 | "version": "3.2.0",
1311 | "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-3.2.0.tgz",
1312 | "integrity": "sha512-bXdmnHxuB7fXJdh+8vvnlwi/m1zvu+I06i1dICVcDQFhyV4iKw2RExC/acavtDn93m/dRuawUObKsrNE1gJacA==",
1313 | "dev": true,
1314 | "license": "MIT",
1315 | "dependencies": {
1316 | "@vitest/utils": "3.2.0",
1317 | "pathe": "^2.0.3"
1318 | },
1319 | "funding": {
1320 | "url": "https://opencollective.com/vitest"
1321 | }
1322 | },
1323 | "node_modules/@vitest/snapshot": {
1324 | "version": "3.2.0",
1325 | "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.2.0.tgz",
1326 | "integrity": "sha512-z7P/EneBRMe7hdvWhcHoXjhA6at0Q4ipcoZo6SqgxLyQQ8KSMMCmvw1cSt7FHib3ozt0wnRHc37ivuUMbxzG/A==",
1327 | "dev": true,
1328 | "license": "MIT",
1329 | "dependencies": {
1330 | "@vitest/pretty-format": "3.2.0",
1331 | "magic-string": "^0.30.17",
1332 | "pathe": "^2.0.3"
1333 | },
1334 | "funding": {
1335 | "url": "https://opencollective.com/vitest"
1336 | }
1337 | },
1338 | "node_modules/@vitest/spy": {
1339 | "version": "3.2.0",
1340 | "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.2.0.tgz",
1341 | "integrity": "sha512-s3+TkCNUIEOX99S0JwNDfsHRaZDDZZR/n8F0mop0PmsEbQGKZikCGpTGZ6JRiHuONKew3Fb5//EPwCP+pUX9cw==",
1342 | "dev": true,
1343 | "license": "MIT",
1344 | "dependencies": {
1345 | "tinyspy": "^4.0.3"
1346 | },
1347 | "funding": {
1348 | "url": "https://opencollective.com/vitest"
1349 | }
1350 | },
1351 | "node_modules/@vitest/utils": {
1352 | "version": "3.2.0",
1353 | "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.2.0.tgz",
1354 | "integrity": "sha512-gXXOe7Fj6toCsZKVQouTRLJftJwmvbhH5lKOBR6rlP950zUq9AitTUjnFoXS/CqjBC2aoejAztLPzzuva++XBw==",
1355 | "dev": true,
1356 | "license": "MIT",
1357 | "dependencies": {
1358 | "@vitest/pretty-format": "3.2.0",
1359 | "loupe": "^3.1.3",
1360 | "tinyrainbow": "^2.0.0"
1361 | },
1362 | "funding": {
1363 | "url": "https://opencollective.com/vitest"
1364 | }
1365 | },
1366 | "node_modules/ansi-regex": {
1367 | "version": "5.0.1",
1368 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
1369 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
1370 | "dev": true,
1371 | "engines": {
1372 | "node": ">=8"
1373 | }
1374 | },
1375 | "node_modules/ansi-styles": {
1376 | "version": "6.2.1",
1377 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
1378 | "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
1379 | "dev": true,
1380 | "engines": {
1381 | "node": ">=12"
1382 | },
1383 | "funding": {
1384 | "url": "https://github.com/chalk/ansi-styles?sponsor=1"
1385 | }
1386 | },
1387 | "node_modules/assertion-error": {
1388 | "version": "2.0.1",
1389 | "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz",
1390 | "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==",
1391 | "dev": true,
1392 | "license": "MIT",
1393 | "engines": {
1394 | "node": ">=12"
1395 | }
1396 | },
1397 | "node_modules/ast-v8-to-istanbul": {
1398 | "version": "0.3.3",
1399 | "resolved": "https://registry.npmjs.org/ast-v8-to-istanbul/-/ast-v8-to-istanbul-0.3.3.tgz",
1400 | "integrity": "sha512-MuXMrSLVVoA6sYN/6Hke18vMzrT4TZNbZIj/hvh0fnYFpO+/kFXcLIaiPwXXWaQUPg4yJD8fj+lfJ7/1EBconw==",
1401 | "dev": true,
1402 | "license": "MIT",
1403 | "dependencies": {
1404 | "@jridgewell/trace-mapping": "^0.3.25",
1405 | "estree-walker": "^3.0.3",
1406 | "js-tokens": "^9.0.1"
1407 | }
1408 | },
1409 | "node_modules/balanced-match": {
1410 | "version": "1.0.0",
1411 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
1412 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
1413 | "dev": true
1414 | },
1415 | "node_modules/cac": {
1416 | "version": "6.7.14",
1417 | "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz",
1418 | "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==",
1419 | "dev": true,
1420 | "license": "MIT",
1421 | "engines": {
1422 | "node": ">=8"
1423 | }
1424 | },
1425 | "node_modules/chai": {
1426 | "version": "5.2.0",
1427 | "resolved": "https://registry.npmjs.org/chai/-/chai-5.2.0.tgz",
1428 | "integrity": "sha512-mCuXncKXk5iCLhfhwTc0izo0gtEmpz5CtG2y8GiOINBlMVS6v8TMRc5TaLWKS6692m9+dVVfzgeVxR5UxWHTYw==",
1429 | "dev": true,
1430 | "license": "MIT",
1431 | "dependencies": {
1432 | "assertion-error": "^2.0.1",
1433 | "check-error": "^2.1.1",
1434 | "deep-eql": "^5.0.1",
1435 | "loupe": "^3.1.0",
1436 | "pathval": "^2.0.0"
1437 | },
1438 | "engines": {
1439 | "node": ">=12"
1440 | }
1441 | },
1442 | "node_modules/check-error": {
1443 | "version": "2.1.1",
1444 | "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz",
1445 | "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==",
1446 | "dev": true,
1447 | "license": "MIT",
1448 | "engines": {
1449 | "node": ">= 16"
1450 | }
1451 | },
1452 | "node_modules/cross-spawn": {
1453 | "version": "7.0.3",
1454 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
1455 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
1456 | "dev": true,
1457 | "dependencies": {
1458 | "path-key": "^3.1.0",
1459 | "shebang-command": "^2.0.0",
1460 | "which": "^2.0.1"
1461 | },
1462 | "engines": {
1463 | "node": ">= 8"
1464 | }
1465 | },
1466 | "node_modules/debug": {
1467 | "version": "4.4.1",
1468 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz",
1469 | "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==",
1470 | "dev": true,
1471 | "license": "MIT",
1472 | "dependencies": {
1473 | "ms": "^2.1.3"
1474 | },
1475 | "engines": {
1476 | "node": ">=6.0"
1477 | },
1478 | "peerDependenciesMeta": {
1479 | "supports-color": {
1480 | "optional": true
1481 | }
1482 | }
1483 | },
1484 | "node_modules/deep-eql": {
1485 | "version": "5.0.2",
1486 | "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz",
1487 | "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==",
1488 | "dev": true,
1489 | "license": "MIT",
1490 | "engines": {
1491 | "node": ">=6"
1492 | }
1493 | },
1494 | "node_modules/defu": {
1495 | "version": "6.1.4",
1496 | "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.4.tgz",
1497 | "integrity": "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg=="
1498 | },
1499 | "node_modules/destr": {
1500 | "version": "2.0.3",
1501 | "resolved": "https://registry.npmjs.org/destr/-/destr-2.0.3.tgz",
1502 | "integrity": "sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ=="
1503 | },
1504 | "node_modules/dom-serializer": {
1505 | "version": "1.3.2",
1506 | "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz",
1507 | "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==",
1508 | "dependencies": {
1509 | "domelementtype": "^2.0.1",
1510 | "domhandler": "^4.2.0",
1511 | "entities": "^2.0.0"
1512 | },
1513 | "funding": {
1514 | "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
1515 | }
1516 | },
1517 | "node_modules/dom-serializer/node_modules/entities": {
1518 | "version": "2.2.0",
1519 | "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
1520 | "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==",
1521 | "funding": {
1522 | "url": "https://github.com/fb55/entities?sponsor=1"
1523 | }
1524 | },
1525 | "node_modules/domelementtype": {
1526 | "version": "2.2.0",
1527 | "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz",
1528 | "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==",
1529 | "funding": [
1530 | {
1531 | "type": "github",
1532 | "url": "https://github.com/sponsors/fb55"
1533 | }
1534 | ]
1535 | },
1536 | "node_modules/domhandler": {
1537 | "version": "4.2.2",
1538 | "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.2.2.tgz",
1539 | "integrity": "sha512-PzE9aBMsdZO8TK4BnuJwH0QT41wgMbRzuZrHUcpYncEjmQazq8QEaBWgLG7ZyC/DAZKEgglpIA6j4Qn/HmxS3w==",
1540 | "dependencies": {
1541 | "domelementtype": "^2.2.0"
1542 | },
1543 | "engines": {
1544 | "node": ">= 4"
1545 | },
1546 | "funding": {
1547 | "url": "https://github.com/fb55/domhandler?sponsor=1"
1548 | }
1549 | },
1550 | "node_modules/domutils": {
1551 | "version": "2.8.0",
1552 | "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz",
1553 | "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==",
1554 | "dependencies": {
1555 | "dom-serializer": "^1.0.1",
1556 | "domelementtype": "^2.2.0",
1557 | "domhandler": "^4.2.0"
1558 | },
1559 | "funding": {
1560 | "url": "https://github.com/fb55/domutils?sponsor=1"
1561 | }
1562 | },
1563 | "node_modules/eastasianwidth": {
1564 | "version": "0.2.0",
1565 | "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
1566 | "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
1567 | "dev": true
1568 | },
1569 | "node_modules/emoji-regex": {
1570 | "version": "8.0.0",
1571 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
1572 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
1573 | "dev": true
1574 | },
1575 | "node_modules/entities": {
1576 | "version": "3.0.1",
1577 | "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz",
1578 | "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==",
1579 | "engines": {
1580 | "node": ">=0.12"
1581 | },
1582 | "funding": {
1583 | "url": "https://github.com/fb55/entities?sponsor=1"
1584 | }
1585 | },
1586 | "node_modules/es-module-lexer": {
1587 | "version": "1.7.0",
1588 | "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz",
1589 | "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==",
1590 | "dev": true,
1591 | "license": "MIT"
1592 | },
1593 | "node_modules/esbuild": {
1594 | "version": "0.25.5",
1595 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.5.tgz",
1596 | "integrity": "sha512-P8OtKZRv/5J5hhz0cUAdu/cLuPIKXpQl1R9pZtvmHWQvrAUVd0UNIPT4IB4W3rNOqVO0rlqHmCIbSwxh/c9yUQ==",
1597 | "dev": true,
1598 | "hasInstallScript": true,
1599 | "license": "MIT",
1600 | "bin": {
1601 | "esbuild": "bin/esbuild"
1602 | },
1603 | "engines": {
1604 | "node": ">=18"
1605 | },
1606 | "optionalDependencies": {
1607 | "@esbuild/aix-ppc64": "0.25.5",
1608 | "@esbuild/android-arm": "0.25.5",
1609 | "@esbuild/android-arm64": "0.25.5",
1610 | "@esbuild/android-x64": "0.25.5",
1611 | "@esbuild/darwin-arm64": "0.25.5",
1612 | "@esbuild/darwin-x64": "0.25.5",
1613 | "@esbuild/freebsd-arm64": "0.25.5",
1614 | "@esbuild/freebsd-x64": "0.25.5",
1615 | "@esbuild/linux-arm": "0.25.5",
1616 | "@esbuild/linux-arm64": "0.25.5",
1617 | "@esbuild/linux-ia32": "0.25.5",
1618 | "@esbuild/linux-loong64": "0.25.5",
1619 | "@esbuild/linux-mips64el": "0.25.5",
1620 | "@esbuild/linux-ppc64": "0.25.5",
1621 | "@esbuild/linux-riscv64": "0.25.5",
1622 | "@esbuild/linux-s390x": "0.25.5",
1623 | "@esbuild/linux-x64": "0.25.5",
1624 | "@esbuild/netbsd-arm64": "0.25.5",
1625 | "@esbuild/netbsd-x64": "0.25.5",
1626 | "@esbuild/openbsd-arm64": "0.25.5",
1627 | "@esbuild/openbsd-x64": "0.25.5",
1628 | "@esbuild/sunos-x64": "0.25.5",
1629 | "@esbuild/win32-arm64": "0.25.5",
1630 | "@esbuild/win32-ia32": "0.25.5",
1631 | "@esbuild/win32-x64": "0.25.5"
1632 | }
1633 | },
1634 | "node_modules/estree-walker": {
1635 | "version": "3.0.3",
1636 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz",
1637 | "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==",
1638 | "dev": true,
1639 | "license": "MIT",
1640 | "dependencies": {
1641 | "@types/estree": "^1.0.0"
1642 | }
1643 | },
1644 | "node_modules/expect-type": {
1645 | "version": "1.2.1",
1646 | "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.2.1.tgz",
1647 | "integrity": "sha512-/kP8CAwxzLVEeFrMm4kMmy4CCDlpipyA7MYLVrdJIkV0fYF0UaigQHRsxHiuY/GEea+bh4KSv3TIlgr+2UL6bw==",
1648 | "dev": true,
1649 | "license": "Apache-2.0",
1650 | "engines": {
1651 | "node": ">=12.0.0"
1652 | }
1653 | },
1654 | "node_modules/fclone": {
1655 | "version": "1.0.11",
1656 | "resolved": "https://registry.npmjs.org/fclone/-/fclone-1.0.11.tgz",
1657 | "integrity": "sha1-EOhdo4v+p/xZk0HClu4ddyZu5kA="
1658 | },
1659 | "node_modules/fdir": {
1660 | "version": "6.4.5",
1661 | "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.5.tgz",
1662 | "integrity": "sha512-4BG7puHpVsIYxZUbiUE3RqGloLaSSwzYie5jvasC4LWuBWzZawynvYouhjbQKw2JuIGYdm0DzIxl8iVidKlUEw==",
1663 | "dev": true,
1664 | "license": "MIT",
1665 | "peerDependencies": {
1666 | "picomatch": "^3 || ^4"
1667 | },
1668 | "peerDependenciesMeta": {
1669 | "picomatch": {
1670 | "optional": true
1671 | }
1672 | }
1673 | },
1674 | "node_modules/fsevents": {
1675 | "version": "2.3.3",
1676 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
1677 | "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
1678 | "dev": true,
1679 | "hasInstallScript": true,
1680 | "license": "MIT",
1681 | "optional": true,
1682 | "os": [
1683 | "darwin"
1684 | ],
1685 | "engines": {
1686 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
1687 | }
1688 | },
1689 | "node_modules/has-flag": {
1690 | "version": "4.0.0",
1691 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
1692 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
1693 | "dev": true,
1694 | "engines": {
1695 | "node": ">=8"
1696 | }
1697 | },
1698 | "node_modules/html-escaper": {
1699 | "version": "2.0.2",
1700 | "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
1701 | "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
1702 | "dev": true
1703 | },
1704 | "node_modules/htmlparser2": {
1705 | "version": "7.1.1",
1706 | "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.1.1.tgz",
1707 | "integrity": "sha512-hZb0lfG0hbhR/hB879zbBr8Opv0Be9Zp+JYHgqTw5epF++aotu/zmMTPLy/60iJyR1MaD/3pYRp7xYteXsZMEA==",
1708 | "funding": [
1709 | "https://github.com/fb55/htmlparser2?sponsor=1",
1710 | {
1711 | "type": "github",
1712 | "url": "https://github.com/sponsors/fb55"
1713 | }
1714 | ],
1715 | "dependencies": {
1716 | "domelementtype": "^2.0.1",
1717 | "domhandler": "^4.0.0",
1718 | "domutils": "^2.8.0",
1719 | "entities": "^3.0.1"
1720 | }
1721 | },
1722 | "node_modules/is-fullwidth-code-point": {
1723 | "version": "3.0.0",
1724 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
1725 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
1726 | "dev": true,
1727 | "engines": {
1728 | "node": ">=8"
1729 | }
1730 | },
1731 | "node_modules/is-json": {
1732 | "version": "2.0.1",
1733 | "resolved": "https://registry.npmjs.org/is-json/-/is-json-2.0.1.tgz",
1734 | "integrity": "sha1-a+Fm0USCihMdaGiRuYPfYsOUkf8="
1735 | },
1736 | "node_modules/is-url": {
1737 | "version": "1.2.4",
1738 | "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz",
1739 | "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww=="
1740 | },
1741 | "node_modules/isexe": {
1742 | "version": "2.0.0",
1743 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
1744 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
1745 | "dev": true
1746 | },
1747 | "node_modules/istanbul-lib-coverage": {
1748 | "version": "3.2.2",
1749 | "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz",
1750 | "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==",
1751 | "dev": true,
1752 | "engines": {
1753 | "node": ">=8"
1754 | }
1755 | },
1756 | "node_modules/istanbul-lib-report": {
1757 | "version": "3.0.1",
1758 | "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz",
1759 | "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==",
1760 | "dev": true,
1761 | "dependencies": {
1762 | "istanbul-lib-coverage": "^3.0.0",
1763 | "make-dir": "^4.0.0",
1764 | "supports-color": "^7.1.0"
1765 | },
1766 | "engines": {
1767 | "node": ">=10"
1768 | }
1769 | },
1770 | "node_modules/istanbul-lib-source-maps": {
1771 | "version": "5.0.6",
1772 | "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-5.0.6.tgz",
1773 | "integrity": "sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==",
1774 | "dev": true,
1775 | "dependencies": {
1776 | "@jridgewell/trace-mapping": "^0.3.23",
1777 | "debug": "^4.1.1",
1778 | "istanbul-lib-coverage": "^3.0.0"
1779 | },
1780 | "engines": {
1781 | "node": ">=10"
1782 | }
1783 | },
1784 | "node_modules/istanbul-reports": {
1785 | "version": "3.1.7",
1786 | "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz",
1787 | "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==",
1788 | "dev": true,
1789 | "dependencies": {
1790 | "html-escaper": "^2.0.0",
1791 | "istanbul-lib-report": "^3.0.0"
1792 | },
1793 | "engines": {
1794 | "node": ">=8"
1795 | }
1796 | },
1797 | "node_modules/jackspeak": {
1798 | "version": "3.4.3",
1799 | "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz",
1800 | "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==",
1801 | "dev": true,
1802 | "dependencies": {
1803 | "@isaacs/cliui": "^8.0.2"
1804 | },
1805 | "funding": {
1806 | "url": "https://github.com/sponsors/isaacs"
1807 | },
1808 | "optionalDependencies": {
1809 | "@pkgjs/parseargs": "^0.11.0"
1810 | }
1811 | },
1812 | "node_modules/js-tokens": {
1813 | "version": "9.0.1",
1814 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz",
1815 | "integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==",
1816 | "dev": true,
1817 | "license": "MIT"
1818 | },
1819 | "node_modules/loupe": {
1820 | "version": "3.1.3",
1821 | "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.3.tgz",
1822 | "integrity": "sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==",
1823 | "dev": true,
1824 | "license": "MIT"
1825 | },
1826 | "node_modules/lru-cache": {
1827 | "version": "6.0.0",
1828 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
1829 | "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
1830 | "dev": true,
1831 | "dependencies": {
1832 | "yallist": "^4.0.0"
1833 | },
1834 | "engines": {
1835 | "node": ">=10"
1836 | }
1837 | },
1838 | "node_modules/magic-string": {
1839 | "version": "0.30.17",
1840 | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz",
1841 | "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==",
1842 | "dev": true,
1843 | "license": "MIT",
1844 | "dependencies": {
1845 | "@jridgewell/sourcemap-codec": "^1.5.0"
1846 | }
1847 | },
1848 | "node_modules/magicast": {
1849 | "version": "0.3.5",
1850 | "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.3.5.tgz",
1851 | "integrity": "sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==",
1852 | "dev": true,
1853 | "dependencies": {
1854 | "@babel/parser": "^7.25.4",
1855 | "@babel/types": "^7.25.4",
1856 | "source-map-js": "^1.2.0"
1857 | }
1858 | },
1859 | "node_modules/make-dir": {
1860 | "version": "4.0.0",
1861 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz",
1862 | "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==",
1863 | "dev": true,
1864 | "dependencies": {
1865 | "semver": "^7.5.3"
1866 | },
1867 | "engines": {
1868 | "node": ">=10"
1869 | },
1870 | "funding": {
1871 | "url": "https://github.com/sponsors/sindresorhus"
1872 | }
1873 | },
1874 | "node_modules/minipass": {
1875 | "version": "7.1.2",
1876 | "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
1877 | "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
1878 | "dev": true,
1879 | "engines": {
1880 | "node": ">=16 || 14 >=14.17"
1881 | }
1882 | },
1883 | "node_modules/ms": {
1884 | "version": "2.1.3",
1885 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
1886 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
1887 | "dev": true
1888 | },
1889 | "node_modules/nanoid": {
1890 | "version": "3.3.11",
1891 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
1892 | "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
1893 | "dev": true,
1894 | "funding": [
1895 | {
1896 | "type": "github",
1897 | "url": "https://github.com/sponsors/ai"
1898 | }
1899 | ],
1900 | "license": "MIT",
1901 | "bin": {
1902 | "nanoid": "bin/nanoid.cjs"
1903 | },
1904 | "engines": {
1905 | "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
1906 | }
1907 | },
1908 | "node_modules/node-fetch-native": {
1909 | "version": "1.6.4",
1910 | "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.4.tgz",
1911 | "integrity": "sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ=="
1912 | },
1913 | "node_modules/ofetch": {
1914 | "version": "1.4.1",
1915 | "resolved": "https://registry.npmjs.org/ofetch/-/ofetch-1.4.1.tgz",
1916 | "integrity": "sha512-QZj2DfGplQAr2oj9KzceK9Hwz6Whxazmn85yYeVuS3u9XTMOGMRx0kO95MQ+vLsj/S/NwBDMMLU5hpxvI6Tklw==",
1917 | "dependencies": {
1918 | "destr": "^2.0.3",
1919 | "node-fetch-native": "^1.6.4",
1920 | "ufo": "^1.5.4"
1921 | }
1922 | },
1923 | "node_modules/package-json-from-dist": {
1924 | "version": "1.0.0",
1925 | "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz",
1926 | "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==",
1927 | "dev": true
1928 | },
1929 | "node_modules/path-key": {
1930 | "version": "3.1.1",
1931 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
1932 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
1933 | "dev": true,
1934 | "engines": {
1935 | "node": ">=8"
1936 | }
1937 | },
1938 | "node_modules/path-scurry": {
1939 | "version": "1.11.1",
1940 | "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
1941 | "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
1942 | "dev": true,
1943 | "dependencies": {
1944 | "lru-cache": "^10.2.0",
1945 | "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
1946 | },
1947 | "engines": {
1948 | "node": ">=16 || 14 >=14.18"
1949 | },
1950 | "funding": {
1951 | "url": "https://github.com/sponsors/isaacs"
1952 | }
1953 | },
1954 | "node_modules/path-scurry/node_modules/lru-cache": {
1955 | "version": "10.4.3",
1956 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
1957 | "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
1958 | "dev": true
1959 | },
1960 | "node_modules/pathe": {
1961 | "version": "2.0.3",
1962 | "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz",
1963 | "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==",
1964 | "dev": true,
1965 | "license": "MIT"
1966 | },
1967 | "node_modules/pathval": {
1968 | "version": "2.0.0",
1969 | "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz",
1970 | "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==",
1971 | "dev": true,
1972 | "license": "MIT",
1973 | "engines": {
1974 | "node": ">= 14.16"
1975 | }
1976 | },
1977 | "node_modules/picocolors": {
1978 | "version": "1.1.1",
1979 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
1980 | "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
1981 | "dev": true,
1982 | "license": "ISC"
1983 | },
1984 | "node_modules/picomatch": {
1985 | "version": "4.0.2",
1986 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
1987 | "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
1988 | "dev": true,
1989 | "license": "MIT",
1990 | "engines": {
1991 | "node": ">=12"
1992 | },
1993 | "funding": {
1994 | "url": "https://github.com/sponsors/jonschlinkert"
1995 | }
1996 | },
1997 | "node_modules/postcss": {
1998 | "version": "8.5.4",
1999 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.4.tgz",
2000 | "integrity": "sha512-QSa9EBe+uwlGTFmHsPKokv3B/oEMQZxfqW0QqNCyhpa6mB1afzulwn8hihglqAb2pOw+BJgNlmXQ8la2VeHB7w==",
2001 | "dev": true,
2002 | "funding": [
2003 | {
2004 | "type": "opencollective",
2005 | "url": "https://opencollective.com/postcss/"
2006 | },
2007 | {
2008 | "type": "tidelift",
2009 | "url": "https://tidelift.com/funding/github/npm/postcss"
2010 | },
2011 | {
2012 | "type": "github",
2013 | "url": "https://github.com/sponsors/ai"
2014 | }
2015 | ],
2016 | "license": "MIT",
2017 | "dependencies": {
2018 | "nanoid": "^3.3.11",
2019 | "picocolors": "^1.1.1",
2020 | "source-map-js": "^1.2.1"
2021 | },
2022 | "engines": {
2023 | "node": "^10 || ^12 || >=14"
2024 | }
2025 | },
2026 | "node_modules/posthtml": {
2027 | "version": "0.16.6",
2028 | "resolved": "https://registry.npmjs.org/posthtml/-/posthtml-0.16.6.tgz",
2029 | "integrity": "sha512-JcEmHlyLK/o0uGAlj65vgg+7LIms0xKXe60lcDOTU7oVX/3LuEuLwrQpW3VJ7de5TaFKiW4kWkaIpJL42FEgxQ==",
2030 | "dependencies": {
2031 | "posthtml-parser": "^0.11.0",
2032 | "posthtml-render": "^3.0.0"
2033 | },
2034 | "engines": {
2035 | "node": ">=12.0.0"
2036 | }
2037 | },
2038 | "node_modules/posthtml-expressions": {
2039 | "version": "1.11.4",
2040 | "resolved": "https://registry.npmjs.org/posthtml-expressions/-/posthtml-expressions-1.11.4.tgz",
2041 | "integrity": "sha512-tJI6KhKLcePRO0/i4d01MNXfcaBa2jIu4MuVLixvGwCRzxdY2D7LLm17ijNyQNQu3xOhCffBLtUMju0K64smmQ==",
2042 | "dependencies": {
2043 | "fclone": "^1.0.11",
2044 | "posthtml": "^0.16.5",
2045 | "posthtml-match-helper": "^1.0.1",
2046 | "posthtml-parser": "^0.10.0",
2047 | "posthtml-render": "^3.0.0"
2048 | },
2049 | "engines": {
2050 | "node": ">=10"
2051 | }
2052 | },
2053 | "node_modules/posthtml-match-helper": {
2054 | "version": "1.0.3",
2055 | "resolved": "https://registry.npmjs.org/posthtml-match-helper/-/posthtml-match-helper-1.0.3.tgz",
2056 | "integrity": "sha512-aeRAPvok2Fs6uzSm85665jdAk5UOd8US2QCkWtGU6yLPlKSwzWTSgZZuABc3UeNy3K1lVk/HV9bRkWJYN05Ymw==",
2057 | "peerDependencies": {
2058 | "posthtml": ">=0.5.0"
2059 | }
2060 | },
2061 | "node_modules/posthtml-parser": {
2062 | "version": "0.10.1",
2063 | "resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.10.1.tgz",
2064 | "integrity": "sha512-i7w2QEHqiGtsvNNPty0Mt/+ERch7wkgnFh3+JnBI2VgDbGlBqKW9eDVd3ENUhE1ujGFe3e3E/odf7eKhvLUyDg==",
2065 | "dependencies": {
2066 | "htmlparser2": "^7.1.1"
2067 | },
2068 | "engines": {
2069 | "node": ">=12"
2070 | }
2071 | },
2072 | "node_modules/posthtml-render": {
2073 | "version": "3.0.0",
2074 | "resolved": "https://registry.npmjs.org/posthtml-render/-/posthtml-render-3.0.0.tgz",
2075 | "integrity": "sha512-z+16RoxK3fUPgwaIgH9NGnK1HKY9XIDpydky5eQGgAFVXTCSezalv9U2jQuNV+Z9qV1fDWNzldcw4eK0SSbqKA==",
2076 | "dependencies": {
2077 | "is-json": "^2.0.1"
2078 | },
2079 | "engines": {
2080 | "node": ">=12"
2081 | }
2082 | },
2083 | "node_modules/posthtml/node_modules/posthtml-parser": {
2084 | "version": "0.11.0",
2085 | "resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.11.0.tgz",
2086 | "integrity": "sha512-QecJtfLekJbWVo/dMAA+OSwY79wpRmbqS5TeXvXSX+f0c6pW4/SE6inzZ2qkU7oAMCPqIDkZDvd/bQsSFUnKyw==",
2087 | "dependencies": {
2088 | "htmlparser2": "^7.1.1"
2089 | },
2090 | "engines": {
2091 | "node": ">=12"
2092 | }
2093 | },
2094 | "node_modules/rollup": {
2095 | "version": "4.41.1",
2096 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.41.1.tgz",
2097 | "integrity": "sha512-cPmwD3FnFv8rKMBc1MxWCwVQFxwf1JEmSX3iQXrRVVG15zerAIXRjMFVWnd5Q5QvgKF7Aj+5ykXFhUl+QGnyOw==",
2098 | "dev": true,
2099 | "license": "MIT",
2100 | "dependencies": {
2101 | "@types/estree": "1.0.7"
2102 | },
2103 | "bin": {
2104 | "rollup": "dist/bin/rollup"
2105 | },
2106 | "engines": {
2107 | "node": ">=18.0.0",
2108 | "npm": ">=8.0.0"
2109 | },
2110 | "optionalDependencies": {
2111 | "@rollup/rollup-android-arm-eabi": "4.41.1",
2112 | "@rollup/rollup-android-arm64": "4.41.1",
2113 | "@rollup/rollup-darwin-arm64": "4.41.1",
2114 | "@rollup/rollup-darwin-x64": "4.41.1",
2115 | "@rollup/rollup-freebsd-arm64": "4.41.1",
2116 | "@rollup/rollup-freebsd-x64": "4.41.1",
2117 | "@rollup/rollup-linux-arm-gnueabihf": "4.41.1",
2118 | "@rollup/rollup-linux-arm-musleabihf": "4.41.1",
2119 | "@rollup/rollup-linux-arm64-gnu": "4.41.1",
2120 | "@rollup/rollup-linux-arm64-musl": "4.41.1",
2121 | "@rollup/rollup-linux-loongarch64-gnu": "4.41.1",
2122 | "@rollup/rollup-linux-powerpc64le-gnu": "4.41.1",
2123 | "@rollup/rollup-linux-riscv64-gnu": "4.41.1",
2124 | "@rollup/rollup-linux-riscv64-musl": "4.41.1",
2125 | "@rollup/rollup-linux-s390x-gnu": "4.41.1",
2126 | "@rollup/rollup-linux-x64-gnu": "4.41.1",
2127 | "@rollup/rollup-linux-x64-musl": "4.41.1",
2128 | "@rollup/rollup-win32-arm64-msvc": "4.41.1",
2129 | "@rollup/rollup-win32-ia32-msvc": "4.41.1",
2130 | "@rollup/rollup-win32-x64-msvc": "4.41.1",
2131 | "fsevents": "~2.3.2"
2132 | }
2133 | },
2134 | "node_modules/semver": {
2135 | "version": "7.5.4",
2136 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
2137 | "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
2138 | "dev": true,
2139 | "dependencies": {
2140 | "lru-cache": "^6.0.0"
2141 | },
2142 | "bin": {
2143 | "semver": "bin/semver.js"
2144 | },
2145 | "engines": {
2146 | "node": ">=10"
2147 | }
2148 | },
2149 | "node_modules/shebang-command": {
2150 | "version": "2.0.0",
2151 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
2152 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
2153 | "dev": true,
2154 | "dependencies": {
2155 | "shebang-regex": "^3.0.0"
2156 | },
2157 | "engines": {
2158 | "node": ">=8"
2159 | }
2160 | },
2161 | "node_modules/shebang-regex": {
2162 | "version": "3.0.0",
2163 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
2164 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
2165 | "dev": true,
2166 | "engines": {
2167 | "node": ">=8"
2168 | }
2169 | },
2170 | "node_modules/siginfo": {
2171 | "version": "2.0.0",
2172 | "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz",
2173 | "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==",
2174 | "dev": true
2175 | },
2176 | "node_modules/source-map-js": {
2177 | "version": "1.2.1",
2178 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
2179 | "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
2180 | "dev": true,
2181 | "engines": {
2182 | "node": ">=0.10.0"
2183 | }
2184 | },
2185 | "node_modules/stackback": {
2186 | "version": "0.0.2",
2187 | "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz",
2188 | "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==",
2189 | "dev": true
2190 | },
2191 | "node_modules/std-env": {
2192 | "version": "3.9.0",
2193 | "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.9.0.tgz",
2194 | "integrity": "sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==",
2195 | "dev": true,
2196 | "license": "MIT"
2197 | },
2198 | "node_modules/string-width": {
2199 | "version": "4.2.3",
2200 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
2201 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
2202 | "dev": true,
2203 | "dependencies": {
2204 | "emoji-regex": "^8.0.0",
2205 | "is-fullwidth-code-point": "^3.0.0",
2206 | "strip-ansi": "^6.0.1"
2207 | },
2208 | "engines": {
2209 | "node": ">=8"
2210 | }
2211 | },
2212 | "node_modules/string-width-cjs": {
2213 | "name": "string-width",
2214 | "version": "4.2.3",
2215 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
2216 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
2217 | "dev": true,
2218 | "dependencies": {
2219 | "emoji-regex": "^8.0.0",
2220 | "is-fullwidth-code-point": "^3.0.0",
2221 | "strip-ansi": "^6.0.1"
2222 | },
2223 | "engines": {
2224 | "node": ">=8"
2225 | }
2226 | },
2227 | "node_modules/strip-ansi": {
2228 | "version": "6.0.1",
2229 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
2230 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
2231 | "dev": true,
2232 | "dependencies": {
2233 | "ansi-regex": "^5.0.1"
2234 | },
2235 | "engines": {
2236 | "node": ">=8"
2237 | }
2238 | },
2239 | "node_modules/strip-ansi-cjs": {
2240 | "name": "strip-ansi",
2241 | "version": "6.0.1",
2242 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
2243 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
2244 | "dev": true,
2245 | "dependencies": {
2246 | "ansi-regex": "^5.0.1"
2247 | },
2248 | "engines": {
2249 | "node": ">=8"
2250 | }
2251 | },
2252 | "node_modules/supports-color": {
2253 | "version": "7.2.0",
2254 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
2255 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
2256 | "dev": true,
2257 | "dependencies": {
2258 | "has-flag": "^4.0.0"
2259 | },
2260 | "engines": {
2261 | "node": ">=8"
2262 | }
2263 | },
2264 | "node_modules/tinybench": {
2265 | "version": "2.9.0",
2266 | "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz",
2267 | "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==",
2268 | "dev": true
2269 | },
2270 | "node_modules/tinyexec": {
2271 | "version": "0.3.2",
2272 | "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz",
2273 | "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==",
2274 | "dev": true,
2275 | "license": "MIT"
2276 | },
2277 | "node_modules/tinyglobby": {
2278 | "version": "0.2.14",
2279 | "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz",
2280 | "integrity": "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==",
2281 | "dev": true,
2282 | "license": "MIT",
2283 | "dependencies": {
2284 | "fdir": "^6.4.4",
2285 | "picomatch": "^4.0.2"
2286 | },
2287 | "engines": {
2288 | "node": ">=12.0.0"
2289 | },
2290 | "funding": {
2291 | "url": "https://github.com/sponsors/SuperchupuDev"
2292 | }
2293 | },
2294 | "node_modules/tinypool": {
2295 | "version": "1.1.0",
2296 | "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.1.0.tgz",
2297 | "integrity": "sha512-7CotroY9a8DKsKprEy/a14aCCm8jYVmR7aFy4fpkZM8sdpNJbKkixuNjgM50yCmip2ezc8z4N7k3oe2+rfRJCQ==",
2298 | "dev": true,
2299 | "license": "MIT",
2300 | "engines": {
2301 | "node": "^18.0.0 || >=20.0.0"
2302 | }
2303 | },
2304 | "node_modules/tinyrainbow": {
2305 | "version": "2.0.0",
2306 | "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-2.0.0.tgz",
2307 | "integrity": "sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==",
2308 | "dev": true,
2309 | "license": "MIT",
2310 | "engines": {
2311 | "node": ">=14.0.0"
2312 | }
2313 | },
2314 | "node_modules/tinyspy": {
2315 | "version": "4.0.3",
2316 | "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-4.0.3.tgz",
2317 | "integrity": "sha512-t2T/WLB2WRgZ9EpE4jgPJ9w+i66UZfDc8wHh0xrwiRNN+UwH98GIJkTeZqX9rg0i0ptwzqW+uYeIF0T4F8LR7A==",
2318 | "dev": true,
2319 | "license": "MIT",
2320 | "engines": {
2321 | "node": ">=14.0.0"
2322 | }
2323 | },
2324 | "node_modules/ufo": {
2325 | "version": "1.5.4",
2326 | "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.5.4.tgz",
2327 | "integrity": "sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ=="
2328 | },
2329 | "node_modules/vite": {
2330 | "version": "6.3.5",
2331 | "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.5.tgz",
2332 | "integrity": "sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ==",
2333 | "dev": true,
2334 | "license": "MIT",
2335 | "dependencies": {
2336 | "esbuild": "^0.25.0",
2337 | "fdir": "^6.4.4",
2338 | "picomatch": "^4.0.2",
2339 | "postcss": "^8.5.3",
2340 | "rollup": "^4.34.9",
2341 | "tinyglobby": "^0.2.13"
2342 | },
2343 | "bin": {
2344 | "vite": "bin/vite.js"
2345 | },
2346 | "engines": {
2347 | "node": "^18.0.0 || ^20.0.0 || >=22.0.0"
2348 | },
2349 | "funding": {
2350 | "url": "https://github.com/vitejs/vite?sponsor=1"
2351 | },
2352 | "optionalDependencies": {
2353 | "fsevents": "~2.3.3"
2354 | },
2355 | "peerDependencies": {
2356 | "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0",
2357 | "jiti": ">=1.21.0",
2358 | "less": "*",
2359 | "lightningcss": "^1.21.0",
2360 | "sass": "*",
2361 | "sass-embedded": "*",
2362 | "stylus": "*",
2363 | "sugarss": "*",
2364 | "terser": "^5.16.0",
2365 | "tsx": "^4.8.1",
2366 | "yaml": "^2.4.2"
2367 | },
2368 | "peerDependenciesMeta": {
2369 | "@types/node": {
2370 | "optional": true
2371 | },
2372 | "jiti": {
2373 | "optional": true
2374 | },
2375 | "less": {
2376 | "optional": true
2377 | },
2378 | "lightningcss": {
2379 | "optional": true
2380 | },
2381 | "sass": {
2382 | "optional": true
2383 | },
2384 | "sass-embedded": {
2385 | "optional": true
2386 | },
2387 | "stylus": {
2388 | "optional": true
2389 | },
2390 | "sugarss": {
2391 | "optional": true
2392 | },
2393 | "terser": {
2394 | "optional": true
2395 | },
2396 | "tsx": {
2397 | "optional": true
2398 | },
2399 | "yaml": {
2400 | "optional": true
2401 | }
2402 | }
2403 | },
2404 | "node_modules/vite-node": {
2405 | "version": "3.2.0",
2406 | "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.2.0.tgz",
2407 | "integrity": "sha512-8Fc5Ko5Y4URIJkmMF/iFP1C0/OJyY+VGVe9Nw6WAdZyw4bTO+eVg9mwxWkQp/y8NnAoQY3o9KAvE1ZdA2v+Vmg==",
2408 | "dev": true,
2409 | "license": "MIT",
2410 | "dependencies": {
2411 | "cac": "^6.7.14",
2412 | "debug": "^4.4.1",
2413 | "es-module-lexer": "^1.7.0",
2414 | "pathe": "^2.0.3",
2415 | "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0"
2416 | },
2417 | "bin": {
2418 | "vite-node": "vite-node.mjs"
2419 | },
2420 | "engines": {
2421 | "node": "^18.0.0 || ^20.0.0 || >=22.0.0"
2422 | },
2423 | "funding": {
2424 | "url": "https://opencollective.com/vitest"
2425 | }
2426 | },
2427 | "node_modules/vitest": {
2428 | "version": "3.2.0",
2429 | "resolved": "https://registry.npmjs.org/vitest/-/vitest-3.2.0.tgz",
2430 | "integrity": "sha512-P7Nvwuli8WBNmeMHHek7PnGW4oAZl9za1fddfRVidZar8wDZRi7hpznLKQePQ8JPLwSBEYDK11g+++j7uFJV8Q==",
2431 | "dev": true,
2432 | "license": "MIT",
2433 | "dependencies": {
2434 | "@types/chai": "^5.2.2",
2435 | "@vitest/expect": "3.2.0",
2436 | "@vitest/mocker": "3.2.0",
2437 | "@vitest/pretty-format": "^3.2.0",
2438 | "@vitest/runner": "3.2.0",
2439 | "@vitest/snapshot": "3.2.0",
2440 | "@vitest/spy": "3.2.0",
2441 | "@vitest/utils": "3.2.0",
2442 | "chai": "^5.2.0",
2443 | "debug": "^4.4.1",
2444 | "expect-type": "^1.2.1",
2445 | "magic-string": "^0.30.17",
2446 | "pathe": "^2.0.3",
2447 | "picomatch": "^4.0.2",
2448 | "std-env": "^3.9.0",
2449 | "tinybench": "^2.9.0",
2450 | "tinyexec": "^0.3.2",
2451 | "tinyglobby": "^0.2.14",
2452 | "tinypool": "^1.1.0",
2453 | "tinyrainbow": "^2.0.0",
2454 | "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0",
2455 | "vite-node": "3.2.0",
2456 | "why-is-node-running": "^2.3.0"
2457 | },
2458 | "bin": {
2459 | "vitest": "vitest.mjs"
2460 | },
2461 | "engines": {
2462 | "node": "^18.0.0 || ^20.0.0 || >=22.0.0"
2463 | },
2464 | "funding": {
2465 | "url": "https://opencollective.com/vitest"
2466 | },
2467 | "peerDependencies": {
2468 | "@edge-runtime/vm": "*",
2469 | "@types/debug": "^4.1.12",
2470 | "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0",
2471 | "@vitest/browser": "3.2.0",
2472 | "@vitest/ui": "3.2.0",
2473 | "happy-dom": "*",
2474 | "jsdom": "*"
2475 | },
2476 | "peerDependenciesMeta": {
2477 | "@edge-runtime/vm": {
2478 | "optional": true
2479 | },
2480 | "@types/debug": {
2481 | "optional": true
2482 | },
2483 | "@types/node": {
2484 | "optional": true
2485 | },
2486 | "@vitest/browser": {
2487 | "optional": true
2488 | },
2489 | "@vitest/ui": {
2490 | "optional": true
2491 | },
2492 | "happy-dom": {
2493 | "optional": true
2494 | },
2495 | "jsdom": {
2496 | "optional": true
2497 | }
2498 | }
2499 | },
2500 | "node_modules/which": {
2501 | "version": "2.0.2",
2502 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
2503 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
2504 | "dev": true,
2505 | "dependencies": {
2506 | "isexe": "^2.0.0"
2507 | },
2508 | "bin": {
2509 | "node-which": "bin/node-which"
2510 | },
2511 | "engines": {
2512 | "node": ">= 8"
2513 | }
2514 | },
2515 | "node_modules/why-is-node-running": {
2516 | "version": "2.3.0",
2517 | "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz",
2518 | "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==",
2519 | "dev": true,
2520 | "dependencies": {
2521 | "siginfo": "^2.0.0",
2522 | "stackback": "0.0.2"
2523 | },
2524 | "bin": {
2525 | "why-is-node-running": "cli.js"
2526 | },
2527 | "engines": {
2528 | "node": ">=8"
2529 | }
2530 | },
2531 | "node_modules/wrap-ansi-cjs": {
2532 | "name": "wrap-ansi",
2533 | "version": "7.0.0",
2534 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
2535 | "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
2536 | "dev": true,
2537 | "dependencies": {
2538 | "ansi-styles": "^4.0.0",
2539 | "string-width": "^4.1.0",
2540 | "strip-ansi": "^6.0.0"
2541 | },
2542 | "engines": {
2543 | "node": ">=10"
2544 | },
2545 | "funding": {
2546 | "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
2547 | }
2548 | },
2549 | "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": {
2550 | "version": "4.3.0",
2551 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
2552 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
2553 | "dev": true,
2554 | "dependencies": {
2555 | "color-convert": "^2.0.1"
2556 | },
2557 | "engines": {
2558 | "node": ">=8"
2559 | },
2560 | "funding": {
2561 | "url": "https://github.com/chalk/ansi-styles?sponsor=1"
2562 | }
2563 | },
2564 | "node_modules/wrap-ansi-cjs/node_modules/color-convert": {
2565 | "version": "2.0.1",
2566 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
2567 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
2568 | "dev": true,
2569 | "dependencies": {
2570 | "color-name": "~1.1.4"
2571 | },
2572 | "engines": {
2573 | "node": ">=7.0.0"
2574 | }
2575 | },
2576 | "node_modules/wrap-ansi-cjs/node_modules/color-name": {
2577 | "version": "1.1.4",
2578 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
2579 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
2580 | "dev": true
2581 | },
2582 | "node_modules/yallist": {
2583 | "version": "4.0.0",
2584 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
2585 | "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
2586 | "dev": true
2587 | }
2588 | },
2589 | "dependencies": {
2590 | "@ampproject/remapping": {
2591 | "version": "2.3.0",
2592 | "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz",
2593 | "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==",
2594 | "dev": true,
2595 | "requires": {
2596 | "@jridgewell/gen-mapping": "^0.3.5",
2597 | "@jridgewell/trace-mapping": "^0.3.24"
2598 | }
2599 | },
2600 | "@babel/helper-string-parser": {
2601 | "version": "7.25.9",
2602 | "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz",
2603 | "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==",
2604 | "dev": true
2605 | },
2606 | "@babel/helper-validator-identifier": {
2607 | "version": "7.25.9",
2608 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz",
2609 | "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==",
2610 | "dev": true
2611 | },
2612 | "@babel/parser": {
2613 | "version": "7.26.1",
2614 | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.1.tgz",
2615 | "integrity": "sha512-reoQYNiAJreZNsJzyrDNzFQ+IQ5JFiIzAHJg9bn94S3l+4++J7RsIhNMoB+lgP/9tpmiAQqspv+xfdxTSzREOw==",
2616 | "dev": true,
2617 | "requires": {
2618 | "@babel/types": "^7.26.0"
2619 | }
2620 | },
2621 | "@babel/types": {
2622 | "version": "7.26.0",
2623 | "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz",
2624 | "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==",
2625 | "dev": true,
2626 | "requires": {
2627 | "@babel/helper-string-parser": "^7.25.9",
2628 | "@babel/helper-validator-identifier": "^7.25.9"
2629 | }
2630 | },
2631 | "@bcoe/v8-coverage": {
2632 | "version": "1.0.2",
2633 | "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-1.0.2.tgz",
2634 | "integrity": "sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==",
2635 | "dev": true
2636 | },
2637 | "@biomejs/biome": {
2638 | "version": "1.9.4",
2639 | "resolved": "https://registry.npmjs.org/@biomejs/biome/-/biome-1.9.4.tgz",
2640 | "integrity": "sha512-1rkd7G70+o9KkTn5KLmDYXihGoTaIGO9PIIN2ZB7UJxFrWw04CZHPYiMRjYsaDvVV7hP1dYNRLxSANLaBFGpog==",
2641 | "dev": true,
2642 | "requires": {
2643 | "@biomejs/cli-darwin-arm64": "1.9.4",
2644 | "@biomejs/cli-darwin-x64": "1.9.4",
2645 | "@biomejs/cli-linux-arm64": "1.9.4",
2646 | "@biomejs/cli-linux-arm64-musl": "1.9.4",
2647 | "@biomejs/cli-linux-x64": "1.9.4",
2648 | "@biomejs/cli-linux-x64-musl": "1.9.4",
2649 | "@biomejs/cli-win32-arm64": "1.9.4",
2650 | "@biomejs/cli-win32-x64": "1.9.4"
2651 | }
2652 | },
2653 | "@biomejs/cli-darwin-arm64": {
2654 | "version": "1.9.4",
2655 | "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-1.9.4.tgz",
2656 | "integrity": "sha512-bFBsPWrNvkdKrNCYeAp+xo2HecOGPAy9WyNyB/jKnnedgzl4W4Hb9ZMzYNbf8dMCGmUdSavlYHiR01QaYR58cw==",
2657 | "dev": true,
2658 | "optional": true
2659 | },
2660 | "@biomejs/cli-darwin-x64": {
2661 | "version": "1.9.4",
2662 | "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-x64/-/cli-darwin-x64-1.9.4.tgz",
2663 | "integrity": "sha512-ngYBh/+bEedqkSevPVhLP4QfVPCpb+4BBe2p7Xs32dBgs7rh9nY2AIYUL6BgLw1JVXV8GlpKmb/hNiuIxfPfZg==",
2664 | "dev": true,
2665 | "optional": true
2666 | },
2667 | "@biomejs/cli-linux-arm64": {
2668 | "version": "1.9.4",
2669 | "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64/-/cli-linux-arm64-1.9.4.tgz",
2670 | "integrity": "sha512-fJIW0+LYujdjUgJJuwesP4EjIBl/N/TcOX3IvIHJQNsAqvV2CHIogsmA94BPG6jZATS4Hi+xv4SkBBQSt1N4/g==",
2671 | "dev": true,
2672 | "optional": true
2673 | },
2674 | "@biomejs/cli-linux-arm64-musl": {
2675 | "version": "1.9.4",
2676 | "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-1.9.4.tgz",
2677 | "integrity": "sha512-v665Ct9WCRjGa8+kTr0CzApU0+XXtRgwmzIf1SeKSGAv+2scAlW6JR5PMFo6FzqqZ64Po79cKODKf3/AAmECqA==",
2678 | "dev": true,
2679 | "optional": true
2680 | },
2681 | "@biomejs/cli-linux-x64": {
2682 | "version": "1.9.4",
2683 | "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64/-/cli-linux-x64-1.9.4.tgz",
2684 | "integrity": "sha512-lRCJv/Vi3Vlwmbd6K+oQ0KhLHMAysN8lXoCI7XeHlxaajk06u7G+UsFSO01NAs5iYuWKmVZjmiOzJ0OJmGsMwg==",
2685 | "dev": true,
2686 | "optional": true
2687 | },
2688 | "@biomejs/cli-linux-x64-musl": {
2689 | "version": "1.9.4",
2690 | "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-1.9.4.tgz",
2691 | "integrity": "sha512-gEhi/jSBhZ2m6wjV530Yy8+fNqG8PAinM3oV7CyO+6c3CEh16Eizm21uHVsyVBEB6RIM8JHIl6AGYCv6Q6Q9Tg==",
2692 | "dev": true,
2693 | "optional": true
2694 | },
2695 | "@biomejs/cli-win32-arm64": {
2696 | "version": "1.9.4",
2697 | "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-arm64/-/cli-win32-arm64-1.9.4.tgz",
2698 | "integrity": "sha512-tlbhLk+WXZmgwoIKwHIHEBZUwxml7bRJgk0X2sPyNR3S93cdRq6XulAZRQJ17FYGGzWne0fgrXBKpl7l4M87Hg==",
2699 | "dev": true,
2700 | "optional": true
2701 | },
2702 | "@biomejs/cli-win32-x64": {
2703 | "version": "1.9.4",
2704 | "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-x64/-/cli-win32-x64-1.9.4.tgz",
2705 | "integrity": "sha512-8Y5wMhVIPaWe6jw2H+KlEm4wP/f7EW3810ZLmDlrEEy5KvBsb9ECEfu/kMWD484ijfQ8+nIi0giMgu9g1UAuuA==",
2706 | "dev": true,
2707 | "optional": true
2708 | },
2709 | "@esbuild/aix-ppc64": {
2710 | "version": "0.25.5",
2711 | "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.5.tgz",
2712 | "integrity": "sha512-9o3TMmpmftaCMepOdA5k/yDw8SfInyzWWTjYTFCX3kPSDJMROQTb8jg+h9Cnwnmm1vOzvxN7gIfB5V2ewpjtGA==",
2713 | "dev": true,
2714 | "optional": true
2715 | },
2716 | "@esbuild/android-arm": {
2717 | "version": "0.25.5",
2718 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.5.tgz",
2719 | "integrity": "sha512-AdJKSPeEHgi7/ZhuIPtcQKr5RQdo6OO2IL87JkianiMYMPbCtot9fxPbrMiBADOWWm3T2si9stAiVsGbTQFkbA==",
2720 | "dev": true,
2721 | "optional": true
2722 | },
2723 | "@esbuild/android-arm64": {
2724 | "version": "0.25.5",
2725 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.5.tgz",
2726 | "integrity": "sha512-VGzGhj4lJO+TVGV1v8ntCZWJktV7SGCs3Pn1GRWI1SBFtRALoomm8k5E9Pmwg3HOAal2VDc2F9+PM/rEY6oIDg==",
2727 | "dev": true,
2728 | "optional": true
2729 | },
2730 | "@esbuild/android-x64": {
2731 | "version": "0.25.5",
2732 | "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.5.tgz",
2733 | "integrity": "sha512-D2GyJT1kjvO//drbRT3Hib9XPwQeWd9vZoBJn+bu/lVsOZ13cqNdDeqIF/xQ5/VmWvMduP6AmXvylO/PIc2isw==",
2734 | "dev": true,
2735 | "optional": true
2736 | },
2737 | "@esbuild/darwin-arm64": {
2738 | "version": "0.25.5",
2739 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.5.tgz",
2740 | "integrity": "sha512-GtaBgammVvdF7aPIgH2jxMDdivezgFu6iKpmT+48+F8Hhg5J/sfnDieg0aeG/jfSvkYQU2/pceFPDKlqZzwnfQ==",
2741 | "dev": true,
2742 | "optional": true
2743 | },
2744 | "@esbuild/darwin-x64": {
2745 | "version": "0.25.5",
2746 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.5.tgz",
2747 | "integrity": "sha512-1iT4FVL0dJ76/q1wd7XDsXrSW+oLoquptvh4CLR4kITDtqi2e/xwXwdCVH8hVHU43wgJdsq7Gxuzcs6Iq/7bxQ==",
2748 | "dev": true,
2749 | "optional": true
2750 | },
2751 | "@esbuild/freebsd-arm64": {
2752 | "version": "0.25.5",
2753 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.5.tgz",
2754 | "integrity": "sha512-nk4tGP3JThz4La38Uy/gzyXtpkPW8zSAmoUhK9xKKXdBCzKODMc2adkB2+8om9BDYugz+uGV7sLmpTYzvmz6Sw==",
2755 | "dev": true,
2756 | "optional": true
2757 | },
2758 | "@esbuild/freebsd-x64": {
2759 | "version": "0.25.5",
2760 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.5.tgz",
2761 | "integrity": "sha512-PrikaNjiXdR2laW6OIjlbeuCPrPaAl0IwPIaRv+SMV8CiM8i2LqVUHFC1+8eORgWyY7yhQY+2U2fA55mBzReaw==",
2762 | "dev": true,
2763 | "optional": true
2764 | },
2765 | "@esbuild/linux-arm": {
2766 | "version": "0.25.5",
2767 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.5.tgz",
2768 | "integrity": "sha512-cPzojwW2okgh7ZlRpcBEtsX7WBuqbLrNXqLU89GxWbNt6uIg78ET82qifUy3W6OVww6ZWobWub5oqZOVtwolfw==",
2769 | "dev": true,
2770 | "optional": true
2771 | },
2772 | "@esbuild/linux-arm64": {
2773 | "version": "0.25.5",
2774 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.5.tgz",
2775 | "integrity": "sha512-Z9kfb1v6ZlGbWj8EJk9T6czVEjjq2ntSYLY2cw6pAZl4oKtfgQuS4HOq41M/BcoLPzrUbNd+R4BXFyH//nHxVg==",
2776 | "dev": true,
2777 | "optional": true
2778 | },
2779 | "@esbuild/linux-ia32": {
2780 | "version": "0.25.5",
2781 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.5.tgz",
2782 | "integrity": "sha512-sQ7l00M8bSv36GLV95BVAdhJ2QsIbCuCjh/uYrWiMQSUuV+LpXwIqhgJDcvMTj+VsQmqAHL2yYaasENvJ7CDKA==",
2783 | "dev": true,
2784 | "optional": true
2785 | },
2786 | "@esbuild/linux-loong64": {
2787 | "version": "0.25.5",
2788 | "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.5.tgz",
2789 | "integrity": "sha512-0ur7ae16hDUC4OL5iEnDb0tZHDxYmuQyhKhsPBV8f99f6Z9KQM02g33f93rNH5A30agMS46u2HP6qTdEt6Q1kg==",
2790 | "dev": true,
2791 | "optional": true
2792 | },
2793 | "@esbuild/linux-mips64el": {
2794 | "version": "0.25.5",
2795 | "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.5.tgz",
2796 | "integrity": "sha512-kB/66P1OsHO5zLz0i6X0RxlQ+3cu0mkxS3TKFvkb5lin6uwZ/ttOkP3Z8lfR9mJOBk14ZwZ9182SIIWFGNmqmg==",
2797 | "dev": true,
2798 | "optional": true
2799 | },
2800 | "@esbuild/linux-ppc64": {
2801 | "version": "0.25.5",
2802 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.5.tgz",
2803 | "integrity": "sha512-UZCmJ7r9X2fe2D6jBmkLBMQetXPXIsZjQJCjgwpVDz+YMcS6oFR27alkgGv3Oqkv07bxdvw7fyB71/olceJhkQ==",
2804 | "dev": true,
2805 | "optional": true
2806 | },
2807 | "@esbuild/linux-riscv64": {
2808 | "version": "0.25.5",
2809 | "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.5.tgz",
2810 | "integrity": "sha512-kTxwu4mLyeOlsVIFPfQo+fQJAV9mh24xL+y+Bm6ej067sYANjyEw1dNHmvoqxJUCMnkBdKpvOn0Ahql6+4VyeA==",
2811 | "dev": true,
2812 | "optional": true
2813 | },
2814 | "@esbuild/linux-s390x": {
2815 | "version": "0.25.5",
2816 | "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.5.tgz",
2817 | "integrity": "sha512-K2dSKTKfmdh78uJ3NcWFiqyRrimfdinS5ErLSn3vluHNeHVnBAFWC8a4X5N+7FgVE1EjXS1QDZbpqZBjfrqMTQ==",
2818 | "dev": true,
2819 | "optional": true
2820 | },
2821 | "@esbuild/linux-x64": {
2822 | "version": "0.25.5",
2823 | "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.5.tgz",
2824 | "integrity": "sha512-uhj8N2obKTE6pSZ+aMUbqq+1nXxNjZIIjCjGLfsWvVpy7gKCOL6rsY1MhRh9zLtUtAI7vpgLMK6DxjO8Qm9lJw==",
2825 | "dev": true,
2826 | "optional": true
2827 | },
2828 | "@esbuild/netbsd-arm64": {
2829 | "version": "0.25.5",
2830 | "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.5.tgz",
2831 | "integrity": "sha512-pwHtMP9viAy1oHPvgxtOv+OkduK5ugofNTVDilIzBLpoWAM16r7b/mxBvfpuQDpRQFMfuVr5aLcn4yveGvBZvw==",
2832 | "dev": true,
2833 | "optional": true
2834 | },
2835 | "@esbuild/netbsd-x64": {
2836 | "version": "0.25.5",
2837 | "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.5.tgz",
2838 | "integrity": "sha512-WOb5fKrvVTRMfWFNCroYWWklbnXH0Q5rZppjq0vQIdlsQKuw6mdSihwSo4RV/YdQ5UCKKvBy7/0ZZYLBZKIbwQ==",
2839 | "dev": true,
2840 | "optional": true
2841 | },
2842 | "@esbuild/openbsd-arm64": {
2843 | "version": "0.25.5",
2844 | "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.5.tgz",
2845 | "integrity": "sha512-7A208+uQKgTxHd0G0uqZO8UjK2R0DDb4fDmERtARjSHWxqMTye4Erz4zZafx7Di9Cv+lNHYuncAkiGFySoD+Mw==",
2846 | "dev": true,
2847 | "optional": true
2848 | },
2849 | "@esbuild/openbsd-x64": {
2850 | "version": "0.25.5",
2851 | "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.5.tgz",
2852 | "integrity": "sha512-G4hE405ErTWraiZ8UiSoesH8DaCsMm0Cay4fsFWOOUcz8b8rC6uCvnagr+gnioEjWn0wC+o1/TAHt+It+MpIMg==",
2853 | "dev": true,
2854 | "optional": true
2855 | },
2856 | "@esbuild/sunos-x64": {
2857 | "version": "0.25.5",
2858 | "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.5.tgz",
2859 | "integrity": "sha512-l+azKShMy7FxzY0Rj4RCt5VD/q8mG/e+mDivgspo+yL8zW7qEwctQ6YqKX34DTEleFAvCIUviCFX1SDZRSyMQA==",
2860 | "dev": true,
2861 | "optional": true
2862 | },
2863 | "@esbuild/win32-arm64": {
2864 | "version": "0.25.5",
2865 | "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.5.tgz",
2866 | "integrity": "sha512-O2S7SNZzdcFG7eFKgvwUEZ2VG9D/sn/eIiz8XRZ1Q/DO5a3s76Xv0mdBzVM5j5R639lXQmPmSo0iRpHqUUrsxw==",
2867 | "dev": true,
2868 | "optional": true
2869 | },
2870 | "@esbuild/win32-ia32": {
2871 | "version": "0.25.5",
2872 | "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.5.tgz",
2873 | "integrity": "sha512-onOJ02pqs9h1iMJ1PQphR+VZv8qBMQ77Klcsqv9CNW2w6yLqoURLcgERAIurY6QE63bbLuqgP9ATqajFLK5AMQ==",
2874 | "dev": true,
2875 | "optional": true
2876 | },
2877 | "@esbuild/win32-x64": {
2878 | "version": "0.25.5",
2879 | "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.5.tgz",
2880 | "integrity": "sha512-TXv6YnJ8ZMVdX+SXWVBo/0p8LTcrUYngpWjvm91TMjjBQii7Oz11Lw5lbDV5Y0TzuhSJHwiH4hEtC1I42mMS0g==",
2881 | "dev": true,
2882 | "optional": true
2883 | },
2884 | "@isaacs/cliui": {
2885 | "version": "8.0.2",
2886 | "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
2887 | "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
2888 | "dev": true,
2889 | "requires": {
2890 | "string-width": "^5.1.2",
2891 | "string-width-cjs": "npm:string-width@^4.2.0",
2892 | "strip-ansi": "^7.0.1",
2893 | "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
2894 | "wrap-ansi": "^8.1.0",
2895 | "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
2896 | },
2897 | "dependencies": {
2898 | "ansi-regex": {
2899 | "version": "6.0.1",
2900 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
2901 | "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
2902 | "dev": true
2903 | },
2904 | "emoji-regex": {
2905 | "version": "9.2.2",
2906 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
2907 | "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
2908 | "dev": true
2909 | },
2910 | "string-width": {
2911 | "version": "5.1.2",
2912 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
2913 | "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
2914 | "dev": true,
2915 | "requires": {
2916 | "eastasianwidth": "^0.2.0",
2917 | "emoji-regex": "^9.2.2",
2918 | "strip-ansi": "^7.0.1"
2919 | }
2920 | },
2921 | "strip-ansi": {
2922 | "version": "7.1.0",
2923 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
2924 | "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
2925 | "dev": true,
2926 | "requires": {
2927 | "ansi-regex": "^6.0.1"
2928 | }
2929 | },
2930 | "wrap-ansi": {
2931 | "version": "8.1.0",
2932 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
2933 | "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
2934 | "dev": true,
2935 | "requires": {
2936 | "ansi-styles": "^6.1.0",
2937 | "string-width": "^5.0.1",
2938 | "strip-ansi": "^7.0.1"
2939 | }
2940 | }
2941 | }
2942 | },
2943 | "@istanbuljs/schema": {
2944 | "version": "0.1.3",
2945 | "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz",
2946 | "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==",
2947 | "dev": true
2948 | },
2949 | "@jridgewell/gen-mapping": {
2950 | "version": "0.3.5",
2951 | "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
2952 | "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
2953 | "dev": true,
2954 | "requires": {
2955 | "@jridgewell/set-array": "^1.2.1",
2956 | "@jridgewell/sourcemap-codec": "^1.4.10",
2957 | "@jridgewell/trace-mapping": "^0.3.24"
2958 | }
2959 | },
2960 | "@jridgewell/resolve-uri": {
2961 | "version": "3.1.0",
2962 | "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
2963 | "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==",
2964 | "dev": true
2965 | },
2966 | "@jridgewell/set-array": {
2967 | "version": "1.2.1",
2968 | "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
2969 | "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
2970 | "dev": true
2971 | },
2972 | "@jridgewell/sourcemap-codec": {
2973 | "version": "1.5.0",
2974 | "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
2975 | "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
2976 | "dev": true
2977 | },
2978 | "@jridgewell/trace-mapping": {
2979 | "version": "0.3.25",
2980 | "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
2981 | "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
2982 | "dev": true,
2983 | "requires": {
2984 | "@jridgewell/resolve-uri": "^3.1.0",
2985 | "@jridgewell/sourcemap-codec": "^1.4.14"
2986 | }
2987 | },
2988 | "@pkgjs/parseargs": {
2989 | "version": "0.11.0",
2990 | "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
2991 | "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
2992 | "dev": true,
2993 | "optional": true
2994 | },
2995 | "@rollup/rollup-android-arm-eabi": {
2996 | "version": "4.41.1",
2997 | "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.41.1.tgz",
2998 | "integrity": "sha512-NELNvyEWZ6R9QMkiytB4/L4zSEaBC03KIXEghptLGLZWJ6VPrL63ooZQCOnlx36aQPGhzuOMwDerC1Eb2VmrLw==",
2999 | "dev": true,
3000 | "optional": true
3001 | },
3002 | "@rollup/rollup-android-arm64": {
3003 | "version": "4.41.1",
3004 | "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.41.1.tgz",
3005 | "integrity": "sha512-DXdQe1BJ6TK47ukAoZLehRHhfKnKg9BjnQYUu9gzhI8Mwa1d2fzxA1aw2JixHVl403bwp1+/o/NhhHtxWJBgEA==",
3006 | "dev": true,
3007 | "optional": true
3008 | },
3009 | "@rollup/rollup-darwin-arm64": {
3010 | "version": "4.41.1",
3011 | "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.41.1.tgz",
3012 | "integrity": "sha512-5afxvwszzdulsU2w8JKWwY8/sJOLPzf0e1bFuvcW5h9zsEg+RQAojdW0ux2zyYAz7R8HvvzKCjLNJhVq965U7w==",
3013 | "dev": true,
3014 | "optional": true
3015 | },
3016 | "@rollup/rollup-darwin-x64": {
3017 | "version": "4.41.1",
3018 | "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.41.1.tgz",
3019 | "integrity": "sha512-egpJACny8QOdHNNMZKf8xY0Is6gIMz+tuqXlusxquWu3F833DcMwmGM7WlvCO9sB3OsPjdC4U0wHw5FabzCGZg==",
3020 | "dev": true,
3021 | "optional": true
3022 | },
3023 | "@rollup/rollup-freebsd-arm64": {
3024 | "version": "4.41.1",
3025 | "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.41.1.tgz",
3026 | "integrity": "sha512-DBVMZH5vbjgRk3r0OzgjS38z+atlupJ7xfKIDJdZZL6sM6wjfDNo64aowcLPKIx7LMQi8vybB56uh1Ftck/Atg==",
3027 | "dev": true,
3028 | "optional": true
3029 | },
3030 | "@rollup/rollup-freebsd-x64": {
3031 | "version": "4.41.1",
3032 | "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.41.1.tgz",
3033 | "integrity": "sha512-3FkydeohozEskBxNWEIbPfOE0aqQgB6ttTkJ159uWOFn42VLyfAiyD9UK5mhu+ItWzft60DycIN1Xdgiy8o/SA==",
3034 | "dev": true,
3035 | "optional": true
3036 | },
3037 | "@rollup/rollup-linux-arm-gnueabihf": {
3038 | "version": "4.41.1",
3039 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.41.1.tgz",
3040 | "integrity": "sha512-wC53ZNDgt0pqx5xCAgNunkTzFE8GTgdZ9EwYGVcg+jEjJdZGtq9xPjDnFgfFozQI/Xm1mh+D9YlYtl+ueswNEg==",
3041 | "dev": true,
3042 | "optional": true
3043 | },
3044 | "@rollup/rollup-linux-arm-musleabihf": {
3045 | "version": "4.41.1",
3046 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.41.1.tgz",
3047 | "integrity": "sha512-jwKCca1gbZkZLhLRtsrka5N8sFAaxrGz/7wRJ8Wwvq3jug7toO21vWlViihG85ei7uJTpzbXZRcORotE+xyrLA==",
3048 | "dev": true,
3049 | "optional": true
3050 | },
3051 | "@rollup/rollup-linux-arm64-gnu": {
3052 | "version": "4.41.1",
3053 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.41.1.tgz",
3054 | "integrity": "sha512-g0UBcNknsmmNQ8V2d/zD2P7WWfJKU0F1nu0k5pW4rvdb+BIqMm8ToluW/eeRmxCared5dD76lS04uL4UaNgpNA==",
3055 | "dev": true,
3056 | "optional": true
3057 | },
3058 | "@rollup/rollup-linux-arm64-musl": {
3059 | "version": "4.41.1",
3060 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.41.1.tgz",
3061 | "integrity": "sha512-XZpeGB5TKEZWzIrj7sXr+BEaSgo/ma/kCgrZgL0oo5qdB1JlTzIYQKel/RmhT6vMAvOdM2teYlAaOGJpJ9lahg==",
3062 | "dev": true,
3063 | "optional": true
3064 | },
3065 | "@rollup/rollup-linux-loongarch64-gnu": {
3066 | "version": "4.41.1",
3067 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.41.1.tgz",
3068 | "integrity": "sha512-bkCfDJ4qzWfFRCNt5RVV4DOw6KEgFTUZi2r2RuYhGWC8WhCA8lCAJhDeAmrM/fdiAH54m0mA0Vk2FGRPyzI+tw==",
3069 | "dev": true,
3070 | "optional": true
3071 | },
3072 | "@rollup/rollup-linux-powerpc64le-gnu": {
3073 | "version": "4.41.1",
3074 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.41.1.tgz",
3075 | "integrity": "sha512-3mr3Xm+gvMX+/8EKogIZSIEF0WUu0HL9di+YWlJpO8CQBnoLAEL/roTCxuLncEdgcfJcvA4UMOf+2dnjl4Ut1A==",
3076 | "dev": true,
3077 | "optional": true
3078 | },
3079 | "@rollup/rollup-linux-riscv64-gnu": {
3080 | "version": "4.41.1",
3081 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.41.1.tgz",
3082 | "integrity": "sha512-3rwCIh6MQ1LGrvKJitQjZFuQnT2wxfU+ivhNBzmxXTXPllewOF7JR1s2vMX/tWtUYFgphygxjqMl76q4aMotGw==",
3083 | "dev": true,
3084 | "optional": true
3085 | },
3086 | "@rollup/rollup-linux-riscv64-musl": {
3087 | "version": "4.41.1",
3088 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.41.1.tgz",
3089 | "integrity": "sha512-LdIUOb3gvfmpkgFZuccNa2uYiqtgZAz3PTzjuM5bH3nvuy9ty6RGc/Q0+HDFrHrizJGVpjnTZ1yS5TNNjFlklw==",
3090 | "dev": true,
3091 | "optional": true
3092 | },
3093 | "@rollup/rollup-linux-s390x-gnu": {
3094 | "version": "4.41.1",
3095 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.41.1.tgz",
3096 | "integrity": "sha512-oIE6M8WC9ma6xYqjvPhzZYk6NbobIURvP/lEbh7FWplcMO6gn7MM2yHKA1eC/GvYwzNKK/1LYgqzdkZ8YFxR8g==",
3097 | "dev": true,
3098 | "optional": true
3099 | },
3100 | "@rollup/rollup-linux-x64-gnu": {
3101 | "version": "4.41.1",
3102 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.41.1.tgz",
3103 | "integrity": "sha512-cWBOvayNvA+SyeQMp79BHPK8ws6sHSsYnK5zDcsC3Hsxr1dgTABKjMnMslPq1DvZIp6uO7kIWhiGwaTdR4Og9A==",
3104 | "dev": true,
3105 | "optional": true
3106 | },
3107 | "@rollup/rollup-linux-x64-musl": {
3108 | "version": "4.41.1",
3109 | "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.41.1.tgz",
3110 | "integrity": "sha512-y5CbN44M+pUCdGDlZFzGGBSKCA4A/J2ZH4edTYSSxFg7ce1Xt3GtydbVKWLlzL+INfFIZAEg1ZV6hh9+QQf9YQ==",
3111 | "dev": true,
3112 | "optional": true
3113 | },
3114 | "@rollup/rollup-win32-arm64-msvc": {
3115 | "version": "4.41.1",
3116 | "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.41.1.tgz",
3117 | "integrity": "sha512-lZkCxIrjlJlMt1dLO/FbpZbzt6J/A8p4DnqzSa4PWqPEUUUnzXLeki/iyPLfV0BmHItlYgHUqJe+3KiyydmiNQ==",
3118 | "dev": true,
3119 | "optional": true
3120 | },
3121 | "@rollup/rollup-win32-ia32-msvc": {
3122 | "version": "4.41.1",
3123 | "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.41.1.tgz",
3124 | "integrity": "sha512-+psFT9+pIh2iuGsxFYYa/LhS5MFKmuivRsx9iPJWNSGbh2XVEjk90fmpUEjCnILPEPJnikAU6SFDiEUyOv90Pg==",
3125 | "dev": true,
3126 | "optional": true
3127 | },
3128 | "@rollup/rollup-win32-x64-msvc": {
3129 | "version": "4.41.1",
3130 | "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.41.1.tgz",
3131 | "integrity": "sha512-Wq2zpapRYLfi4aKxf2Xff0tN+7slj2d4R87WEzqw7ZLsVvO5zwYCIuEGSZYiK41+GlwUo1HiR+GdkLEJnCKTCw==",
3132 | "dev": true,
3133 | "optional": true
3134 | },
3135 | "@types/chai": {
3136 | "version": "5.2.2",
3137 | "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.2.tgz",
3138 | "integrity": "sha512-8kB30R7Hwqf40JPiKhVzodJs2Qc1ZJ5zuT3uzw5Hq/dhNCl3G3l83jfpdI1e20BP348+fV7VIL/+FxaXkqBmWg==",
3139 | "dev": true,
3140 | "requires": {
3141 | "@types/deep-eql": "*"
3142 | }
3143 | },
3144 | "@types/deep-eql": {
3145 | "version": "4.0.2",
3146 | "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz",
3147 | "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==",
3148 | "dev": true
3149 | },
3150 | "@types/estree": {
3151 | "version": "1.0.7",
3152 | "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz",
3153 | "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==",
3154 | "dev": true
3155 | },
3156 | "@vitest/coverage-v8": {
3157 | "version": "3.2.0",
3158 | "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-3.2.0.tgz",
3159 | "integrity": "sha512-HjgvaokAiHxRMI5ioXl4WmgAi4zQtKtnltOOlmpzUqApdcTTZrZJAastbbRGydtiqwtYLFaIb6Jpo3PzowZ0cg==",
3160 | "dev": true,
3161 | "requires": {
3162 | "@ampproject/remapping": "^2.3.0",
3163 | "@bcoe/v8-coverage": "^1.0.2",
3164 | "ast-v8-to-istanbul": "^0.3.3",
3165 | "debug": "^4.4.1",
3166 | "istanbul-lib-coverage": "^3.2.2",
3167 | "istanbul-lib-report": "^3.0.1",
3168 | "istanbul-lib-source-maps": "^5.0.6",
3169 | "istanbul-reports": "^3.1.7",
3170 | "magic-string": "^0.30.17",
3171 | "magicast": "^0.3.5",
3172 | "std-env": "^3.9.0",
3173 | "test-exclude": "^7.0.1",
3174 | "tinyrainbow": "^2.0.0"
3175 | },
3176 | "dependencies": {
3177 | "brace-expansion": {
3178 | "version": "2.0.1",
3179 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
3180 | "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
3181 | "dev": true,
3182 | "requires": {
3183 | "balanced-match": "^1.0.0"
3184 | }
3185 | },
3186 | "foreground-child": {
3187 | "version": "3.2.1",
3188 | "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.2.1.tgz",
3189 | "integrity": "sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==",
3190 | "dev": true,
3191 | "requires": {
3192 | "cross-spawn": "^7.0.0",
3193 | "signal-exit": "^4.0.1"
3194 | }
3195 | },
3196 | "glob": {
3197 | "version": "10.4.5",
3198 | "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
3199 | "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
3200 | "dev": true,
3201 | "requires": {
3202 | "foreground-child": "^3.1.0",
3203 | "jackspeak": "^3.1.2",
3204 | "minimatch": "^9.0.4",
3205 | "minipass": "^7.1.2",
3206 | "package-json-from-dist": "^1.0.0",
3207 | "path-scurry": "^1.11.1"
3208 | }
3209 | },
3210 | "minimatch": {
3211 | "version": "9.0.5",
3212 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
3213 | "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
3214 | "dev": true,
3215 | "requires": {
3216 | "brace-expansion": "^2.0.1"
3217 | }
3218 | },
3219 | "signal-exit": {
3220 | "version": "4.1.0",
3221 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
3222 | "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
3223 | "dev": true
3224 | },
3225 | "test-exclude": {
3226 | "version": "7.0.1",
3227 | "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-7.0.1.tgz",
3228 | "integrity": "sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==",
3229 | "dev": true,
3230 | "requires": {
3231 | "@istanbuljs/schema": "^0.1.2",
3232 | "glob": "^10.4.1",
3233 | "minimatch": "^9.0.4"
3234 | }
3235 | }
3236 | }
3237 | },
3238 | "@vitest/expect": {
3239 | "version": "3.2.0",
3240 | "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.2.0.tgz",
3241 | "integrity": "sha512-0v4YVbhDKX3SKoy0PHWXpKhj44w+3zZkIoVES9Ex2pq+u6+Bijijbi2ua5kE+h3qT6LBWFTNZSCOEU37H8Y5sA==",
3242 | "dev": true,
3243 | "requires": {
3244 | "@types/chai": "^5.2.2",
3245 | "@vitest/spy": "3.2.0",
3246 | "@vitest/utils": "3.2.0",
3247 | "chai": "^5.2.0",
3248 | "tinyrainbow": "^2.0.0"
3249 | }
3250 | },
3251 | "@vitest/mocker": {
3252 | "version": "3.2.0",
3253 | "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.2.0.tgz",
3254 | "integrity": "sha512-HFcW0lAMx3eN9vQqis63H0Pscv0QcVMo1Kv8BNysZbxcmHu3ZUYv59DS6BGYiGQ8F5lUkmsfMMlPm4DJFJdf/A==",
3255 | "dev": true,
3256 | "requires": {
3257 | "@vitest/spy": "3.2.0",
3258 | "estree-walker": "^3.0.3",
3259 | "magic-string": "^0.30.17"
3260 | }
3261 | },
3262 | "@vitest/pretty-format": {
3263 | "version": "3.2.0",
3264 | "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.2.0.tgz",
3265 | "integrity": "sha512-gUUhaUmPBHFkrqnOokmfMGRBMHhgpICud9nrz/xpNV3/4OXCn35oG+Pl8rYYsKaTNd/FAIrqRHnwpDpmYxCYZw==",
3266 | "dev": true,
3267 | "requires": {
3268 | "tinyrainbow": "^2.0.0"
3269 | }
3270 | },
3271 | "@vitest/runner": {
3272 | "version": "3.2.0",
3273 | "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-3.2.0.tgz",
3274 | "integrity": "sha512-bXdmnHxuB7fXJdh+8vvnlwi/m1zvu+I06i1dICVcDQFhyV4iKw2RExC/acavtDn93m/dRuawUObKsrNE1gJacA==",
3275 | "dev": true,
3276 | "requires": {
3277 | "@vitest/utils": "3.2.0",
3278 | "pathe": "^2.0.3"
3279 | }
3280 | },
3281 | "@vitest/snapshot": {
3282 | "version": "3.2.0",
3283 | "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.2.0.tgz",
3284 | "integrity": "sha512-z7P/EneBRMe7hdvWhcHoXjhA6at0Q4ipcoZo6SqgxLyQQ8KSMMCmvw1cSt7FHib3ozt0wnRHc37ivuUMbxzG/A==",
3285 | "dev": true,
3286 | "requires": {
3287 | "@vitest/pretty-format": "3.2.0",
3288 | "magic-string": "^0.30.17",
3289 | "pathe": "^2.0.3"
3290 | }
3291 | },
3292 | "@vitest/spy": {
3293 | "version": "3.2.0",
3294 | "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.2.0.tgz",
3295 | "integrity": "sha512-s3+TkCNUIEOX99S0JwNDfsHRaZDDZZR/n8F0mop0PmsEbQGKZikCGpTGZ6JRiHuONKew3Fb5//EPwCP+pUX9cw==",
3296 | "dev": true,
3297 | "requires": {
3298 | "tinyspy": "^4.0.3"
3299 | }
3300 | },
3301 | "@vitest/utils": {
3302 | "version": "3.2.0",
3303 | "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.2.0.tgz",
3304 | "integrity": "sha512-gXXOe7Fj6toCsZKVQouTRLJftJwmvbhH5lKOBR6rlP950zUq9AitTUjnFoXS/CqjBC2aoejAztLPzzuva++XBw==",
3305 | "dev": true,
3306 | "requires": {
3307 | "@vitest/pretty-format": "3.2.0",
3308 | "loupe": "^3.1.3",
3309 | "tinyrainbow": "^2.0.0"
3310 | }
3311 | },
3312 | "ansi-regex": {
3313 | "version": "5.0.1",
3314 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
3315 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
3316 | "dev": true
3317 | },
3318 | "ansi-styles": {
3319 | "version": "6.2.1",
3320 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
3321 | "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
3322 | "dev": true
3323 | },
3324 | "assertion-error": {
3325 | "version": "2.0.1",
3326 | "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz",
3327 | "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==",
3328 | "dev": true
3329 | },
3330 | "ast-v8-to-istanbul": {
3331 | "version": "0.3.3",
3332 | "resolved": "https://registry.npmjs.org/ast-v8-to-istanbul/-/ast-v8-to-istanbul-0.3.3.tgz",
3333 | "integrity": "sha512-MuXMrSLVVoA6sYN/6Hke18vMzrT4TZNbZIj/hvh0fnYFpO+/kFXcLIaiPwXXWaQUPg4yJD8fj+lfJ7/1EBconw==",
3334 | "dev": true,
3335 | "requires": {
3336 | "@jridgewell/trace-mapping": "^0.3.25",
3337 | "estree-walker": "^3.0.3",
3338 | "js-tokens": "^9.0.1"
3339 | }
3340 | },
3341 | "balanced-match": {
3342 | "version": "1.0.0",
3343 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
3344 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
3345 | "dev": true
3346 | },
3347 | "cac": {
3348 | "version": "6.7.14",
3349 | "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz",
3350 | "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==",
3351 | "dev": true
3352 | },
3353 | "chai": {
3354 | "version": "5.2.0",
3355 | "resolved": "https://registry.npmjs.org/chai/-/chai-5.2.0.tgz",
3356 | "integrity": "sha512-mCuXncKXk5iCLhfhwTc0izo0gtEmpz5CtG2y8GiOINBlMVS6v8TMRc5TaLWKS6692m9+dVVfzgeVxR5UxWHTYw==",
3357 | "dev": true,
3358 | "requires": {
3359 | "assertion-error": "^2.0.1",
3360 | "check-error": "^2.1.1",
3361 | "deep-eql": "^5.0.1",
3362 | "loupe": "^3.1.0",
3363 | "pathval": "^2.0.0"
3364 | }
3365 | },
3366 | "check-error": {
3367 | "version": "2.1.1",
3368 | "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz",
3369 | "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==",
3370 | "dev": true
3371 | },
3372 | "cross-spawn": {
3373 | "version": "7.0.3",
3374 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
3375 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
3376 | "dev": true,
3377 | "requires": {
3378 | "path-key": "^3.1.0",
3379 | "shebang-command": "^2.0.0",
3380 | "which": "^2.0.1"
3381 | }
3382 | },
3383 | "debug": {
3384 | "version": "4.4.1",
3385 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz",
3386 | "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==",
3387 | "dev": true,
3388 | "requires": {
3389 | "ms": "^2.1.3"
3390 | }
3391 | },
3392 | "deep-eql": {
3393 | "version": "5.0.2",
3394 | "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz",
3395 | "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==",
3396 | "dev": true
3397 | },
3398 | "defu": {
3399 | "version": "6.1.4",
3400 | "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.4.tgz",
3401 | "integrity": "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg=="
3402 | },
3403 | "destr": {
3404 | "version": "2.0.3",
3405 | "resolved": "https://registry.npmjs.org/destr/-/destr-2.0.3.tgz",
3406 | "integrity": "sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ=="
3407 | },
3408 | "dom-serializer": {
3409 | "version": "1.3.2",
3410 | "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz",
3411 | "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==",
3412 | "requires": {
3413 | "domelementtype": "^2.0.1",
3414 | "domhandler": "^4.2.0",
3415 | "entities": "^2.0.0"
3416 | },
3417 | "dependencies": {
3418 | "entities": {
3419 | "version": "2.2.0",
3420 | "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
3421 | "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A=="
3422 | }
3423 | }
3424 | },
3425 | "domelementtype": {
3426 | "version": "2.2.0",
3427 | "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz",
3428 | "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A=="
3429 | },
3430 | "domhandler": {
3431 | "version": "4.2.2",
3432 | "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.2.2.tgz",
3433 | "integrity": "sha512-PzE9aBMsdZO8TK4BnuJwH0QT41wgMbRzuZrHUcpYncEjmQazq8QEaBWgLG7ZyC/DAZKEgglpIA6j4Qn/HmxS3w==",
3434 | "requires": {
3435 | "domelementtype": "^2.2.0"
3436 | }
3437 | },
3438 | "domutils": {
3439 | "version": "2.8.0",
3440 | "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz",
3441 | "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==",
3442 | "requires": {
3443 | "dom-serializer": "^1.0.1",
3444 | "domelementtype": "^2.2.0",
3445 | "domhandler": "^4.2.0"
3446 | }
3447 | },
3448 | "eastasianwidth": {
3449 | "version": "0.2.0",
3450 | "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
3451 | "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
3452 | "dev": true
3453 | },
3454 | "emoji-regex": {
3455 | "version": "8.0.0",
3456 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
3457 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
3458 | "dev": true
3459 | },
3460 | "entities": {
3461 | "version": "3.0.1",
3462 | "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz",
3463 | "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q=="
3464 | },
3465 | "es-module-lexer": {
3466 | "version": "1.7.0",
3467 | "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz",
3468 | "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==",
3469 | "dev": true
3470 | },
3471 | "esbuild": {
3472 | "version": "0.25.5",
3473 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.5.tgz",
3474 | "integrity": "sha512-P8OtKZRv/5J5hhz0cUAdu/cLuPIKXpQl1R9pZtvmHWQvrAUVd0UNIPT4IB4W3rNOqVO0rlqHmCIbSwxh/c9yUQ==",
3475 | "dev": true,
3476 | "requires": {
3477 | "@esbuild/aix-ppc64": "0.25.5",
3478 | "@esbuild/android-arm": "0.25.5",
3479 | "@esbuild/android-arm64": "0.25.5",
3480 | "@esbuild/android-x64": "0.25.5",
3481 | "@esbuild/darwin-arm64": "0.25.5",
3482 | "@esbuild/darwin-x64": "0.25.5",
3483 | "@esbuild/freebsd-arm64": "0.25.5",
3484 | "@esbuild/freebsd-x64": "0.25.5",
3485 | "@esbuild/linux-arm": "0.25.5",
3486 | "@esbuild/linux-arm64": "0.25.5",
3487 | "@esbuild/linux-ia32": "0.25.5",
3488 | "@esbuild/linux-loong64": "0.25.5",
3489 | "@esbuild/linux-mips64el": "0.25.5",
3490 | "@esbuild/linux-ppc64": "0.25.5",
3491 | "@esbuild/linux-riscv64": "0.25.5",
3492 | "@esbuild/linux-s390x": "0.25.5",
3493 | "@esbuild/linux-x64": "0.25.5",
3494 | "@esbuild/netbsd-arm64": "0.25.5",
3495 | "@esbuild/netbsd-x64": "0.25.5",
3496 | "@esbuild/openbsd-arm64": "0.25.5",
3497 | "@esbuild/openbsd-x64": "0.25.5",
3498 | "@esbuild/sunos-x64": "0.25.5",
3499 | "@esbuild/win32-arm64": "0.25.5",
3500 | "@esbuild/win32-ia32": "0.25.5",
3501 | "@esbuild/win32-x64": "0.25.5"
3502 | }
3503 | },
3504 | "estree-walker": {
3505 | "version": "3.0.3",
3506 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz",
3507 | "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==",
3508 | "dev": true,
3509 | "requires": {
3510 | "@types/estree": "^1.0.0"
3511 | }
3512 | },
3513 | "expect-type": {
3514 | "version": "1.2.1",
3515 | "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.2.1.tgz",
3516 | "integrity": "sha512-/kP8CAwxzLVEeFrMm4kMmy4CCDlpipyA7MYLVrdJIkV0fYF0UaigQHRsxHiuY/GEea+bh4KSv3TIlgr+2UL6bw==",
3517 | "dev": true
3518 | },
3519 | "fclone": {
3520 | "version": "1.0.11",
3521 | "resolved": "https://registry.npmjs.org/fclone/-/fclone-1.0.11.tgz",
3522 | "integrity": "sha1-EOhdo4v+p/xZk0HClu4ddyZu5kA="
3523 | },
3524 | "fdir": {
3525 | "version": "6.4.5",
3526 | "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.5.tgz",
3527 | "integrity": "sha512-4BG7puHpVsIYxZUbiUE3RqGloLaSSwzYie5jvasC4LWuBWzZawynvYouhjbQKw2JuIGYdm0DzIxl8iVidKlUEw==",
3528 | "dev": true,
3529 | "requires": {}
3530 | },
3531 | "fsevents": {
3532 | "version": "2.3.3",
3533 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
3534 | "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
3535 | "dev": true,
3536 | "optional": true
3537 | },
3538 | "has-flag": {
3539 | "version": "4.0.0",
3540 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
3541 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
3542 | "dev": true
3543 | },
3544 | "html-escaper": {
3545 | "version": "2.0.2",
3546 | "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
3547 | "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
3548 | "dev": true
3549 | },
3550 | "htmlparser2": {
3551 | "version": "7.1.1",
3552 | "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.1.1.tgz",
3553 | "integrity": "sha512-hZb0lfG0hbhR/hB879zbBr8Opv0Be9Zp+JYHgqTw5epF++aotu/zmMTPLy/60iJyR1MaD/3pYRp7xYteXsZMEA==",
3554 | "requires": {
3555 | "domelementtype": "^2.0.1",
3556 | "domhandler": "^4.0.0",
3557 | "domutils": "^2.8.0",
3558 | "entities": "^3.0.1"
3559 | }
3560 | },
3561 | "is-fullwidth-code-point": {
3562 | "version": "3.0.0",
3563 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
3564 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
3565 | "dev": true
3566 | },
3567 | "is-json": {
3568 | "version": "2.0.1",
3569 | "resolved": "https://registry.npmjs.org/is-json/-/is-json-2.0.1.tgz",
3570 | "integrity": "sha1-a+Fm0USCihMdaGiRuYPfYsOUkf8="
3571 | },
3572 | "is-url": {
3573 | "version": "1.2.4",
3574 | "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz",
3575 | "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww=="
3576 | },
3577 | "isexe": {
3578 | "version": "2.0.0",
3579 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
3580 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
3581 | "dev": true
3582 | },
3583 | "istanbul-lib-coverage": {
3584 | "version": "3.2.2",
3585 | "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz",
3586 | "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==",
3587 | "dev": true
3588 | },
3589 | "istanbul-lib-report": {
3590 | "version": "3.0.1",
3591 | "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz",
3592 | "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==",
3593 | "dev": true,
3594 | "requires": {
3595 | "istanbul-lib-coverage": "^3.0.0",
3596 | "make-dir": "^4.0.0",
3597 | "supports-color": "^7.1.0"
3598 | }
3599 | },
3600 | "istanbul-lib-source-maps": {
3601 | "version": "5.0.6",
3602 | "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-5.0.6.tgz",
3603 | "integrity": "sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==",
3604 | "dev": true,
3605 | "requires": {
3606 | "@jridgewell/trace-mapping": "^0.3.23",
3607 | "debug": "^4.1.1",
3608 | "istanbul-lib-coverage": "^3.0.0"
3609 | }
3610 | },
3611 | "istanbul-reports": {
3612 | "version": "3.1.7",
3613 | "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz",
3614 | "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==",
3615 | "dev": true,
3616 | "requires": {
3617 | "html-escaper": "^2.0.0",
3618 | "istanbul-lib-report": "^3.0.0"
3619 | }
3620 | },
3621 | "jackspeak": {
3622 | "version": "3.4.3",
3623 | "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz",
3624 | "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==",
3625 | "dev": true,
3626 | "requires": {
3627 | "@isaacs/cliui": "^8.0.2",
3628 | "@pkgjs/parseargs": "^0.11.0"
3629 | }
3630 | },
3631 | "js-tokens": {
3632 | "version": "9.0.1",
3633 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz",
3634 | "integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==",
3635 | "dev": true
3636 | },
3637 | "loupe": {
3638 | "version": "3.1.3",
3639 | "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.3.tgz",
3640 | "integrity": "sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==",
3641 | "dev": true
3642 | },
3643 | "lru-cache": {
3644 | "version": "6.0.0",
3645 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
3646 | "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
3647 | "dev": true,
3648 | "requires": {
3649 | "yallist": "^4.0.0"
3650 | }
3651 | },
3652 | "magic-string": {
3653 | "version": "0.30.17",
3654 | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz",
3655 | "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==",
3656 | "dev": true,
3657 | "requires": {
3658 | "@jridgewell/sourcemap-codec": "^1.5.0"
3659 | }
3660 | },
3661 | "magicast": {
3662 | "version": "0.3.5",
3663 | "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.3.5.tgz",
3664 | "integrity": "sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==",
3665 | "dev": true,
3666 | "requires": {
3667 | "@babel/parser": "^7.25.4",
3668 | "@babel/types": "^7.25.4",
3669 | "source-map-js": "^1.2.0"
3670 | }
3671 | },
3672 | "make-dir": {
3673 | "version": "4.0.0",
3674 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz",
3675 | "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==",
3676 | "dev": true,
3677 | "requires": {
3678 | "semver": "^7.5.3"
3679 | }
3680 | },
3681 | "minipass": {
3682 | "version": "7.1.2",
3683 | "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
3684 | "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
3685 | "dev": true
3686 | },
3687 | "ms": {
3688 | "version": "2.1.3",
3689 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
3690 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
3691 | "dev": true
3692 | },
3693 | "nanoid": {
3694 | "version": "3.3.11",
3695 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
3696 | "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
3697 | "dev": true
3698 | },
3699 | "node-fetch-native": {
3700 | "version": "1.6.4",
3701 | "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.4.tgz",
3702 | "integrity": "sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ=="
3703 | },
3704 | "ofetch": {
3705 | "version": "1.4.1",
3706 | "resolved": "https://registry.npmjs.org/ofetch/-/ofetch-1.4.1.tgz",
3707 | "integrity": "sha512-QZj2DfGplQAr2oj9KzceK9Hwz6Whxazmn85yYeVuS3u9XTMOGMRx0kO95MQ+vLsj/S/NwBDMMLU5hpxvI6Tklw==",
3708 | "requires": {
3709 | "destr": "^2.0.3",
3710 | "node-fetch-native": "^1.6.4",
3711 | "ufo": "^1.5.4"
3712 | }
3713 | },
3714 | "package-json-from-dist": {
3715 | "version": "1.0.0",
3716 | "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz",
3717 | "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==",
3718 | "dev": true
3719 | },
3720 | "path-key": {
3721 | "version": "3.1.1",
3722 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
3723 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
3724 | "dev": true
3725 | },
3726 | "path-scurry": {
3727 | "version": "1.11.1",
3728 | "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
3729 | "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
3730 | "dev": true,
3731 | "requires": {
3732 | "lru-cache": "^10.2.0",
3733 | "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
3734 | },
3735 | "dependencies": {
3736 | "lru-cache": {
3737 | "version": "10.4.3",
3738 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
3739 | "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
3740 | "dev": true
3741 | }
3742 | }
3743 | },
3744 | "pathe": {
3745 | "version": "2.0.3",
3746 | "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz",
3747 | "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==",
3748 | "dev": true
3749 | },
3750 | "pathval": {
3751 | "version": "2.0.0",
3752 | "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz",
3753 | "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==",
3754 | "dev": true
3755 | },
3756 | "picocolors": {
3757 | "version": "1.1.1",
3758 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
3759 | "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
3760 | "dev": true
3761 | },
3762 | "picomatch": {
3763 | "version": "4.0.2",
3764 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
3765 | "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
3766 | "dev": true
3767 | },
3768 | "postcss": {
3769 | "version": "8.5.4",
3770 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.4.tgz",
3771 | "integrity": "sha512-QSa9EBe+uwlGTFmHsPKokv3B/oEMQZxfqW0QqNCyhpa6mB1afzulwn8hihglqAb2pOw+BJgNlmXQ8la2VeHB7w==",
3772 | "dev": true,
3773 | "requires": {
3774 | "nanoid": "^3.3.11",
3775 | "picocolors": "^1.1.1",
3776 | "source-map-js": "^1.2.1"
3777 | }
3778 | },
3779 | "posthtml": {
3780 | "version": "0.16.6",
3781 | "resolved": "https://registry.npmjs.org/posthtml/-/posthtml-0.16.6.tgz",
3782 | "integrity": "sha512-JcEmHlyLK/o0uGAlj65vgg+7LIms0xKXe60lcDOTU7oVX/3LuEuLwrQpW3VJ7de5TaFKiW4kWkaIpJL42FEgxQ==",
3783 | "requires": {
3784 | "posthtml-parser": "^0.11.0",
3785 | "posthtml-render": "^3.0.0"
3786 | },
3787 | "dependencies": {
3788 | "posthtml-parser": {
3789 | "version": "0.11.0",
3790 | "resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.11.0.tgz",
3791 | "integrity": "sha512-QecJtfLekJbWVo/dMAA+OSwY79wpRmbqS5TeXvXSX+f0c6pW4/SE6inzZ2qkU7oAMCPqIDkZDvd/bQsSFUnKyw==",
3792 | "requires": {
3793 | "htmlparser2": "^7.1.1"
3794 | }
3795 | }
3796 | }
3797 | },
3798 | "posthtml-expressions": {
3799 | "version": "1.11.4",
3800 | "resolved": "https://registry.npmjs.org/posthtml-expressions/-/posthtml-expressions-1.11.4.tgz",
3801 | "integrity": "sha512-tJI6KhKLcePRO0/i4d01MNXfcaBa2jIu4MuVLixvGwCRzxdY2D7LLm17ijNyQNQu3xOhCffBLtUMju0K64smmQ==",
3802 | "requires": {
3803 | "fclone": "^1.0.11",
3804 | "posthtml": "^0.16.5",
3805 | "posthtml-match-helper": "^1.0.1",
3806 | "posthtml-parser": "^0.10.0",
3807 | "posthtml-render": "^3.0.0"
3808 | }
3809 | },
3810 | "posthtml-match-helper": {
3811 | "version": "1.0.3",
3812 | "resolved": "https://registry.npmjs.org/posthtml-match-helper/-/posthtml-match-helper-1.0.3.tgz",
3813 | "integrity": "sha512-aeRAPvok2Fs6uzSm85665jdAk5UOd8US2QCkWtGU6yLPlKSwzWTSgZZuABc3UeNy3K1lVk/HV9bRkWJYN05Ymw==",
3814 | "requires": {}
3815 | },
3816 | "posthtml-parser": {
3817 | "version": "0.10.1",
3818 | "resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.10.1.tgz",
3819 | "integrity": "sha512-i7w2QEHqiGtsvNNPty0Mt/+ERch7wkgnFh3+JnBI2VgDbGlBqKW9eDVd3ENUhE1ujGFe3e3E/odf7eKhvLUyDg==",
3820 | "requires": {
3821 | "htmlparser2": "^7.1.1"
3822 | }
3823 | },
3824 | "posthtml-render": {
3825 | "version": "3.0.0",
3826 | "resolved": "https://registry.npmjs.org/posthtml-render/-/posthtml-render-3.0.0.tgz",
3827 | "integrity": "sha512-z+16RoxK3fUPgwaIgH9NGnK1HKY9XIDpydky5eQGgAFVXTCSezalv9U2jQuNV+Z9qV1fDWNzldcw4eK0SSbqKA==",
3828 | "requires": {
3829 | "is-json": "^2.0.1"
3830 | }
3831 | },
3832 | "rollup": {
3833 | "version": "4.41.1",
3834 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.41.1.tgz",
3835 | "integrity": "sha512-cPmwD3FnFv8rKMBc1MxWCwVQFxwf1JEmSX3iQXrRVVG15zerAIXRjMFVWnd5Q5QvgKF7Aj+5ykXFhUl+QGnyOw==",
3836 | "dev": true,
3837 | "requires": {
3838 | "@rollup/rollup-android-arm-eabi": "4.41.1",
3839 | "@rollup/rollup-android-arm64": "4.41.1",
3840 | "@rollup/rollup-darwin-arm64": "4.41.1",
3841 | "@rollup/rollup-darwin-x64": "4.41.1",
3842 | "@rollup/rollup-freebsd-arm64": "4.41.1",
3843 | "@rollup/rollup-freebsd-x64": "4.41.1",
3844 | "@rollup/rollup-linux-arm-gnueabihf": "4.41.1",
3845 | "@rollup/rollup-linux-arm-musleabihf": "4.41.1",
3846 | "@rollup/rollup-linux-arm64-gnu": "4.41.1",
3847 | "@rollup/rollup-linux-arm64-musl": "4.41.1",
3848 | "@rollup/rollup-linux-loongarch64-gnu": "4.41.1",
3849 | "@rollup/rollup-linux-powerpc64le-gnu": "4.41.1",
3850 | "@rollup/rollup-linux-riscv64-gnu": "4.41.1",
3851 | "@rollup/rollup-linux-riscv64-musl": "4.41.1",
3852 | "@rollup/rollup-linux-s390x-gnu": "4.41.1",
3853 | "@rollup/rollup-linux-x64-gnu": "4.41.1",
3854 | "@rollup/rollup-linux-x64-musl": "4.41.1",
3855 | "@rollup/rollup-win32-arm64-msvc": "4.41.1",
3856 | "@rollup/rollup-win32-ia32-msvc": "4.41.1",
3857 | "@rollup/rollup-win32-x64-msvc": "4.41.1",
3858 | "@types/estree": "1.0.7",
3859 | "fsevents": "~2.3.2"
3860 | }
3861 | },
3862 | "semver": {
3863 | "version": "7.5.4",
3864 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
3865 | "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
3866 | "dev": true,
3867 | "requires": {
3868 | "lru-cache": "^6.0.0"
3869 | }
3870 | },
3871 | "shebang-command": {
3872 | "version": "2.0.0",
3873 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
3874 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
3875 | "dev": true,
3876 | "requires": {
3877 | "shebang-regex": "^3.0.0"
3878 | }
3879 | },
3880 | "shebang-regex": {
3881 | "version": "3.0.0",
3882 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
3883 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
3884 | "dev": true
3885 | },
3886 | "siginfo": {
3887 | "version": "2.0.0",
3888 | "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz",
3889 | "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==",
3890 | "dev": true
3891 | },
3892 | "source-map-js": {
3893 | "version": "1.2.1",
3894 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
3895 | "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
3896 | "dev": true
3897 | },
3898 | "stackback": {
3899 | "version": "0.0.2",
3900 | "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz",
3901 | "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==",
3902 | "dev": true
3903 | },
3904 | "std-env": {
3905 | "version": "3.9.0",
3906 | "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.9.0.tgz",
3907 | "integrity": "sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==",
3908 | "dev": true
3909 | },
3910 | "string-width": {
3911 | "version": "4.2.3",
3912 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
3913 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
3914 | "dev": true,
3915 | "requires": {
3916 | "emoji-regex": "^8.0.0",
3917 | "is-fullwidth-code-point": "^3.0.0",
3918 | "strip-ansi": "^6.0.1"
3919 | }
3920 | },
3921 | "string-width-cjs": {
3922 | "version": "npm:string-width@4.2.3",
3923 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
3924 | "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
3925 | "dev": true,
3926 | "requires": {
3927 | "emoji-regex": "^8.0.0",
3928 | "is-fullwidth-code-point": "^3.0.0",
3929 | "strip-ansi": "^6.0.1"
3930 | }
3931 | },
3932 | "strip-ansi": {
3933 | "version": "6.0.1",
3934 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
3935 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
3936 | "dev": true,
3937 | "requires": {
3938 | "ansi-regex": "^5.0.1"
3939 | }
3940 | },
3941 | "strip-ansi-cjs": {
3942 | "version": "npm:strip-ansi@6.0.1",
3943 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
3944 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
3945 | "dev": true,
3946 | "requires": {
3947 | "ansi-regex": "^5.0.1"
3948 | }
3949 | },
3950 | "supports-color": {
3951 | "version": "7.2.0",
3952 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
3953 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
3954 | "dev": true,
3955 | "requires": {
3956 | "has-flag": "^4.0.0"
3957 | }
3958 | },
3959 | "tinybench": {
3960 | "version": "2.9.0",
3961 | "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz",
3962 | "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==",
3963 | "dev": true
3964 | },
3965 | "tinyexec": {
3966 | "version": "0.3.2",
3967 | "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz",
3968 | "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==",
3969 | "dev": true
3970 | },
3971 | "tinyglobby": {
3972 | "version": "0.2.14",
3973 | "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz",
3974 | "integrity": "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==",
3975 | "dev": true,
3976 | "requires": {
3977 | "fdir": "^6.4.4",
3978 | "picomatch": "^4.0.2"
3979 | }
3980 | },
3981 | "tinypool": {
3982 | "version": "1.1.0",
3983 | "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.1.0.tgz",
3984 | "integrity": "sha512-7CotroY9a8DKsKprEy/a14aCCm8jYVmR7aFy4fpkZM8sdpNJbKkixuNjgM50yCmip2ezc8z4N7k3oe2+rfRJCQ==",
3985 | "dev": true
3986 | },
3987 | "tinyrainbow": {
3988 | "version": "2.0.0",
3989 | "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-2.0.0.tgz",
3990 | "integrity": "sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==",
3991 | "dev": true
3992 | },
3993 | "tinyspy": {
3994 | "version": "4.0.3",
3995 | "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-4.0.3.tgz",
3996 | "integrity": "sha512-t2T/WLB2WRgZ9EpE4jgPJ9w+i66UZfDc8wHh0xrwiRNN+UwH98GIJkTeZqX9rg0i0ptwzqW+uYeIF0T4F8LR7A==",
3997 | "dev": true
3998 | },
3999 | "ufo": {
4000 | "version": "1.5.4",
4001 | "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.5.4.tgz",
4002 | "integrity": "sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ=="
4003 | },
4004 | "vite": {
4005 | "version": "6.3.5",
4006 | "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.5.tgz",
4007 | "integrity": "sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ==",
4008 | "dev": true,
4009 | "requires": {
4010 | "esbuild": "^0.25.0",
4011 | "fdir": "^6.4.4",
4012 | "fsevents": "~2.3.3",
4013 | "picomatch": "^4.0.2",
4014 | "postcss": "^8.5.3",
4015 | "rollup": "^4.34.9",
4016 | "tinyglobby": "^0.2.13"
4017 | }
4018 | },
4019 | "vite-node": {
4020 | "version": "3.2.0",
4021 | "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.2.0.tgz",
4022 | "integrity": "sha512-8Fc5Ko5Y4URIJkmMF/iFP1C0/OJyY+VGVe9Nw6WAdZyw4bTO+eVg9mwxWkQp/y8NnAoQY3o9KAvE1ZdA2v+Vmg==",
4023 | "dev": true,
4024 | "requires": {
4025 | "cac": "^6.7.14",
4026 | "debug": "^4.4.1",
4027 | "es-module-lexer": "^1.7.0",
4028 | "pathe": "^2.0.3",
4029 | "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0"
4030 | }
4031 | },
4032 | "vitest": {
4033 | "version": "3.2.0",
4034 | "resolved": "https://registry.npmjs.org/vitest/-/vitest-3.2.0.tgz",
4035 | "integrity": "sha512-P7Nvwuli8WBNmeMHHek7PnGW4oAZl9za1fddfRVidZar8wDZRi7hpznLKQePQ8JPLwSBEYDK11g+++j7uFJV8Q==",
4036 | "dev": true,
4037 | "requires": {
4038 | "@types/chai": "^5.2.2",
4039 | "@vitest/expect": "3.2.0",
4040 | "@vitest/mocker": "3.2.0",
4041 | "@vitest/pretty-format": "^3.2.0",
4042 | "@vitest/runner": "3.2.0",
4043 | "@vitest/snapshot": "3.2.0",
4044 | "@vitest/spy": "3.2.0",
4045 | "@vitest/utils": "3.2.0",
4046 | "chai": "^5.2.0",
4047 | "debug": "^4.4.1",
4048 | "expect-type": "^1.2.1",
4049 | "magic-string": "^0.30.17",
4050 | "pathe": "^2.0.3",
4051 | "picomatch": "^4.0.2",
4052 | "std-env": "^3.9.0",
4053 | "tinybench": "^2.9.0",
4054 | "tinyexec": "^0.3.2",
4055 | "tinyglobby": "^0.2.14",
4056 | "tinypool": "^1.1.0",
4057 | "tinyrainbow": "^2.0.0",
4058 | "vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0",
4059 | "vite-node": "3.2.0",
4060 | "why-is-node-running": "^2.3.0"
4061 | }
4062 | },
4063 | "which": {
4064 | "version": "2.0.2",
4065 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
4066 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
4067 | "dev": true,
4068 | "requires": {
4069 | "isexe": "^2.0.0"
4070 | }
4071 | },
4072 | "why-is-node-running": {
4073 | "version": "2.3.0",
4074 | "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz",
4075 | "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==",
4076 | "dev": true,
4077 | "requires": {
4078 | "siginfo": "^2.0.0",
4079 | "stackback": "0.0.2"
4080 | }
4081 | },
4082 | "wrap-ansi-cjs": {
4083 | "version": "npm:wrap-ansi@7.0.0",
4084 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
4085 | "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
4086 | "dev": true,
4087 | "requires": {
4088 | "ansi-styles": "^4.0.0",
4089 | "string-width": "^4.1.0",
4090 | "strip-ansi": "^6.0.0"
4091 | },
4092 | "dependencies": {
4093 | "ansi-styles": {
4094 | "version": "4.3.0",
4095 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
4096 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
4097 | "dev": true,
4098 | "requires": {
4099 | "color-convert": "^2.0.1"
4100 | }
4101 | },
4102 | "color-convert": {
4103 | "version": "2.0.1",
4104 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
4105 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
4106 | "dev": true,
4107 | "requires": {
4108 | "color-name": "~1.1.4"
4109 | }
4110 | },
4111 | "color-name": {
4112 | "version": "1.1.4",
4113 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
4114 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
4115 | "dev": true
4116 | }
4117 | }
4118 | },
4119 | "yallist": {
4120 | "version": "4.0.0",
4121 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
4122 | "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
4123 | "dev": true
4124 | }
4125 | }
4126 | }
4127 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "posthtml-fetch",
3 | "description": "PostHTML plugin for fetching and displaying remote or local content.",
4 | "version": "4.0.2",
5 | "license": "MIT",
6 | "author": "Cosmin Popovici (https://github.com/cossssmin)",
7 | "bugs": "https://github.com/posthtml/posthtml-fetch/issues",
8 | "homepage": "https://github.com/posthtml/posthtml-fetch",
9 | "repository": "posthtml/posthtml-fetch",
10 | "main": "lib",
11 | "types": "types/index.d.ts",
12 | "files": [
13 | "lib",
14 | "types"
15 | ],
16 | "engines": {
17 | "node": ">=14.0.0"
18 | },
19 | "scripts": {
20 | "dev": "vitest",
21 | "release": "npx np",
22 | "pretest": "npm run lint",
23 | "test": "vitest run --coverage",
24 | "lint": "biome lint ./lib ./test"
25 | },
26 | "keywords": [
27 | "html",
28 | "posthtml",
29 | "posthtml-plugin",
30 | "fetch",
31 | "remote",
32 | "response",
33 | "api",
34 | "get"
35 | ],
36 | "dependencies": {
37 | "defu": "^6.1.4",
38 | "is-url": "^1.2.4",
39 | "ofetch": "^1.3.4",
40 | "posthtml": "^0.16.6",
41 | "posthtml-expressions": "^1.11.3",
42 | "posthtml-match-helper": "^1.0.1"
43 | },
44 | "devDependencies": {
45 | "@biomejs/biome": "1.9.4",
46 | "@vitest/coverage-v8": "^3.0.6",
47 | "vitest": "^3.0.6"
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/test/expected/attribute.html:
--------------------------------------------------------------------------------
1 | User name: Leanne Graham
2 |
--------------------------------------------------------------------------------
/test/expected/expressions-options.html:
--------------------------------------------------------------------------------
1 | User name: Leanne Graham
2 |
--------------------------------------------------------------------------------
/test/expected/invalid-src.html:
--------------------------------------------------------------------------------
1 | {{ response }}
2 |
--------------------------------------------------------------------------------
/test/expected/local-src.html:
--------------------------------------------------------------------------------
1 | Scrum
2 |
--------------------------------------------------------------------------------
/test/expected/loop.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | Leanne Graham
4 |
5 | Ervin Howell
6 |
7 | Clementine Bauch
8 |
9 | Patricia Lebsack
10 |
11 | Chelsey Dietrich
12 |
13 | Mrs. Dennis Schulist
14 |
15 | Kurtis Weissnat
16 |
17 | Nicholas Runolfsdottir V
18 |
19 | Glenna Reichert
20 |
21 | Clementina DuBuque
22 |
--------------------------------------------------------------------------------
/test/expected/multiple-src.html:
--------------------------------------------------------------------------------
1 | Scrum
2 | Response from API
3 |
--------------------------------------------------------------------------------
/test/expected/no-attribute-value.html:
--------------------------------------------------------------------------------
1 | {{ response }}
2 |
--------------------------------------------------------------------------------
/test/expected/no-attribute.html:
--------------------------------------------------------------------------------
1 | {{ response }}
2 |
--------------------------------------------------------------------------------
/test/expected/object.html:
--------------------------------------------------------------------------------
1 | User name: Leanne Graham
2 | City (nested key): Gwenborough
3 |
--------------------------------------------------------------------------------
/test/expected/ofetch-options.html:
--------------------------------------------------------------------------------
1 | Leanne Graham
2 |
--------------------------------------------------------------------------------
/test/expected/plugins-after.html:
--------------------------------------------------------------------------------
1 | MURCS
2 |
--------------------------------------------------------------------------------
/test/expected/plugins-before.html:
--------------------------------------------------------------------------------
1 | Response from API
2 |
--------------------------------------------------------------------------------
/test/expected/string.html:
--------------------------------------------------------------------------------
1 | Response from API
2 |
--------------------------------------------------------------------------------
/test/expected/tag.html:
--------------------------------------------------------------------------------
1 | User name: Leanne Graham
2 |
--------------------------------------------------------------------------------
/test/fixtures/attribute.html:
--------------------------------------------------------------------------------
1 |
2 | User name: {{ response.name }}
3 |
4 |
--------------------------------------------------------------------------------
/test/fixtures/expressions-options.html:
--------------------------------------------------------------------------------
1 |
2 | User name: [[ response.name ]]
3 |
4 |
--------------------------------------------------------------------------------
/test/fixtures/invalid-src.html:
--------------------------------------------------------------------------------
1 | {{ response }}
2 |
--------------------------------------------------------------------------------
/test/fixtures/local-src.html:
--------------------------------------------------------------------------------
1 | {{ response.name }}
2 |
--------------------------------------------------------------------------------
/test/fixtures/local.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Scrum"
3 | }
4 |
--------------------------------------------------------------------------------
/test/fixtures/loop.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | {{ item.name }}
4 |
5 |
6 |
--------------------------------------------------------------------------------
/test/fixtures/multiple-src.html:
--------------------------------------------------------------------------------
1 | {{ response.name }}
2 | {{ response }}
3 |
--------------------------------------------------------------------------------
/test/fixtures/no-attribute-value.html:
--------------------------------------------------------------------------------
1 | {{ response }}
2 |
--------------------------------------------------------------------------------
/test/fixtures/no-attribute.html:
--------------------------------------------------------------------------------
1 | {{ response }}
2 |
--------------------------------------------------------------------------------
/test/fixtures/object.html:
--------------------------------------------------------------------------------
1 |
2 | User name: {{ response.name }}
3 | City (nested key): {{ response.address.city }}
4 |
5 |
--------------------------------------------------------------------------------
/test/fixtures/ofetch-options.html:
--------------------------------------------------------------------------------
1 | {{ response.name }}
2 |
--------------------------------------------------------------------------------
/test/fixtures/plugins-after.html:
--------------------------------------------------------------------------------
1 | {{ response.name }}
2 |
--------------------------------------------------------------------------------
/test/fixtures/plugins-before.html:
--------------------------------------------------------------------------------
1 | {{ response }}
2 |
--------------------------------------------------------------------------------
/test/fixtures/string.html:
--------------------------------------------------------------------------------
1 | {{ response }}
2 |
--------------------------------------------------------------------------------
/test/fixtures/tag.html:
--------------------------------------------------------------------------------
1 |
2 | User name: {{ response.name }}
3 |
4 |
--------------------------------------------------------------------------------
/test/test.js:
--------------------------------------------------------------------------------
1 | import path from 'node:path'
2 | import { readFileSync } from 'node:fs'
3 | import { fileURLToPath } from 'node:url'
4 | import { test, expect } from 'vitest'
5 | import posthtml from 'posthtml'
6 | import plugin from '../lib/index.js'
7 |
8 | const __dirname = path.dirname(fileURLToPath(import.meta.url))
9 |
10 | const fixture = file => readFileSync(path.join(__dirname, 'fixtures', `${file}.html`), 'utf8').trim()
11 | const expected = file => readFileSync(path.join(__dirname, 'expected', `${file}.html`), 'utf8').trim()
12 |
13 | const error = (name, options, cb) => posthtml([plugin(options)]).process(fixture(name)).catch(cb)
14 | const clean = html => html.replace(/[^\S\r\n]+$/gm, '').trim()
15 |
16 | const process = (name, options, log = false) => {
17 | return posthtml([plugin(options)])
18 | .process(fixture(name))
19 | .then(result => log ? console.log(result.html) : clean(result.html))
20 | .then(html => expect(html).toEqual(expected(name)))
21 | }
22 |
23 | test('It renders the string if response is a string', () => {
24 | process('string')
25 | })
26 |
27 | test('It works with object responses', () => {
28 | process('object')
29 | })
30 |
31 | test('It works with custom tags', () => {
32 | process('tag', {tags: ['pull-in']})
33 | })
34 |
35 | test('It skips node if attribute is missing', () => {
36 | process('no-attribute')
37 | })
38 |
39 | test('It skips node if src attribute is empty', () => {
40 | process('no-attribute-value')
41 | })
42 |
43 | test('It works with expressions (loop)', () => {
44 | process('loop')
45 | })
46 |
47 | test('It works with options plugins after', () => {
48 | process('plugins-after', {
49 | plugins: {
50 | after: [
51 | tree => {
52 | return tree.walk(node => {
53 | if (typeof node === 'object') {
54 | node.content = node.content.map(content => content.toUpperCase())
55 | }
56 |
57 | return node;
58 | })
59 | },
60 | tree => {
61 | return tree.walk(node => {
62 | if (typeof node === 'object') {
63 | node.content = node.content.map(content => content.split('').reverse().join(''))
64 | }
65 |
66 | return node;
67 | })
68 | }
69 | ]
70 | },
71 | })
72 | })
73 |
74 | test('It works with options plugins before', () => {
75 | process('plugins-before', {
76 | preserveTag: true,
77 | plugins: {
78 | before(tree) {
79 | tree.walk(node => {
80 | if (typeof node === 'object') {
81 | node.attrs.before = '';
82 | }
83 |
84 | return node;
85 | })
86 |
87 | return tree;
88 | },
89 | },
90 | })
91 | })
92 |
93 | test('It not fails if attribute contains an invalid URL', () => {
94 | process('invalid-src')
95 | })
96 |
97 | test('It works with local file', () => {
98 | process('local-src')
99 | })
100 |
101 | test('It uses options passed to ofetch', () => {
102 | process('ofetch-options', { ofetch: { parseResponse: JSON.parse }})
103 | })
104 |
105 | test('It works with custom attribute', () => {
106 | process('attribute', {attribute: 'from'})
107 | })
108 |
109 | test('It works with multiple call of fetch', () => {
110 | process('multiple-src')
111 | })
112 |
113 | test('It works with options passed to posthtml-expressions', () => {
114 | process('expressions-options', {expressions: {delimiters: ['[[', ']]']}})
115 | })
116 |
--------------------------------------------------------------------------------
/types/expressions.d.ts:
--------------------------------------------------------------------------------
1 | export default interface ExpressionsConfig {
2 | /**
3 | Define the starting and ending delimiters used for expressions.
4 |
5 | @default ['{{', '}}']
6 | */
7 | delimiters?: string[];
8 |
9 | /**
10 | Define the starting and ending delimiters used for unescaped expressions.
11 |
12 | @default ['{{{', '}}}']
13 | */
14 | unescapeDelimiters?: string[];
15 |
16 | /**
17 | Object containing data that will be available under the `page` object.
18 |
19 | @default {}
20 | */
21 | locals?: Record;
22 |
23 | /**
24 | Attribute name for `