├── .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 `