├── .editorconfig ├── .eslintrc ├── .github ├── dependabot.yml └── workflows │ └── nodejs.yml ├── .gitignore ├── LICENSE ├── README.md ├── biome.json ├── lib ├── index.d.ts └── index.js ├── package-lock.json ├── package.json └── test └── unit.test.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 | -------------------------------------------------------------------------------- /.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "parserOptions": { 3 | "sourceType": "module", 4 | "ecmaVersion": 2023 5 | }, 6 | "plugins": ["@typescript-eslint"], 7 | "rules": { 8 | "indent": [2, 2, {"SwitchCase": 1}], 9 | "quotes": [2, "double"], 10 | "linebreak-style": [2, "unix"], 11 | "camelcase": [2, {"properties": "always"}], 12 | "brace-style": [2, "1tbs", {"allowSingleLine": true}] 13 | }, 14 | "env": { 15 | "es6": true, 16 | "node": true, 17 | "browser": false 18 | }, 19 | "extends": [ 20 | "eslint:recommended", 21 | "plugin:@typescript-eslint/recommended" 22 | ] 23 | } 24 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | - package-ecosystem: npm 4 | directory: "/" 5 | schedule: 6 | interval: weekly 7 | -------------------------------------------------------------------------------- /.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] 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 ci 26 | - run: npm test 27 | env: 28 | CI: true 29 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | coverage 3 | *.log 4 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License (MIT) 2 | 3 | Copyright (c) Rasmus Fløe 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 |

posthtml-match-helper

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