├── .github ├── FUNDING.yml └── workflows │ ├── test.yml │ └── release.yml ├── .gitignore ├── .npmignore ├── eslint.config.mjs ├── .editorconfig ├── polyfill.js ├── test ├── setup-body.js ├── polyfill-no-webp.test.js ├── polyfill-webp.test.js └── plugin.test.js ├── LICENSE ├── CHANGELOG.md ├── package.json ├── README.md ├── plugin.js └── pnpm-lock.yaml /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | open_collective: postcss 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | yarn-error.log 3 | 4 | coverage/ 5 | -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | yarn-error.log 2 | yarn.lock 3 | 4 | test/ 5 | coverage/ 6 | .github/ 7 | -------------------------------------------------------------------------------- /eslint.config.mjs: -------------------------------------------------------------------------------- 1 | import loguxTsConfig from '@logux/eslint-config/ts' 2 | 3 | export default [{ ignores: ['polyfill.js'] }, ...loguxTsConfig] 4 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | indent_style = space 5 | indent_size = 2 6 | end_of_line = lf 7 | charset = utf-8 8 | trim_trailing_whitespace = true 9 | insert_final_newline = true 10 | -------------------------------------------------------------------------------- /polyfill.js: -------------------------------------------------------------------------------- 1 | document.body.classList.remove('no-js');var i=new Image;i.onload=i.onerror=function(){document.body.classList.add(i.height==1?"webp":"no-webp")};i.src="data:image/webp;base64,UklGRhoAAABXRUJQVlA4TA0AAAAvAAAAEAcQERGIiP4HAA=="; 2 | -------------------------------------------------------------------------------- /test/setup-body.js: -------------------------------------------------------------------------------- 1 | global.document = { 2 | body: { 3 | classList: { 4 | add(cls) { 5 | global.document.body.className += cls 6 | }, 7 | remove(cls) { 8 | global.document.body.className += global.document.body.className 9 | .split(' ') 10 | .filter(i => i !== cls) 11 | .join(' ') 12 | } 13 | }, 14 | className: '' 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /test/polyfill-no-webp.test.js: -------------------------------------------------------------------------------- 1 | let { equal } = require('node:assert') 2 | let { test } = require('node:test') 3 | let { setTimeout } = require('node:timers/promises') 4 | require('./setup-body') 5 | 6 | class BadImage { 7 | get src() { 8 | return this._src 9 | } 10 | 11 | set src(value) { 12 | this._src = value 13 | setTimeout(1).then(() => { 14 | this.onerror() 15 | }) 16 | } 17 | } 18 | 19 | test.before(() => { 20 | delete require.cache[require.resolve('../polyfill')] 21 | global.document.body.className = '' 22 | global.Image = BadImage 23 | }) 24 | 25 | test('adds class to body', async () => { 26 | require('../polyfill') 27 | await setTimeout(100) 28 | equal(document.body.className, 'no-webp') 29 | }) 30 | -------------------------------------------------------------------------------- /test/polyfill-webp.test.js: -------------------------------------------------------------------------------- 1 | let { equal } = require('node:assert') 2 | let { test } = require('node:test') 3 | let { setTimeout } = require('node:timers/promises') 4 | require('./setup-body') 5 | 6 | class GoodImage { 7 | get src() { 8 | return this._src 9 | } 10 | 11 | set src(value) { 12 | this._src = value 13 | setTimeout(1).then(() => { 14 | this.height = 1 15 | this.onload() 16 | }) 17 | } 18 | } 19 | 20 | test.before(() => { 21 | delete require.cache[require.resolve('../polyfill')] 22 | global.document.body.className = '' 23 | global.Image = GoodImage 24 | }) 25 | 26 | test('adds class to body', async () => { 27 | require('../polyfill') 28 | await setTimeout(100) 29 | equal(document.body.className, 'webp') 30 | }) 31 | 32 | test.run() 33 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright 2019 Andrey Sitnik 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of 6 | this software and associated documentation files (the "Software"), to deal in 7 | the Software without restriction, including without limitation the rights to 8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software is furnished to do so, 10 | subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Change Log 2 | This project adheres to [Semantic Versioning](http://semver.org/). 3 | 4 | ## 0.9.0 5 | * Fixed multiple background values support (by @katozaaaa). 6 | * Removed Node.js 16 and 14 support. 7 | 8 | ## 0.8 9 | * Replace only URL part of `background` (by @Razunter). 10 | * Improved selector rewriting (by @Razunter). 11 | * Removed Node.js 12 support. 12 | 13 | ## 0.7 14 | * Added `check` options (by @taoliujun). 15 | * Added `format=webp` support (by @taoliujun). 16 | * Moved from `background` to `background-image` (by @taoliujun). 17 | 18 | ## 0.6 19 | * Removed Node.js 10 support. 20 | * Add no JS support (by @LambdaZed). 21 | 22 | ## 0.5.1 23 | * Added funding links. 24 | 25 | ## 0.5 26 | * Moved to PostCSS 8. 27 | * Moved `postcss` to `peerDependencies`. 28 | * Added `.jpeg` files support (by Anton Nesterov). 29 | 30 | ## 0.4 31 | * Added `rename` option (by @wtagain). 32 | 33 | ## 0.3 34 | * Rename `require('webp-in-css')` to `require('webp-in-css/polyfill')`. 35 | 36 | ## 0.2 37 | * Add `modules`, `webpClass`, and `noWebpClass` options (by Hovhannes Babayan). 38 | 39 | ## 0.1.2 40 | * Fix IE 10 support. 41 | 42 | ## 0.1.1 43 | * Fix support of selectors with `html` (by Bohdan Onatsky). 44 | 45 | ## 0.1 46 | * Initial release. 47 | -------------------------------------------------------------------------------- /.github/workflows/test.yml: -------------------------------------------------------------------------------- 1 | name: Test 2 | on: 3 | push: 4 | branches: 5 | - main 6 | pull_request: 7 | permissions: 8 | contents: read 9 | jobs: 10 | full: 11 | name: Node.js Latest Full 12 | runs-on: ubuntu-latest 13 | steps: 14 | - name: Checkout the repository 15 | uses: actions/checkout@v4 16 | - name: Install pnpm 17 | uses: pnpm/action-setup@v4 18 | with: 19 | version: 9 20 | - name: Install Node.js 21 | uses: actions/setup-node@v4 22 | with: 23 | node-version: 22 24 | cache: pnpm 25 | - name: Install dependencies 26 | run: pnpm install --ignore-scripts 27 | - name: Run tests 28 | run: pnpm test 29 | short: 30 | runs-on: ubuntu-latest 31 | strategy: 32 | matrix: 33 | node-version: 34 | - 20 35 | - 18 36 | name: Node.js ${{ matrix.node-version }} Quick 37 | steps: 38 | - name: Checkout the repository 39 | uses: actions/checkout@v4 40 | - name: Install pnpm 41 | uses: pnpm/action-setup@v4 42 | with: 43 | version: 9 44 | - name: Install Node.js ${{ matrix.node-version }} 45 | uses: actions/setup-node@v4 46 | with: 47 | node-version: ${{ matrix.node-version }} 48 | cache: pnpm 49 | - name: Install dependencies 50 | run: pnpm install --ignore-scripts 51 | - name: Run unit tests 52 | run: node --test test/plugin.test.js 53 | -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- 1 | name: Release 2 | on: 3 | push: 4 | tags: 5 | - '*' 6 | permissions: 7 | contents: write 8 | jobs: 9 | release: 10 | name: Release On Tag 11 | if: startsWith(github.ref, 'refs/tags/') 12 | runs-on: ubuntu-latest 13 | steps: 14 | - name: Checkout the repository 15 | uses: actions/checkout@v4 16 | - name: Extract the changelog 17 | id: changelog 18 | run: | 19 | TAG_NAME=${GITHUB_REF/refs\/tags\//} 20 | READ_SECTION=false 21 | CHANGELOG="" 22 | while IFS= read -r line; do 23 | if [[ "$line" =~ ^#+\ +(.*) ]]; then 24 | if [[ "${BASH_REMATCH[1]}" == "$TAG_NAME" ]]; then 25 | READ_SECTION=true 26 | elif [[ "$READ_SECTION" == true ]]; then 27 | break 28 | fi 29 | elif [[ "$READ_SECTION" == true ]]; then 30 | CHANGELOG+="$line"$'\n' 31 | fi 32 | done < "CHANGELOG.md" 33 | CHANGELOG=$(echo "$CHANGELOG" | awk '/./ {$1=$1;print}') 34 | echo "changelog_content<> $GITHUB_OUTPUT 35 | echo "$CHANGELOG" >> $GITHUB_OUTPUT 36 | echo "EOF" >> $GITHUB_OUTPUT 37 | - name: Create the release 38 | if: steps.changelog.outputs.changelog_content != '' 39 | uses: softprops/action-gh-release@v2 40 | with: 41 | name: ${{ github.ref_name }} 42 | body: '${{ steps.changelog.outputs.changelog_content }}' 43 | draft: false 44 | prerelease: false 45 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "webp-in-css", 3 | "version": "0.9.0", 4 | "description": "PostCSS plugin and tiny JS script (175 bytes) to use WebP in CSS background", 5 | "keywords": [ 6 | "webp", 7 | "postcss-plugin", 8 | "css", 9 | "background", 10 | "polyfill" 11 | ], 12 | "author": "Andrey Sitnik ", 13 | "license": "MIT", 14 | "repository": "ai/webp-in-css", 15 | "bugs": { 16 | "url": "https://github.com/ai/webp-in-css/issues" 17 | }, 18 | "scripts": { 19 | "test:coverage": "c8 node --test test/*.test.js", 20 | "test:lint": "eslint .", 21 | "test:size": "size-limit", 22 | "test": "pnpm run /^test:/" 23 | }, 24 | "engines": { 25 | "node": ">=18.0" 26 | }, 27 | "funding": { 28 | "type": "opencollective", 29 | "url": "https://opencollective.com/postcss/" 30 | }, 31 | "dependencies": { 32 | "postcss-selector-parser": "^6.1.2" 33 | }, 34 | "peerDependencies": { 35 | "postcss": "^8.2.14" 36 | }, 37 | "devDependencies": { 38 | "@logux/eslint-config": "^53.4.0", 39 | "@size-limit/preset-small-lib": "^11.1.5", 40 | "c8": "^10.1.2", 41 | "clean-publish": "^5.0.0", 42 | "eslint": "^9.11.0", 43 | "postcss": "^8.4.47", 44 | "size-limit": "^11.1.5" 45 | }, 46 | "size-limit": [ 47 | { 48 | "path": "polyfill.js", 49 | "limit": "145 B" 50 | } 51 | ], 52 | "prettier": { 53 | "arrowParens": "avoid", 54 | "jsxSingleQuote": false, 55 | "quoteProps": "consistent", 56 | "semi": false, 57 | "singleQuote": true, 58 | "trailingComma": "none" 59 | }, 60 | "c8": { 61 | "exclude": [ 62 | "**/*.test.*" 63 | ], 64 | "lines": 100, 65 | "reporter": "lcov", 66 | "check-coverage": true 67 | }, 68 | "clean-publish": { 69 | "cleanDocs": true 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # WebP in CSS 2 | 3 | WebP logo 5 | 6 | [PostCSS] plugin and tiny JS script (175 bytes) to use [WebP] in CSS `background`. 7 | 8 | This tool will make your images [25% smaller] for Chrome, Firefox, and Edge. 9 | Safari will download the bigger JPEG/PNG image. 10 | 11 | You add `require('webp-in-css/polyfill')` to your JS bundle and write CSS like: 12 | 13 | ```css 14 | .logo { 15 | width: 30px; 16 | height: 30px; 17 | background: url(/logo.png); 18 | } 19 | ``` 20 | 21 | The script will set `webp` or `no-webp` class on `` 22 | and PostCSS plugin will generate: 23 | 24 | ```css 25 | .logo { 26 | width: 30px; 27 | height: 30px; 28 | background: url(/logo.webp) no-repeat; 29 | } 30 | body.webp .logo { 31 | background-image: url(/logo.webp); 32 | } 33 | body.no-webp .logo, body.no-js .logo { 34 | background-image: url(/logo.png); 35 | } 36 | ``` 37 | 38 | If you want to use `addNoJs` option, you need manually set `no-js` class on ``. 39 | Polyfill will remove this class, if JS is enabled in the browser. Polyfill should 40 | be inserted in the ``, without `async` or `defer` attributes, before css. 41 | `addNoJs` option is enabled by default. 42 | 43 | [25% smaller]: https://developers.google.com/speed/webp/docs/webp_lossless_alpha_study#results 44 | [PostCSS]: https://github.com/postcss/postcss 45 | [WebP]: https://en.wikipedia.org/wiki/WebP 46 | 47 | 48 | Sponsored by Evil Martians 50 | 51 | 52 | 53 | ## Usage 54 | 55 | **Step 1:** Install tool: 56 | 57 | ```sh 58 | npm install --save-dev postcss webp-in-css 59 | ``` 60 | 61 | **Step 2:** convert all your JPEG/PNG images to WebP by [Squoosh]. 62 | Set checkbox on `Lossless` for PNG images and remove it for JPEG. 63 | 64 | We recommend `Reduce palette` for most of the PNG images. 65 | 66 | Save WebP images in the same places of JPEG/PNG images: 67 | `img/bg.png` → `img/bg.webp`. 68 | 69 | **Step 3:** use `` to insert WebP images in HTML: 70 | 71 | ```diff html 72 | - Screenshot 73 | + 74 | + 75 | + Screenshot 76 | + 77 | ``` 78 | 79 | **Step 4:** add JS script to your client-side JS bundle: 80 | 81 | ```diff js 82 | + import 'webp-in-css/polyfill' 83 | ``` 84 | 85 | Since JS script is very small (142 bytes), the best way for landings 86 | is to inline it to HTML: 87 | 88 | ```diff html 89 | 90 | 91 | + 92 | ``` 93 | 94 | Note, that you need to put ` 135 | 136 | ``` 137 | 138 | [postcss-loader]: https://github.com/postcss/postcss-loader#usage 139 | [gulp-postcss]: https://github.com/postcss/gulp-postcss 140 | [Squoosh]: https://squoosh.app/ 141 | 142 | 143 | ## PostCSS Options 144 | 145 | ```js 146 | module.exports = { 147 | plugins: [ 148 | require('webp-in-css/plugin')({ /* options */ }), 149 | ] 150 | } 151 | ``` 152 | 153 | * `modules` boolean: wrap classes to `:global()` to support CSS Modules. 154 | `false` by default. 155 | * `webpClass` string: class name for browser with WebP support. 156 | * `noWebpClass` string: class name for browser without WebP support. 157 | * `addNoJs` boolean: add `no-js` class to selector. 158 | `true` by default. 159 | * `noJsClass` string: class name for browser without JS support. 160 | * `check` function: should return boolean if we need to change declaration, 161 | default: 162 | 163 | ```js 164 | decl => /\.(jpe?g|png)(?!(\.webp|.*[&?]format=webp))/i.test(decl.value) 165 | ``` 166 | * `rename` function: get a new file name from old name, 167 | like `(oldName: string) => string`, 168 | then `url(./image.png)` → `url(./image.png.webp)`. 169 | Often you will need to change `check` option too. 170 | 171 | ```js 172 | check: decl => /\.jpg/.test(decl.value) && !decl.value.includes("as=webp"), 173 | rename: url => url.replace(".jpg", ".jpg?as=webp") 174 | ``` 175 | -------------------------------------------------------------------------------- /plugin.js: -------------------------------------------------------------------------------- 1 | const selectorParser = require('postcss-selector-parser'); 2 | 3 | const DEFAULT_OPTIONS = { 4 | addNoJs: true, 5 | check: decl => 6 | /\.(jpe?g|png)(?!(\.webp|.*[&?]format=webp))/i.test(decl.value), 7 | modules: false, 8 | noJsClass: 'no-js', 9 | noWebpClass: 'no-webp', 10 | rename: oldName => oldName.replace(/\.(jpe?g|png)/gi, '.webp'), 11 | webpClass: 'webp' 12 | } 13 | 14 | module.exports = (opts = {}) => { 15 | let { addNoJs, check, modules, noJsClass, noWebpClass, rename, webpClass } = { 16 | ...DEFAULT_OPTIONS, 17 | ...opts 18 | } 19 | 20 | function removeHtmlPrefix(className) { 21 | return className.replace(/html ?\./, '') 22 | } 23 | 24 | /** 25 | * Process background value to remove unnecessary parts 26 | * @param {string} value - background value 27 | */ 28 | function processBackgroundValue(value) { 29 | // check for image-set 30 | // https://developer.mozilla.org/en-US/docs/Web/CSS/image/image-set 31 | let clearValue = 32 | value.includes('image-set') ? 33 | /(image-set.*\))/gm.exec(value) : 34 | /(url.*\))/gm.exec(value) 35 | 36 | if (!clearValue) { 37 | return value; 38 | } 39 | 40 | return clearValue[0] ?? value; 41 | } 42 | 43 | /** 44 | * Add .webp and .no-webp classes 45 | * @param {Rule} rule - PostCSS Rule 46 | * @param {string} className - class name to add 47 | */ 48 | function addClass(rule, className) { 49 | let initialClassName = className 50 | let internalNoWebpClass = noWebpClass.includes('html') ? removeHtmlPrefix(noWebpClass) : noWebpClass 51 | if (className.includes('html')) { 52 | className = removeHtmlPrefix(className) 53 | } 54 | 55 | /** 56 | * @param {parser.Container} selectors 57 | * @param {string} targetClassName 58 | */ 59 | let transformWithClass = (selectors, targetClassName) => { 60 | selectors.each(selector => { 61 | let isBodyFound = false 62 | let isHtmlFound = false 63 | 64 | // detect body & html, add class to body 65 | selector.walkTags(currentSelector => { 66 | if (currentSelector.value === 'body') { 67 | isBodyFound = true 68 | currentSelector.parent.insertAfter(currentSelector, selectorParser.className({value: targetClassName})) 69 | } 70 | else if (currentSelector.value === 'html') { 71 | isHtmlFound = true 72 | } 73 | }) 74 | 75 | let bodyCombinator = selectorParser.combinator({value: ' '}) 76 | let bodyTag = selectorParser.tag({value: 'body'}) 77 | let bodyClass = selectorParser.className({value: targetClassName}) 78 | 79 | // html found, no body tags 80 | if (isHtmlFound && !isBodyFound) { 81 | let isHtmlFoundHere = false 82 | selector.walk(currentSelector => { 83 | if (currentSelector.value === 'html') { 84 | isHtmlFoundHere = true 85 | } 86 | else if (isHtmlFoundHere && currentSelector.type === 'combinator') { 87 | let selectorParent = currentSelector.parent 88 | selectorParent.insertAfter(currentSelector, bodyTag) 89 | selectorParent.insertAfter(bodyTag, bodyClass) 90 | selectorParent.insertAfter(bodyClass, bodyCombinator) 91 | } 92 | }) 93 | } 94 | else if (!isHtmlFound && !isBodyFound) { 95 | if (selector.first.spaces.before === ' ') { 96 | bodyTag.spaces.before = ' ' 97 | } 98 | selector.first.spaces.before = ' ' 99 | selector.prepend(bodyClass) 100 | selector.prepend(bodyTag) 101 | } 102 | }) 103 | 104 | 105 | if (addNoJs && initialClassName === noWebpClass) { 106 | selectors.each(selector => { 107 | let selectorClone = selector.clone() 108 | selectorClone.walk(subSelector => { 109 | if (subSelector.type === 'class' && subSelector.value === internalNoWebpClass) { 110 | subSelector.value = noJsClass 111 | } 112 | }) 113 | selectorClone.first.spaces.before = ' ' 114 | selectors.insertAfter(selector, selectorClone) 115 | }) 116 | } 117 | 118 | if (modules) { 119 | let validClass = [webpClass, internalNoWebpClass, noJsClass] 120 | selectors.each(selector => { 121 | selector.walk((subSelector) => { 122 | if (subSelector.type === 'class' && validClass.includes(subSelector.value)) { 123 | let newPseudo = selectorParser.pseudo({value: ':global(.' + subSelector.value + ')'}) 124 | subSelector.replaceWith(newPseudo) 125 | } 126 | }) 127 | }) 128 | } 129 | } 130 | 131 | let transform = selectors => { 132 | transformWithClass(selectors, className) 133 | } 134 | 135 | return selectorParser(transform).processSync(rule.selector) 136 | } 137 | 138 | return { 139 | Declaration(decl) { 140 | if (check(decl)) { 141 | let rule = decl.parent 142 | if (rule.selector.includes(`.${removeHtmlPrefix(noWebpClass)}`)) return 143 | 144 | // check for image-set with types & skip processing 145 | if (decl.value.includes('image-set') && decl.value.includes(') type(')) return 146 | 147 | let webp = rule.cloneAfter() 148 | webp.each(i => { 149 | if (i.prop !== decl.prop && i.value !== decl.value) i.remove() 150 | }) 151 | webp.selector = addClass(webp, webpClass) 152 | webp.each(i => { 153 | if ( 154 | rename && 155 | Object.prototype.toString.call(rename) === '[object Function]' 156 | ) { 157 | i.value = rename(i.value) 158 | i.prop = 'background-image' 159 | } 160 | i.value = processBackgroundValue(i.value) 161 | }) 162 | let noWebp = rule.cloneAfter() 163 | noWebp.each(i => { 164 | if (i.prop !== decl.prop && i.value !== decl.value) i.remove() 165 | }) 166 | noWebp.selector = addClass(noWebp, noWebpClass) 167 | noWebp.each(i => { 168 | i.value = processBackgroundValue(i.value) 169 | i.prop = 'background-image' 170 | }) 171 | } 172 | }, 173 | postcssPlugin: 'webp-in-css/plugin' 174 | } 175 | } 176 | module.exports.postcss = true 177 | -------------------------------------------------------------------------------- /test/plugin.test.js: -------------------------------------------------------------------------------- 1 | let { equal } = require('node:assert') 2 | let { test } = require('node:test') 3 | let postcss = require('postcss') 4 | 5 | let plugin = require('../plugin') 6 | 7 | function run(input, output, options) { 8 | equal(postcss([plugin(options)]).process(input).css, output) 9 | } 10 | 11 | test('adds classes and WebP link', () => { 12 | run( 13 | '@media screen { a, b { color: black; background: url(./image.jpg) } }', 14 | '@media screen { ' + 15 | 'a, b { color: black; background: url(./image.jpg) } ' + 16 | 'body.no-webp a, body.no-webp b { background-image: url(./image.jpg) } ' + 17 | 'body.webp a, body.webp b { background-image: url(./image.webp) } ' + 18 | '}', 19 | { addNoJs: false } 20 | ) 21 | }) 22 | 23 | test('should work with jpeg', () => { 24 | run( 25 | '@media screen { a, b { color: black; background: url(./image.jpeg) } }', 26 | '@media screen { ' + 27 | 'a, b { color: black; background: url(./image.jpeg) } ' + 28 | 'body.no-webp a, body.no-webp b { background-image: url(./image.jpeg) } ' + 29 | 'body.webp a, body.webp b { background-image: url(./image.webp) } ' + 30 | '}', 31 | { addNoJs: false } 32 | ) 33 | }) 34 | 35 | test('should skip urls with [&?]format=webp', () => { 36 | run( 37 | '@media screen { a, b { color: black; background: url(./image.jpeg?format=webp) } }', 38 | '@media screen { a, b { color: black; background: url(./image.jpeg?format=webp) } }', 39 | { addNoJs: false } 40 | ) 41 | }) 42 | 43 | test('does not duplicate html tag', () => { 44 | run( 45 | 'html[lang=en] .icon { background: url(./image.jpg) }', 46 | 'html[lang=en] .icon { background: url(./image.jpg) }' + 47 | 'html[lang=en] body.no-webp .icon { background-image: url(./image.jpg) }' + 48 | 'html[lang=en] body.webp .icon { background-image: url(./image.webp) }', 49 | { addNoJs: false } 50 | ) 51 | }) 52 | 53 | test('should add :global() scope when css modules enabled', () => { 54 | run( 55 | 'a { background: url(./image.png) }', 56 | 'a { background: url(./image.png) }' + 57 | 'body:global(.no-webp) a { background-image: url(./image.png) }' + 58 | 'body:global(.webp) a { background-image: url(./image.webp) }', 59 | { addNoJs: false, modules: true } 60 | ) 61 | }) 62 | 63 | test('should use passed classNames', () => { 64 | run( 65 | '.c { background: url(./image.png) }', 66 | '.c { background: url(./image.png) }' + 67 | 'body.without-webp .c { background-image: url(./image.png) }' + 68 | 'body.has-webp .c { background-image: url(./image.webp) }', 69 | { addNoJs: false, noWebpClass: 'without-webp', webpClass: 'has-webp' } 70 | ) 71 | }) 72 | 73 | test('should replace passed class with html tag v1', () => { 74 | run( 75 | '.c { background: url(./image.png) }', 76 | '.c { background: url(./image.png) }' + 77 | 'body.without-webp .c { background-image: url(./image.png) }' + 78 | 'body.has-webp .c { background-image: url(./image.webp) }', 79 | { 80 | addNoJs: false, 81 | noWebpClass: 'html.without-webp', 82 | webpClass: 'html.has-webp' 83 | } 84 | ) 85 | }) 86 | 87 | test('should replace passed class with html tag v2', () => { 88 | run( 89 | '.c { background: url(./image.png) }', 90 | '.c { background: url(./image.png) }' + 91 | 'body.without-webp .c { background-image: url(./image.png) }' + 92 | 'body.has-webp .c { background-image: url(./image.webp) }', 93 | { 94 | addNoJs: false, 95 | noWebpClass: 'html .without-webp', 96 | webpClass: 'html .has-webp' 97 | } 98 | ) 99 | }) 100 | 101 | test('set rename function', () => { 102 | run( 103 | '.c { background: url(./image.png) }', 104 | '.c { background: url(./image.png) }' + 105 | 'body.no-webp .c { background-image: url(./image.png) }' + 106 | 'body.webp .c { background-image: url(./image.png.webp) }', 107 | { 108 | addNoJs: false, 109 | rename: oldName => { 110 | return oldName.replace(/\.(jpg|png)/gi, '.$1.webp') 111 | } 112 | } 113 | ) 114 | }) 115 | 116 | test('adds classes and WebP link when NoJs option is enabled', () => { 117 | run( 118 | '@media screen { a, b { color: black; background: url(./image.jpg) } }', 119 | '@media screen { ' + 120 | 'a, b { color: black; background: url(./image.jpg) } ' + 121 | 'body.no-webp a, body.no-js a, body.no-webp b, body.no-js b { background-image: url(./image.jpg) } ' + 122 | 'body.webp a, body.webp b { background-image: url(./image.webp) } ' + 123 | '}' 124 | ) 125 | }) 126 | 127 | test('should work with jpeg when NoJs option is enabled', () => { 128 | run( 129 | '@media screen { a, b { color: black; background: url(./image.jpeg) } }', 130 | '@media screen { ' + 131 | 'a, b { color: black; background: url(./image.jpeg) } ' + 132 | 'body.no-webp a, body.no-js a, body.no-webp b, body.no-js b { background-image: url(./image.jpeg) } ' + 133 | 'body.webp a, body.webp b { background-image: url(./image.webp) } ' + 134 | '}' 135 | ) 136 | }) 137 | 138 | test('should skip urls with [&?]format=webp when NoJs option is enabled', () => { 139 | run( 140 | '@media screen { a, b { color: black; background: url(./image.jpeg?format=webp) } }', 141 | '@media screen { a, b { color: black; background: url(./image.jpeg?format=webp) } }' 142 | ) 143 | }) 144 | 145 | test('removes empty rule when NoJs option is enabled', () => { 146 | run( 147 | 'a,b { background: url(./image.PNG) }', 148 | 'a,b { background: url(./image.PNG) }' + 149 | 'body.no-webp a, body.no-js a,body.no-webp b, body.no-js b { background-image: url(./image.PNG) }' + 150 | 'body.webp a,body.webp b { background-image: url(./image.webp) }' 151 | ) 152 | }) 153 | 154 | test('does not duplicate html tag when NoJs option is enabled', () => { 155 | run( 156 | 'html[lang=en] .icon { background: url(./image.jpg) }', 157 | 'html[lang=en] .icon { background: url(./image.jpg) }' + 158 | 'html[lang=en] body.no-webp .icon, html[lang=en] body.no-js .icon { background-image: url(./image.jpg) }' + 159 | 'html[lang=en] body.webp .icon { background-image: url(./image.webp) }' 160 | ) 161 | }) 162 | 163 | test('should add :global() scope when css modules enabled', () => { 164 | run( 165 | 'a { background: url(./image.png) }', 166 | 'a { background: url(./image.png) }' + 167 | 'body:global(.no-webp) a, body:global(.no-js) a { background-image: url(./image.png) }' + 168 | 'body:global(.webp) a { background-image: url(./image.webp) }', 169 | { modules: true } 170 | ) 171 | }) 172 | 173 | test('should use passed classNames', () => { 174 | run( 175 | '.c { background: url(./image.png) }', 176 | '.c { background: url(./image.png) }' + 177 | 'body.without-webp .c, body.no-js .c { background-image: url(./image.png) }' + 178 | 'body.has-webp .c { background-image: url(./image.webp) }', 179 | { noWebpClass: 'without-webp', webpClass: 'has-webp' } 180 | ) 181 | }) 182 | 183 | test('should replace passed class with html tag v1', () => { 184 | run( 185 | '.c { background: url(./image.png) }', 186 | '.c { background: url(./image.png) }' + 187 | 'body.without-webp .c, body.no-js .c { background-image: url(./image.png) }' + 188 | 'body.has-webp .c { background-image: url(./image.webp) }', 189 | { noWebpClass: 'html.without-webp', webpClass: 'html.has-webp' } 190 | ) 191 | }) 192 | 193 | test('should replace passed class with html tag v2', () => { 194 | run( 195 | '.c { background: url(./image.png) }', 196 | '.c { background: url(./image.png) }' + 197 | 'body.without-webp .c, body.no-js .c { background-image: url(./image.png) }' + 198 | 'body.has-webp .c { background-image: url(./image.webp) }', 199 | { noWebpClass: 'html .without-webp', webpClass: 'html .has-webp' } 200 | ) 201 | }) 202 | 203 | test('set rename function', () => { 204 | run( 205 | '.c { background: url(./image.png) }', 206 | '.c { background: url(./image.png) }' + 207 | 'body.no-webp .c, body.no-js .c { background-image: url(./image.png) }' + 208 | 'body.webp .c { background-image: url(./image.png.webp) }', 209 | { 210 | rename: oldName => { 211 | return oldName.replace(/\.(jpg|png)/gi, '.$1.webp') 212 | } 213 | } 214 | ) 215 | }) 216 | 217 | test('set check function', () => { 218 | run( 219 | '.a { background: url(./image.png) }.b { background: url(./image.jpg) }', 220 | '.a { background: url(./image.png) }.b { background: url(./image.jpg) }' + 221 | 'body.no-webp .b, body.no-js .b { background-image: url(./image.jpg) }' + 222 | 'body.webp .b { background-image: url(./image.webp) }', 223 | { 224 | check: decl => decl.value.includes('.jpg') 225 | } 226 | ) 227 | }) 228 | 229 | test('adds classes and WebP link to body', () => { 230 | run( 231 | '@media screen { body, body.test, html body[data-test="1"], html body .test2 { color: black; background: url(./image.jpg) } }', 232 | '@media screen { ' + 233 | 'body, body.test, html body[data-test="1"], html body .test2 { color: black; background: url(./image.jpg) } ' + 234 | 'body.no-webp, body.no-webp.test, html body.no-webp[data-test="1"], html body.no-webp .test2 { background-image: url(./image.jpg) } ' + 235 | 'body.webp, body.webp.test, html body.webp[data-test="1"], html body.webp .test2 { background-image: url(./image.webp) } ' + 236 | '}', 237 | { addNoJs: false } 238 | ) 239 | }) 240 | 241 | test('adds classes and WebP link, complex background', () => { 242 | run( 243 | "@media screen { a, b { color: black; background: url('./image().png') 50% 50% / cover #FFF no-repeat; } }", 244 | '@media screen { ' + 245 | "a, b { color: black; background: url('./image().png') 50% 50% / cover #FFF no-repeat; } " + 246 | "body.no-webp a, body.no-webp b { background-image: url('./image().png'); } " + 247 | "body.webp a, body.webp b { background-image: url('./image().webp'); } " + 248 | '}', 249 | { addNoJs: false } 250 | ) 251 | }) 252 | 253 | test('adds classes and WebP link, image-set', () => { 254 | run( 255 | '@media screen { a, b { color: black; background: image-set(url("image.jpg") 1x, url("image.jpg") 2x) 50% 50% / cover #FFF no-repeat; } }', 256 | '@media screen { ' + 257 | 'a, b { color: black; background: image-set(url("image.jpg") 1x, url("image.jpg") 2x) 50% 50% / cover #FFF no-repeat; } ' + 258 | 'body.no-webp a, body.no-webp b { background-image: image-set(url("image.jpg") 1x, url("image.jpg") 2x); } ' + 259 | 'body.webp a, body.webp b { background-image: image-set(url("image.webp") 1x, url("image.webp") 2x); } ' + 260 | '}', 261 | { addNoJs: false } 262 | ) 263 | }) 264 | 265 | test('adds classes and WebP link, image-set with type', () => { 266 | run( 267 | '@media screen { a, b { color: black; background: image-set(url("image.avif") type("image/avif"), url("image.jpg") type("image/jpeg")) 50% 50% / cover #FFF no-repeat; } }', 268 | '@media screen { ' + 269 | 'a, b { color: black; background: image-set(url("image.avif") type("image/avif"), url("image.jpg") type("image/jpeg")) 50% 50% / cover #FFF no-repeat; } ' + 270 | '}', 271 | { addNoJs: false } 272 | ) 273 | }) 274 | 275 | test('adds classes and WebP link, image-set with type', () => { 276 | run( 277 | '.icon { background: url("../img/bg-frame.png") no-repeat; background: none; }', 278 | '.icon { background: url("../img/bg-frame.png") no-repeat; background: none; }body.no-webp .icon { background-image: url("../img/bg-frame.png"); background-image: none; }body.webp .icon { background-image: url("../img/bg-frame.webp"); background-image: none; }', 279 | { addNoJs: false } 280 | ) 281 | }) 282 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '9.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | importers: 8 | 9 | .: 10 | dependencies: 11 | postcss-selector-parser: 12 | specifier: ^6.1.2 13 | version: 6.1.2 14 | devDependencies: 15 | '@logux/eslint-config': 16 | specifier: ^53.4.0 17 | version: 53.4.0(@typescript-eslint/parser@8.6.0(eslint@9.11.0(jiti@1.21.6))(typescript@5.6.2))(eslint@9.11.0(jiti@1.21.6))(typescript@5.6.2) 18 | '@size-limit/preset-small-lib': 19 | specifier: ^11.1.5 20 | version: 11.1.5(size-limit@11.1.5) 21 | c8: 22 | specifier: ^10.1.2 23 | version: 10.1.2 24 | clean-publish: 25 | specifier: ^5.0.0 26 | version: 5.0.0 27 | eslint: 28 | specifier: ^9.11.0 29 | version: 9.11.0(jiti@1.21.6) 30 | postcss: 31 | specifier: ^8.4.47 32 | version: 8.4.47 33 | size-limit: 34 | specifier: ^11.1.5 35 | version: 11.1.5 36 | 37 | packages: 38 | 39 | '@bcoe/v8-coverage@0.2.3': 40 | resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} 41 | 42 | '@esbuild/aix-ppc64@0.23.1': 43 | resolution: {integrity: sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==} 44 | engines: {node: '>=18'} 45 | cpu: [ppc64] 46 | os: [aix] 47 | 48 | '@esbuild/android-arm64@0.23.1': 49 | resolution: {integrity: sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==} 50 | engines: {node: '>=18'} 51 | cpu: [arm64] 52 | os: [android] 53 | 54 | '@esbuild/android-arm@0.23.1': 55 | resolution: {integrity: sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==} 56 | engines: {node: '>=18'} 57 | cpu: [arm] 58 | os: [android] 59 | 60 | '@esbuild/android-x64@0.23.1': 61 | resolution: {integrity: sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==} 62 | engines: {node: '>=18'} 63 | cpu: [x64] 64 | os: [android] 65 | 66 | '@esbuild/darwin-arm64@0.23.1': 67 | resolution: {integrity: sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==} 68 | engines: {node: '>=18'} 69 | cpu: [arm64] 70 | os: [darwin] 71 | 72 | '@esbuild/darwin-x64@0.23.1': 73 | resolution: {integrity: sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==} 74 | engines: {node: '>=18'} 75 | cpu: [x64] 76 | os: [darwin] 77 | 78 | '@esbuild/freebsd-arm64@0.23.1': 79 | resolution: {integrity: sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==} 80 | engines: {node: '>=18'} 81 | cpu: [arm64] 82 | os: [freebsd] 83 | 84 | '@esbuild/freebsd-x64@0.23.1': 85 | resolution: {integrity: sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==} 86 | engines: {node: '>=18'} 87 | cpu: [x64] 88 | os: [freebsd] 89 | 90 | '@esbuild/linux-arm64@0.23.1': 91 | resolution: {integrity: sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==} 92 | engines: {node: '>=18'} 93 | cpu: [arm64] 94 | os: [linux] 95 | 96 | '@esbuild/linux-arm@0.23.1': 97 | resolution: {integrity: sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==} 98 | engines: {node: '>=18'} 99 | cpu: [arm] 100 | os: [linux] 101 | 102 | '@esbuild/linux-ia32@0.23.1': 103 | resolution: {integrity: sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==} 104 | engines: {node: '>=18'} 105 | cpu: [ia32] 106 | os: [linux] 107 | 108 | '@esbuild/linux-loong64@0.23.1': 109 | resolution: {integrity: sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==} 110 | engines: {node: '>=18'} 111 | cpu: [loong64] 112 | os: [linux] 113 | 114 | '@esbuild/linux-mips64el@0.23.1': 115 | resolution: {integrity: sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==} 116 | engines: {node: '>=18'} 117 | cpu: [mips64el] 118 | os: [linux] 119 | 120 | '@esbuild/linux-ppc64@0.23.1': 121 | resolution: {integrity: sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==} 122 | engines: {node: '>=18'} 123 | cpu: [ppc64] 124 | os: [linux] 125 | 126 | '@esbuild/linux-riscv64@0.23.1': 127 | resolution: {integrity: sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==} 128 | engines: {node: '>=18'} 129 | cpu: [riscv64] 130 | os: [linux] 131 | 132 | '@esbuild/linux-s390x@0.23.1': 133 | resolution: {integrity: sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==} 134 | engines: {node: '>=18'} 135 | cpu: [s390x] 136 | os: [linux] 137 | 138 | '@esbuild/linux-x64@0.23.1': 139 | resolution: {integrity: sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==} 140 | engines: {node: '>=18'} 141 | cpu: [x64] 142 | os: [linux] 143 | 144 | '@esbuild/netbsd-x64@0.23.1': 145 | resolution: {integrity: sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==} 146 | engines: {node: '>=18'} 147 | cpu: [x64] 148 | os: [netbsd] 149 | 150 | '@esbuild/openbsd-arm64@0.23.1': 151 | resolution: {integrity: sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==} 152 | engines: {node: '>=18'} 153 | cpu: [arm64] 154 | os: [openbsd] 155 | 156 | '@esbuild/openbsd-x64@0.23.1': 157 | resolution: {integrity: sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==} 158 | engines: {node: '>=18'} 159 | cpu: [x64] 160 | os: [openbsd] 161 | 162 | '@esbuild/sunos-x64@0.23.1': 163 | resolution: {integrity: sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==} 164 | engines: {node: '>=18'} 165 | cpu: [x64] 166 | os: [sunos] 167 | 168 | '@esbuild/win32-arm64@0.23.1': 169 | resolution: {integrity: sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==} 170 | engines: {node: '>=18'} 171 | cpu: [arm64] 172 | os: [win32] 173 | 174 | '@esbuild/win32-ia32@0.23.1': 175 | resolution: {integrity: sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==} 176 | engines: {node: '>=18'} 177 | cpu: [ia32] 178 | os: [win32] 179 | 180 | '@esbuild/win32-x64@0.23.1': 181 | resolution: {integrity: sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==} 182 | engines: {node: '>=18'} 183 | cpu: [x64] 184 | os: [win32] 185 | 186 | '@eslint-community/eslint-utils@4.4.0': 187 | resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} 188 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 189 | peerDependencies: 190 | eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 191 | 192 | '@eslint-community/regexpp@4.11.1': 193 | resolution: {integrity: sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==} 194 | engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} 195 | 196 | '@eslint/config-array@0.18.0': 197 | resolution: {integrity: sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==} 198 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 199 | 200 | '@eslint/eslintrc@3.1.0': 201 | resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==} 202 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 203 | 204 | '@eslint/js@9.11.0': 205 | resolution: {integrity: sha512-LPkkenkDqyzTFauZLLAPhIb48fj6drrfMvRGSL9tS3AcZBSVTllemLSNyCvHNNL2t797S/6DJNSIwRwXgMO/eQ==} 206 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 207 | 208 | '@eslint/object-schema@2.1.4': 209 | resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==} 210 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 211 | 212 | '@eslint/plugin-kit@0.2.0': 213 | resolution: {integrity: sha512-vH9PiIMMwvhCx31Af3HiGzsVNULDbyVkHXwlemn/B0TFj/00ho3y55efXrUZTfQipxoHC5u4xq6zblww1zm1Ig==} 214 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 215 | 216 | '@humanwhocodes/module-importer@1.0.1': 217 | resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} 218 | engines: {node: '>=12.22'} 219 | 220 | '@humanwhocodes/retry@0.3.0': 221 | resolution: {integrity: sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew==} 222 | engines: {node: '>=18.18'} 223 | 224 | '@isaacs/cliui@8.0.2': 225 | resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} 226 | engines: {node: '>=12'} 227 | 228 | '@istanbuljs/schema@0.1.3': 229 | resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} 230 | engines: {node: '>=8'} 231 | 232 | '@jridgewell/resolve-uri@3.1.2': 233 | resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} 234 | engines: {node: '>=6.0.0'} 235 | 236 | '@jridgewell/sourcemap-codec@1.5.0': 237 | resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} 238 | 239 | '@jridgewell/trace-mapping@0.3.25': 240 | resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} 241 | 242 | '@logux/eslint-config@53.4.0': 243 | resolution: {integrity: sha512-eu3uEhWSar51TM/1cZL4lm/WMiOMtefBVPZPZG3kIfE+TCReg2eCkkafLe7gj34IpUNh5Qt268tWCUNFV5DdYA==} 244 | engines: {node: '>=18.0.0'} 245 | peerDependencies: 246 | eslint: ^8.57.0 || ^9.0.0 247 | eslint-plugin-svelte: ^2.35.1 248 | svelte: ^4.2.12 249 | peerDependenciesMeta: 250 | eslint-plugin-svelte: 251 | optional: true 252 | svelte: 253 | optional: true 254 | 255 | '@nodelib/fs.scandir@2.1.5': 256 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 257 | engines: {node: '>= 8'} 258 | 259 | '@nodelib/fs.stat@2.0.5': 260 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 261 | engines: {node: '>= 8'} 262 | 263 | '@nodelib/fs.walk@1.2.8': 264 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 265 | engines: {node: '>= 8'} 266 | 267 | '@pkgjs/parseargs@0.11.0': 268 | resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} 269 | engines: {node: '>=14'} 270 | 271 | '@rtsao/scc@1.1.0': 272 | resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} 273 | 274 | '@size-limit/esbuild@11.1.5': 275 | resolution: {integrity: sha512-AywMXRGzJmgAXb8bPAHjK+zxPwuPmIazL2BKDT3zp//8Fb3B/8ld1D4yXMYro4QgJEp47W2KZAZdM5RGrc6Z/A==} 276 | engines: {node: ^18.0.0 || >=20.0.0} 277 | peerDependencies: 278 | size-limit: 11.1.5 279 | 280 | '@size-limit/file@11.1.5': 281 | resolution: {integrity: sha512-oz/XBVUJh95GpzDb9/f4sEQD/ACJ9zEKSRgBtvMUTN0c+O/9uq+RzvFeXFN2Kjpx3Dmur1ta+oZsp3zQFxlb3Q==} 282 | engines: {node: ^18.0.0 || >=20.0.0} 283 | peerDependencies: 284 | size-limit: 11.1.5 285 | 286 | '@size-limit/preset-small-lib@11.1.5': 287 | resolution: {integrity: sha512-++IMlbAQpCFQp8UN9XHrcZ3SHY+u/ZzxSUA8zIHXDjZJdkb9WIW12CJXwJADj8tMRgWHWC4ixbi1DdnHYJ3ZpA==} 288 | peerDependencies: 289 | size-limit: 11.1.5 290 | 291 | '@types/istanbul-lib-coverage@2.0.6': 292 | resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} 293 | 294 | '@types/json5@0.0.29': 295 | resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} 296 | 297 | '@typescript-eslint/eslint-plugin@8.6.0': 298 | resolution: {integrity: sha512-UOaz/wFowmoh2G6Mr9gw60B1mm0MzUtm6Ic8G2yM1Le6gyj5Loi/N+O5mocugRGY+8OeeKmkMmbxNqUCq3B4Sg==} 299 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 300 | peerDependencies: 301 | '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 302 | eslint: ^8.57.0 || ^9.0.0 303 | typescript: '*' 304 | peerDependenciesMeta: 305 | typescript: 306 | optional: true 307 | 308 | '@typescript-eslint/parser@8.6.0': 309 | resolution: {integrity: sha512-eQcbCuA2Vmw45iGfcyG4y6rS7BhWfz9MQuk409WD47qMM+bKCGQWXxvoOs1DUp+T7UBMTtRTVT+kXr7Sh4O9Ow==} 310 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 311 | peerDependencies: 312 | eslint: ^8.57.0 || ^9.0.0 313 | typescript: '*' 314 | peerDependenciesMeta: 315 | typescript: 316 | optional: true 317 | 318 | '@typescript-eslint/scope-manager@8.6.0': 319 | resolution: {integrity: sha512-ZuoutoS5y9UOxKvpc/GkvF4cuEmpokda4wRg64JEia27wX+PysIE9q+lzDtlHHgblwUWwo5/Qn+/WyTUvDwBHw==} 320 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 321 | 322 | '@typescript-eslint/type-utils@8.6.0': 323 | resolution: {integrity: sha512-dtePl4gsuenXVwC7dVNlb4mGDcKjDT/Ropsk4za/ouMBPplCLyznIaR+W65mvCvsyS97dymoBRrioEXI7k0XIg==} 324 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 325 | peerDependencies: 326 | typescript: '*' 327 | peerDependenciesMeta: 328 | typescript: 329 | optional: true 330 | 331 | '@typescript-eslint/types@8.6.0': 332 | resolution: {integrity: sha512-rojqFZGd4MQxw33SrOy09qIDS8WEldM8JWtKQLAjf/X5mGSeEFh5ixQlxssMNyPslVIk9yzWqXCsV2eFhYrYUw==} 333 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 334 | 335 | '@typescript-eslint/typescript-estree@8.6.0': 336 | resolution: {integrity: sha512-MOVAzsKJIPIlLK239l5s06YXjNqpKTVhBVDnqUumQJja5+Y94V3+4VUFRA0G60y2jNnTVwRCkhyGQpavfsbq/g==} 337 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 338 | peerDependencies: 339 | typescript: '*' 340 | peerDependenciesMeta: 341 | typescript: 342 | optional: true 343 | 344 | '@typescript-eslint/utils@8.6.0': 345 | resolution: {integrity: sha512-eNp9cWnYf36NaOVjkEUznf6fEgVy1TWpE0o52e4wtojjBx7D1UV2WAWGzR+8Y5lVFtpMLPwNbC67T83DWSph4A==} 346 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 347 | peerDependencies: 348 | eslint: ^8.57.0 || ^9.0.0 349 | 350 | '@typescript-eslint/visitor-keys@8.6.0': 351 | resolution: {integrity: sha512-wapVFfZg9H0qOYh4grNVQiMklJGluQrOUiOhYRrQWhx7BY/+I1IYb8BczWNbbUpO+pqy0rDciv3lQH5E1bCLrg==} 352 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 353 | 354 | acorn-jsx@5.3.2: 355 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} 356 | peerDependencies: 357 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 358 | 359 | acorn@8.12.1: 360 | resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} 361 | engines: {node: '>=0.4.0'} 362 | hasBin: true 363 | 364 | ajv@6.12.6: 365 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} 366 | 367 | ansi-regex@5.0.1: 368 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 369 | engines: {node: '>=8'} 370 | 371 | ansi-regex@6.1.0: 372 | resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} 373 | engines: {node: '>=12'} 374 | 375 | ansi-styles@4.3.0: 376 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 377 | engines: {node: '>=8'} 378 | 379 | ansi-styles@6.2.1: 380 | resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} 381 | engines: {node: '>=12'} 382 | 383 | anymatch@3.1.3: 384 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 385 | engines: {node: '>= 8'} 386 | 387 | argparse@2.0.1: 388 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} 389 | 390 | array-buffer-byte-length@1.0.1: 391 | resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} 392 | engines: {node: '>= 0.4'} 393 | 394 | array-includes@3.1.8: 395 | resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} 396 | engines: {node: '>= 0.4'} 397 | 398 | array.prototype.findlastindex@1.2.5: 399 | resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==} 400 | engines: {node: '>= 0.4'} 401 | 402 | array.prototype.flat@1.3.2: 403 | resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} 404 | engines: {node: '>= 0.4'} 405 | 406 | array.prototype.flatmap@1.3.2: 407 | resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} 408 | engines: {node: '>= 0.4'} 409 | 410 | arraybuffer.prototype.slice@1.0.3: 411 | resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} 412 | engines: {node: '>= 0.4'} 413 | 414 | available-typed-arrays@1.0.7: 415 | resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} 416 | engines: {node: '>= 0.4'} 417 | 418 | balanced-match@1.0.2: 419 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 420 | 421 | binary-extensions@2.3.0: 422 | resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} 423 | engines: {node: '>=8'} 424 | 425 | brace-expansion@1.1.11: 426 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 427 | 428 | brace-expansion@2.0.1: 429 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} 430 | 431 | braces@3.0.3: 432 | resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} 433 | engines: {node: '>=8'} 434 | 435 | bytes-iec@3.1.1: 436 | resolution: {integrity: sha512-fey6+4jDK7TFtFg/klGSvNKJctyU7n2aQdnM+CO0ruLPbqqMOM8Tio0Pc+deqUeVKX1tL5DQep1zQ7+37aTAsA==} 437 | engines: {node: '>= 0.8'} 438 | 439 | c8@10.1.2: 440 | resolution: {integrity: sha512-Qr6rj76eSshu5CgRYvktW0uM0CFY0yi4Fd5D0duDXO6sYinyopmftUiJVuzBQxQcwQLor7JWDVRP+dUfCmzgJw==} 441 | engines: {node: '>=18'} 442 | hasBin: true 443 | peerDependencies: 444 | monocart-coverage-reports: ^2 445 | peerDependenciesMeta: 446 | monocart-coverage-reports: 447 | optional: true 448 | 449 | call-bind@1.0.7: 450 | resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} 451 | engines: {node: '>= 0.4'} 452 | 453 | callsites@3.1.0: 454 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 455 | engines: {node: '>=6'} 456 | 457 | chalk@4.1.2: 458 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 459 | engines: {node: '>=10'} 460 | 461 | chokidar@3.6.0: 462 | resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} 463 | engines: {node: '>= 8.10.0'} 464 | 465 | clean-publish@5.0.0: 466 | resolution: {integrity: sha512-1qjtqP3piZL4t8SqGojOyA12bg8AtbFPIQstNvxmss1fhwfma3CqMJ/Y/kbRvAllLX2/c4ZKjcCCKDqEtpcymA==} 467 | engines: {node: '>= 18.0.0'} 468 | hasBin: true 469 | 470 | cliui@8.0.1: 471 | resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} 472 | engines: {node: '>=12'} 473 | 474 | color-convert@2.0.1: 475 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 476 | engines: {node: '>=7.0.0'} 477 | 478 | color-name@1.1.4: 479 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 480 | 481 | concat-map@0.0.1: 482 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 483 | 484 | convert-source-map@2.0.0: 485 | resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} 486 | 487 | cross-spawn@7.0.3: 488 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} 489 | engines: {node: '>= 8'} 490 | 491 | cssesc@3.0.0: 492 | resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} 493 | engines: {node: '>=4'} 494 | hasBin: true 495 | 496 | data-view-buffer@1.0.1: 497 | resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} 498 | engines: {node: '>= 0.4'} 499 | 500 | data-view-byte-length@1.0.1: 501 | resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} 502 | engines: {node: '>= 0.4'} 503 | 504 | data-view-byte-offset@1.0.0: 505 | resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} 506 | engines: {node: '>= 0.4'} 507 | 508 | debug@3.2.7: 509 | resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} 510 | peerDependencies: 511 | supports-color: '*' 512 | peerDependenciesMeta: 513 | supports-color: 514 | optional: true 515 | 516 | debug@4.3.7: 517 | resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} 518 | engines: {node: '>=6.0'} 519 | peerDependencies: 520 | supports-color: '*' 521 | peerDependenciesMeta: 522 | supports-color: 523 | optional: true 524 | 525 | deep-is@0.1.4: 526 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} 527 | 528 | define-data-property@1.1.4: 529 | resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} 530 | engines: {node: '>= 0.4'} 531 | 532 | define-properties@1.2.1: 533 | resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} 534 | engines: {node: '>= 0.4'} 535 | 536 | doctrine@2.1.0: 537 | resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} 538 | engines: {node: '>=0.10.0'} 539 | 540 | eastasianwidth@0.2.0: 541 | resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} 542 | 543 | emoji-regex@8.0.0: 544 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 545 | 546 | emoji-regex@9.2.2: 547 | resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} 548 | 549 | enhanced-resolve@5.17.1: 550 | resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==} 551 | engines: {node: '>=10.13.0'} 552 | 553 | es-abstract@1.23.3: 554 | resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==} 555 | engines: {node: '>= 0.4'} 556 | 557 | es-define-property@1.0.0: 558 | resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} 559 | engines: {node: '>= 0.4'} 560 | 561 | es-errors@1.3.0: 562 | resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} 563 | engines: {node: '>= 0.4'} 564 | 565 | es-object-atoms@1.0.0: 566 | resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} 567 | engines: {node: '>= 0.4'} 568 | 569 | es-set-tostringtag@2.0.3: 570 | resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} 571 | engines: {node: '>= 0.4'} 572 | 573 | es-shim-unscopables@1.0.2: 574 | resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} 575 | 576 | es-to-primitive@1.2.1: 577 | resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} 578 | engines: {node: '>= 0.4'} 579 | 580 | esbuild@0.23.1: 581 | resolution: {integrity: sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==} 582 | engines: {node: '>=18'} 583 | hasBin: true 584 | 585 | escalade@3.2.0: 586 | resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} 587 | engines: {node: '>=6'} 588 | 589 | escape-string-regexp@4.0.0: 590 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 591 | engines: {node: '>=10'} 592 | 593 | eslint-compat-utils@0.5.1: 594 | resolution: {integrity: sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==} 595 | engines: {node: '>=12'} 596 | peerDependencies: 597 | eslint: '>=6.0.0' 598 | 599 | eslint-config-standard@17.1.0: 600 | resolution: {integrity: sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==} 601 | engines: {node: '>=12.0.0'} 602 | peerDependencies: 603 | eslint: ^8.0.1 604 | eslint-plugin-import: ^2.25.2 605 | eslint-plugin-n: '^15.0.0 || ^16.0.0 ' 606 | eslint-plugin-promise: ^6.0.0 607 | 608 | eslint-import-resolver-node@0.3.9: 609 | resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} 610 | 611 | eslint-module-utils@2.11.0: 612 | resolution: {integrity: sha512-gbBE5Hitek/oG6MUVj6sFuzEjA/ClzNflVrLovHi/JgLdC7fiN5gLAY1WIPW1a0V5I999MnsrvVrCOGmmVqDBQ==} 613 | engines: {node: '>=4'} 614 | peerDependencies: 615 | '@typescript-eslint/parser': '*' 616 | eslint: '*' 617 | eslint-import-resolver-node: '*' 618 | eslint-import-resolver-typescript: '*' 619 | eslint-import-resolver-webpack: '*' 620 | peerDependenciesMeta: 621 | '@typescript-eslint/parser': 622 | optional: true 623 | eslint: 624 | optional: true 625 | eslint-import-resolver-node: 626 | optional: true 627 | eslint-import-resolver-typescript: 628 | optional: true 629 | eslint-import-resolver-webpack: 630 | optional: true 631 | 632 | eslint-plugin-es-x@7.8.0: 633 | resolution: {integrity: sha512-7Ds8+wAAoV3T+LAKeu39Y5BzXCrGKrcISfgKEqTS4BDN8SFEDQd0S43jiQ8vIa3wUKD07qitZdfzlenSi8/0qQ==} 634 | engines: {node: ^14.18.0 || >=16.0.0} 635 | peerDependencies: 636 | eslint: '>=8' 637 | 638 | eslint-plugin-import@2.30.0: 639 | resolution: {integrity: sha512-/mHNE9jINJfiD2EKkg1BKyPyUk4zdnT54YgbOgfjSakWT5oyX/qQLVNTkehyfpcMxZXMy1zyonZ2v7hZTX43Yw==} 640 | engines: {node: '>=4'} 641 | peerDependencies: 642 | '@typescript-eslint/parser': '*' 643 | eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 644 | peerDependenciesMeta: 645 | '@typescript-eslint/parser': 646 | optional: true 647 | 648 | eslint-plugin-n@17.10.3: 649 | resolution: {integrity: sha512-ySZBfKe49nQZWR1yFaA0v/GsH6Fgp8ah6XV0WDz6CN8WO0ek4McMzb7A2xnf4DCYV43frjCygvb9f/wx7UUxRw==} 650 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 651 | peerDependencies: 652 | eslint: '>=8.23.0' 653 | 654 | eslint-plugin-perfectionist@3.6.0: 655 | resolution: {integrity: sha512-sA6ljy6dL/9cM5ruZ/pMqRVt0FQ4Z7mbQWlBYpyX9941LVfm65d2jl2k1ZbWD3ud9Wm+/NKgOvRnAatsKhMJbA==} 656 | engines: {node: ^18.0.0 || >=20.0.0} 657 | peerDependencies: 658 | astro-eslint-parser: ^1.0.2 659 | eslint: '>=8.0.0' 660 | svelte: '>=3.0.0' 661 | svelte-eslint-parser: ^0.41.1 662 | vue-eslint-parser: '>=9.0.0' 663 | peerDependenciesMeta: 664 | astro-eslint-parser: 665 | optional: true 666 | svelte: 667 | optional: true 668 | svelte-eslint-parser: 669 | optional: true 670 | vue-eslint-parser: 671 | optional: true 672 | 673 | eslint-plugin-prefer-let@4.0.0: 674 | resolution: {integrity: sha512-X4ep5PMO1320HKaNC9DM5+p6XvOhwv+RcqGjhv3aiw9iAtHhiFtdIUB5l0Zya0iM22ys2BGKzrNI9Xpw/ZHooQ==} 675 | engines: {node: '>=0.10.0'} 676 | 677 | eslint-plugin-promise@7.1.0: 678 | resolution: {integrity: sha512-8trNmPxdAy3W620WKDpaS65NlM5yAumod6XeC4LOb+jxlkG4IVcp68c6dXY2ev+uT4U1PtG57YDV6EGAXN0GbQ==} 679 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 680 | peerDependencies: 681 | eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 682 | 683 | eslint-scope@8.0.2: 684 | resolution: {integrity: sha512-6E4xmrTw5wtxnLA5wYL3WDfhZ/1bUBGOXV0zQvVRDOtrR8D0p6W7fs3JweNYhwRYeGvd/1CKX2se0/2s7Q/nJA==} 685 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 686 | 687 | eslint-visitor-keys@3.4.3: 688 | resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} 689 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 690 | 691 | eslint-visitor-keys@4.0.0: 692 | resolution: {integrity: sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==} 693 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 694 | 695 | eslint@9.11.0: 696 | resolution: {integrity: sha512-yVS6XODx+tMFMDFcG4+Hlh+qG7RM6cCJXtQhCKLSsr3XkLvWggHjCqjfh0XsPPnt1c56oaT6PMgW9XWQQjdHXA==} 697 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 698 | hasBin: true 699 | peerDependencies: 700 | jiti: '*' 701 | peerDependenciesMeta: 702 | jiti: 703 | optional: true 704 | 705 | espree@10.1.0: 706 | resolution: {integrity: sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA==} 707 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 708 | 709 | esquery@1.6.0: 710 | resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} 711 | engines: {node: '>=0.10'} 712 | 713 | esrecurse@4.3.0: 714 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} 715 | engines: {node: '>=4.0'} 716 | 717 | estraverse@5.3.0: 718 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} 719 | engines: {node: '>=4.0'} 720 | 721 | esutils@2.0.3: 722 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 723 | engines: {node: '>=0.10.0'} 724 | 725 | fast-deep-equal@3.1.3: 726 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 727 | 728 | fast-glob@3.3.2: 729 | resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} 730 | engines: {node: '>=8.6.0'} 731 | 732 | fast-json-stable-stringify@2.1.0: 733 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} 734 | 735 | fast-levenshtein@2.0.6: 736 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} 737 | 738 | fastq@1.17.1: 739 | resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} 740 | 741 | fdir@6.3.0: 742 | resolution: {integrity: sha512-QOnuT+BOtivR77wYvCWHfGt9s4Pz1VIMbD463vegT5MLqNXy8rYFT/lPVEqf/bhYeT6qmqrNHhsX+rWwe3rOCQ==} 743 | peerDependencies: 744 | picomatch: ^3 || ^4 745 | peerDependenciesMeta: 746 | picomatch: 747 | optional: true 748 | 749 | file-entry-cache@8.0.0: 750 | resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} 751 | engines: {node: '>=16.0.0'} 752 | 753 | fill-range@7.1.1: 754 | resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} 755 | engines: {node: '>=8'} 756 | 757 | find-up@5.0.0: 758 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} 759 | engines: {node: '>=10'} 760 | 761 | flat-cache@4.0.1: 762 | resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} 763 | engines: {node: '>=16'} 764 | 765 | flatted@3.3.1: 766 | resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} 767 | 768 | for-each@0.3.3: 769 | resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} 770 | 771 | foreground-child@3.3.0: 772 | resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} 773 | engines: {node: '>=14'} 774 | 775 | fsevents@2.3.3: 776 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 777 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 778 | os: [darwin] 779 | 780 | function-bind@1.1.2: 781 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} 782 | 783 | function.prototype.name@1.1.6: 784 | resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} 785 | engines: {node: '>= 0.4'} 786 | 787 | functions-have-names@1.2.3: 788 | resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} 789 | 790 | get-caller-file@2.0.5: 791 | resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} 792 | engines: {node: 6.* || 8.* || >= 10.*} 793 | 794 | get-intrinsic@1.2.4: 795 | resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} 796 | engines: {node: '>= 0.4'} 797 | 798 | get-symbol-description@1.0.2: 799 | resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} 800 | engines: {node: '>= 0.4'} 801 | 802 | get-tsconfig@4.8.1: 803 | resolution: {integrity: sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==} 804 | 805 | glob-parent@5.1.2: 806 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 807 | engines: {node: '>= 6'} 808 | 809 | glob-parent@6.0.2: 810 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 811 | engines: {node: '>=10.13.0'} 812 | 813 | glob@10.4.5: 814 | resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} 815 | hasBin: true 816 | 817 | globals@14.0.0: 818 | resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} 819 | engines: {node: '>=18'} 820 | 821 | globals@15.9.0: 822 | resolution: {integrity: sha512-SmSKyLLKFbSr6rptvP8izbyxJL4ILwqO9Jg23UA0sDlGlu58V59D1//I3vlc0KJphVdUR7vMjHIplYnzBxorQA==} 823 | engines: {node: '>=18'} 824 | 825 | globalthis@1.0.4: 826 | resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} 827 | engines: {node: '>= 0.4'} 828 | 829 | gopd@1.0.1: 830 | resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} 831 | 832 | graceful-fs@4.2.11: 833 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} 834 | 835 | graphemer@1.4.0: 836 | resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} 837 | 838 | has-bigints@1.0.2: 839 | resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} 840 | 841 | has-flag@4.0.0: 842 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 843 | engines: {node: '>=8'} 844 | 845 | has-property-descriptors@1.0.2: 846 | resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} 847 | 848 | has-proto@1.0.3: 849 | resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} 850 | engines: {node: '>= 0.4'} 851 | 852 | has-symbols@1.0.3: 853 | resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} 854 | engines: {node: '>= 0.4'} 855 | 856 | has-tostringtag@1.0.2: 857 | resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} 858 | engines: {node: '>= 0.4'} 859 | 860 | hasown@2.0.2: 861 | resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} 862 | engines: {node: '>= 0.4'} 863 | 864 | html-escaper@2.0.2: 865 | resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} 866 | 867 | ignore@5.3.2: 868 | resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} 869 | engines: {node: '>= 4'} 870 | 871 | import-fresh@3.3.0: 872 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} 873 | engines: {node: '>=6'} 874 | 875 | imurmurhash@0.1.4: 876 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} 877 | engines: {node: '>=0.8.19'} 878 | 879 | internal-slot@1.0.7: 880 | resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} 881 | engines: {node: '>= 0.4'} 882 | 883 | is-array-buffer@3.0.4: 884 | resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} 885 | engines: {node: '>= 0.4'} 886 | 887 | is-bigint@1.0.4: 888 | resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} 889 | 890 | is-binary-path@2.1.0: 891 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 892 | engines: {node: '>=8'} 893 | 894 | is-boolean-object@1.1.2: 895 | resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} 896 | engines: {node: '>= 0.4'} 897 | 898 | is-callable@1.2.7: 899 | resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} 900 | engines: {node: '>= 0.4'} 901 | 902 | is-core-module@2.15.1: 903 | resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==} 904 | engines: {node: '>= 0.4'} 905 | 906 | is-data-view@1.0.1: 907 | resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} 908 | engines: {node: '>= 0.4'} 909 | 910 | is-date-object@1.0.5: 911 | resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} 912 | engines: {node: '>= 0.4'} 913 | 914 | is-extglob@2.1.1: 915 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 916 | engines: {node: '>=0.10.0'} 917 | 918 | is-fullwidth-code-point@3.0.0: 919 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 920 | engines: {node: '>=8'} 921 | 922 | is-glob@4.0.3: 923 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 924 | engines: {node: '>=0.10.0'} 925 | 926 | is-negative-zero@2.0.3: 927 | resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} 928 | engines: {node: '>= 0.4'} 929 | 930 | is-number-object@1.0.7: 931 | resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} 932 | engines: {node: '>= 0.4'} 933 | 934 | is-number@7.0.0: 935 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 936 | engines: {node: '>=0.12.0'} 937 | 938 | is-path-inside@3.0.3: 939 | resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} 940 | engines: {node: '>=8'} 941 | 942 | is-regex@1.1.4: 943 | resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} 944 | engines: {node: '>= 0.4'} 945 | 946 | is-shared-array-buffer@1.0.3: 947 | resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} 948 | engines: {node: '>= 0.4'} 949 | 950 | is-string@1.0.7: 951 | resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} 952 | engines: {node: '>= 0.4'} 953 | 954 | is-symbol@1.0.4: 955 | resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} 956 | engines: {node: '>= 0.4'} 957 | 958 | is-typed-array@1.1.13: 959 | resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} 960 | engines: {node: '>= 0.4'} 961 | 962 | is-weakref@1.0.2: 963 | resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} 964 | 965 | isarray@2.0.5: 966 | resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} 967 | 968 | isexe@2.0.0: 969 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 970 | 971 | istanbul-lib-coverage@3.2.2: 972 | resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} 973 | engines: {node: '>=8'} 974 | 975 | istanbul-lib-report@3.0.1: 976 | resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} 977 | engines: {node: '>=10'} 978 | 979 | istanbul-reports@3.1.7: 980 | resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} 981 | engines: {node: '>=8'} 982 | 983 | jackspeak@3.4.3: 984 | resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} 985 | 986 | jiti@1.21.6: 987 | resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} 988 | hasBin: true 989 | 990 | js-yaml@4.1.0: 991 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} 992 | hasBin: true 993 | 994 | json-buffer@3.0.1: 995 | resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} 996 | 997 | json-schema-traverse@0.4.1: 998 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} 999 | 1000 | json-stable-stringify-without-jsonify@1.0.1: 1001 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} 1002 | 1003 | json5@1.0.2: 1004 | resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} 1005 | hasBin: true 1006 | 1007 | keyv@4.5.4: 1008 | resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} 1009 | 1010 | levn@0.4.1: 1011 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} 1012 | engines: {node: '>= 0.8.0'} 1013 | 1014 | lilconfig@3.1.2: 1015 | resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==} 1016 | engines: {node: '>=14'} 1017 | 1018 | locate-path@6.0.0: 1019 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} 1020 | engines: {node: '>=10'} 1021 | 1022 | lodash.merge@4.6.2: 1023 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 1024 | 1025 | lru-cache@10.4.3: 1026 | resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} 1027 | 1028 | make-dir@4.0.0: 1029 | resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} 1030 | engines: {node: '>=10'} 1031 | 1032 | merge2@1.4.1: 1033 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 1034 | engines: {node: '>= 8'} 1035 | 1036 | micromatch@4.0.8: 1037 | resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} 1038 | engines: {node: '>=8.6'} 1039 | 1040 | minimatch@3.1.2: 1041 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 1042 | 1043 | minimatch@9.0.5: 1044 | resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} 1045 | engines: {node: '>=16 || 14 >=14.17'} 1046 | 1047 | minimist@1.2.8: 1048 | resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} 1049 | 1050 | minipass@7.1.2: 1051 | resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} 1052 | engines: {node: '>=16 || 14 >=14.17'} 1053 | 1054 | ms@2.1.3: 1055 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 1056 | 1057 | nanoid@3.3.7: 1058 | resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} 1059 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 1060 | hasBin: true 1061 | 1062 | nanoid@5.0.7: 1063 | resolution: {integrity: sha512-oLxFY2gd2IqnjcYyOXD8XGCftpGtZP2AbHbOkthDkvRywH5ayNtPVy9YlOPcHckXzbLTCHpkb7FB+yuxKV13pQ==} 1064 | engines: {node: ^18 || >=20} 1065 | hasBin: true 1066 | 1067 | nanospinner@1.1.0: 1068 | resolution: {integrity: sha512-yFvNYMig4AthKYfHFl1sLj7B2nkHL4lzdig4osvl9/LdGbXwrdFRoqBS98gsEsOakr0yH+r5NZ/1Y9gdVB8trA==} 1069 | 1070 | natural-compare-lite@1.4.0: 1071 | resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} 1072 | 1073 | natural-compare@1.4.0: 1074 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} 1075 | 1076 | normalize-path@3.0.0: 1077 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 1078 | engines: {node: '>=0.10.0'} 1079 | 1080 | object-inspect@1.13.2: 1081 | resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} 1082 | engines: {node: '>= 0.4'} 1083 | 1084 | object-keys@1.1.1: 1085 | resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} 1086 | engines: {node: '>= 0.4'} 1087 | 1088 | object.assign@4.1.5: 1089 | resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} 1090 | engines: {node: '>= 0.4'} 1091 | 1092 | object.fromentries@2.0.8: 1093 | resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} 1094 | engines: {node: '>= 0.4'} 1095 | 1096 | object.groupby@1.0.3: 1097 | resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} 1098 | engines: {node: '>= 0.4'} 1099 | 1100 | object.values@1.2.0: 1101 | resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} 1102 | engines: {node: '>= 0.4'} 1103 | 1104 | optionator@0.9.4: 1105 | resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} 1106 | engines: {node: '>= 0.8.0'} 1107 | 1108 | p-limit@3.1.0: 1109 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} 1110 | engines: {node: '>=10'} 1111 | 1112 | p-locate@5.0.0: 1113 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} 1114 | engines: {node: '>=10'} 1115 | 1116 | package-json-from-dist@1.0.0: 1117 | resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==} 1118 | 1119 | parent-module@1.0.1: 1120 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 1121 | engines: {node: '>=6'} 1122 | 1123 | path-exists@4.0.0: 1124 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 1125 | engines: {node: '>=8'} 1126 | 1127 | path-key@3.1.1: 1128 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 1129 | engines: {node: '>=8'} 1130 | 1131 | path-parse@1.0.7: 1132 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 1133 | 1134 | path-scurry@1.11.1: 1135 | resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} 1136 | engines: {node: '>=16 || 14 >=14.18'} 1137 | 1138 | picocolors@1.1.0: 1139 | resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==} 1140 | 1141 | picomatch@2.3.1: 1142 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 1143 | engines: {node: '>=8.6'} 1144 | 1145 | picomatch@4.0.2: 1146 | resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} 1147 | engines: {node: '>=12'} 1148 | 1149 | possible-typed-array-names@1.0.0: 1150 | resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} 1151 | engines: {node: '>= 0.4'} 1152 | 1153 | postcss-selector-parser@6.1.2: 1154 | resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} 1155 | engines: {node: '>=4'} 1156 | 1157 | postcss@8.4.47: 1158 | resolution: {integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==} 1159 | engines: {node: ^10 || ^12 || >=14} 1160 | 1161 | prelude-ls@1.2.1: 1162 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} 1163 | engines: {node: '>= 0.8.0'} 1164 | 1165 | punycode@2.3.1: 1166 | resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} 1167 | engines: {node: '>=6'} 1168 | 1169 | queue-microtask@1.2.3: 1170 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 1171 | 1172 | readdirp@3.6.0: 1173 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 1174 | engines: {node: '>=8.10.0'} 1175 | 1176 | regexp.prototype.flags@1.5.2: 1177 | resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} 1178 | engines: {node: '>= 0.4'} 1179 | 1180 | require-directory@2.1.1: 1181 | resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} 1182 | engines: {node: '>=0.10.0'} 1183 | 1184 | requireindex@1.2.0: 1185 | resolution: {integrity: sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==} 1186 | engines: {node: '>=0.10.5'} 1187 | 1188 | resolve-from@4.0.0: 1189 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 1190 | engines: {node: '>=4'} 1191 | 1192 | resolve-pkg-maps@1.0.0: 1193 | resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} 1194 | 1195 | resolve@1.22.8: 1196 | resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} 1197 | hasBin: true 1198 | 1199 | reusify@1.0.4: 1200 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 1201 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 1202 | 1203 | run-parallel@1.2.0: 1204 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 1205 | 1206 | safe-array-concat@1.1.2: 1207 | resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} 1208 | engines: {node: '>=0.4'} 1209 | 1210 | safe-regex-test@1.0.3: 1211 | resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} 1212 | engines: {node: '>= 0.4'} 1213 | 1214 | semver@6.3.1: 1215 | resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} 1216 | hasBin: true 1217 | 1218 | semver@7.6.3: 1219 | resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} 1220 | engines: {node: '>=10'} 1221 | hasBin: true 1222 | 1223 | set-function-length@1.2.2: 1224 | resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} 1225 | engines: {node: '>= 0.4'} 1226 | 1227 | set-function-name@2.0.2: 1228 | resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} 1229 | engines: {node: '>= 0.4'} 1230 | 1231 | shebang-command@2.0.0: 1232 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 1233 | engines: {node: '>=8'} 1234 | 1235 | shebang-regex@3.0.0: 1236 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 1237 | engines: {node: '>=8'} 1238 | 1239 | side-channel@1.0.6: 1240 | resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} 1241 | engines: {node: '>= 0.4'} 1242 | 1243 | signal-exit@4.1.0: 1244 | resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} 1245 | engines: {node: '>=14'} 1246 | 1247 | size-limit@11.1.5: 1248 | resolution: {integrity: sha512-dtw/Tcm+9aonYySPG6wQCe1BwogK5HRGSrSqr0zXGfKtynJGvKAsyHCTGxdphFEHjHRoHFWua3D3zqYLUVVIig==} 1249 | engines: {node: ^18.0.0 || >=20.0.0} 1250 | hasBin: true 1251 | 1252 | source-map-js@1.2.1: 1253 | resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} 1254 | engines: {node: '>=0.10.0'} 1255 | 1256 | string-width@4.2.3: 1257 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 1258 | engines: {node: '>=8'} 1259 | 1260 | string-width@5.1.2: 1261 | resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} 1262 | engines: {node: '>=12'} 1263 | 1264 | string.prototype.trim@1.2.9: 1265 | resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} 1266 | engines: {node: '>= 0.4'} 1267 | 1268 | string.prototype.trimend@1.0.8: 1269 | resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} 1270 | 1271 | string.prototype.trimstart@1.0.8: 1272 | resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} 1273 | engines: {node: '>= 0.4'} 1274 | 1275 | strip-ansi@6.0.1: 1276 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 1277 | engines: {node: '>=8'} 1278 | 1279 | strip-ansi@7.1.0: 1280 | resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} 1281 | engines: {node: '>=12'} 1282 | 1283 | strip-bom@3.0.0: 1284 | resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} 1285 | engines: {node: '>=4'} 1286 | 1287 | strip-json-comments@3.1.1: 1288 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 1289 | engines: {node: '>=8'} 1290 | 1291 | supports-color@7.2.0: 1292 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 1293 | engines: {node: '>=8'} 1294 | 1295 | supports-preserve-symlinks-flag@1.0.0: 1296 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 1297 | engines: {node: '>= 0.4'} 1298 | 1299 | tapable@2.2.1: 1300 | resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} 1301 | engines: {node: '>=6'} 1302 | 1303 | test-exclude@7.0.1: 1304 | resolution: {integrity: sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==} 1305 | engines: {node: '>=18'} 1306 | 1307 | text-table@0.2.0: 1308 | resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} 1309 | 1310 | tinyglobby@0.2.6: 1311 | resolution: {integrity: sha512-NbBoFBpqfcgd1tCiO8Lkfdk+xrA7mlLR9zgvZcZWQQwU63XAfUePyd6wZBaU93Hqw347lHnwFzttAkemHzzz4g==} 1312 | engines: {node: '>=12.0.0'} 1313 | 1314 | to-regex-range@5.0.1: 1315 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 1316 | engines: {node: '>=8.0'} 1317 | 1318 | ts-api-utils@1.3.0: 1319 | resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} 1320 | engines: {node: '>=16'} 1321 | peerDependencies: 1322 | typescript: '>=4.2.0' 1323 | 1324 | tsconfig-paths@3.15.0: 1325 | resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} 1326 | 1327 | type-check@0.4.0: 1328 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} 1329 | engines: {node: '>= 0.8.0'} 1330 | 1331 | typed-array-buffer@1.0.2: 1332 | resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} 1333 | engines: {node: '>= 0.4'} 1334 | 1335 | typed-array-byte-length@1.0.1: 1336 | resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} 1337 | engines: {node: '>= 0.4'} 1338 | 1339 | typed-array-byte-offset@1.0.2: 1340 | resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} 1341 | engines: {node: '>= 0.4'} 1342 | 1343 | typed-array-length@1.0.6: 1344 | resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} 1345 | engines: {node: '>= 0.4'} 1346 | 1347 | typescript-eslint@8.6.0: 1348 | resolution: {integrity: sha512-eEhhlxCEpCd4helh3AO1hk0UP2MvbRi9CtIAJTVPQjuSXOOO2jsEacNi4UdcJzZJbeuVg1gMhtZ8UYb+NFYPrA==} 1349 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 1350 | peerDependencies: 1351 | typescript: '*' 1352 | peerDependenciesMeta: 1353 | typescript: 1354 | optional: true 1355 | 1356 | typescript@5.6.2: 1357 | resolution: {integrity: sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==} 1358 | engines: {node: '>=14.17'} 1359 | hasBin: true 1360 | 1361 | unbox-primitive@1.0.2: 1362 | resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} 1363 | 1364 | uri-js@4.4.1: 1365 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 1366 | 1367 | util-deprecate@1.0.2: 1368 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 1369 | 1370 | v8-to-istanbul@9.3.0: 1371 | resolution: {integrity: sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==} 1372 | engines: {node: '>=10.12.0'} 1373 | 1374 | which-boxed-primitive@1.0.2: 1375 | resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} 1376 | 1377 | which-typed-array@1.1.15: 1378 | resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} 1379 | engines: {node: '>= 0.4'} 1380 | 1381 | which@2.0.2: 1382 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 1383 | engines: {node: '>= 8'} 1384 | hasBin: true 1385 | 1386 | word-wrap@1.2.5: 1387 | resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} 1388 | engines: {node: '>=0.10.0'} 1389 | 1390 | wrap-ansi@7.0.0: 1391 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} 1392 | engines: {node: '>=10'} 1393 | 1394 | wrap-ansi@8.1.0: 1395 | resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} 1396 | engines: {node: '>=12'} 1397 | 1398 | y18n@5.0.8: 1399 | resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} 1400 | engines: {node: '>=10'} 1401 | 1402 | yargs-parser@21.1.1: 1403 | resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} 1404 | engines: {node: '>=12'} 1405 | 1406 | yargs@17.7.2: 1407 | resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} 1408 | engines: {node: '>=12'} 1409 | 1410 | yocto-queue@0.1.0: 1411 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 1412 | engines: {node: '>=10'} 1413 | 1414 | snapshots: 1415 | 1416 | '@bcoe/v8-coverage@0.2.3': {} 1417 | 1418 | '@esbuild/aix-ppc64@0.23.1': 1419 | optional: true 1420 | 1421 | '@esbuild/android-arm64@0.23.1': 1422 | optional: true 1423 | 1424 | '@esbuild/android-arm@0.23.1': 1425 | optional: true 1426 | 1427 | '@esbuild/android-x64@0.23.1': 1428 | optional: true 1429 | 1430 | '@esbuild/darwin-arm64@0.23.1': 1431 | optional: true 1432 | 1433 | '@esbuild/darwin-x64@0.23.1': 1434 | optional: true 1435 | 1436 | '@esbuild/freebsd-arm64@0.23.1': 1437 | optional: true 1438 | 1439 | '@esbuild/freebsd-x64@0.23.1': 1440 | optional: true 1441 | 1442 | '@esbuild/linux-arm64@0.23.1': 1443 | optional: true 1444 | 1445 | '@esbuild/linux-arm@0.23.1': 1446 | optional: true 1447 | 1448 | '@esbuild/linux-ia32@0.23.1': 1449 | optional: true 1450 | 1451 | '@esbuild/linux-loong64@0.23.1': 1452 | optional: true 1453 | 1454 | '@esbuild/linux-mips64el@0.23.1': 1455 | optional: true 1456 | 1457 | '@esbuild/linux-ppc64@0.23.1': 1458 | optional: true 1459 | 1460 | '@esbuild/linux-riscv64@0.23.1': 1461 | optional: true 1462 | 1463 | '@esbuild/linux-s390x@0.23.1': 1464 | optional: true 1465 | 1466 | '@esbuild/linux-x64@0.23.1': 1467 | optional: true 1468 | 1469 | '@esbuild/netbsd-x64@0.23.1': 1470 | optional: true 1471 | 1472 | '@esbuild/openbsd-arm64@0.23.1': 1473 | optional: true 1474 | 1475 | '@esbuild/openbsd-x64@0.23.1': 1476 | optional: true 1477 | 1478 | '@esbuild/sunos-x64@0.23.1': 1479 | optional: true 1480 | 1481 | '@esbuild/win32-arm64@0.23.1': 1482 | optional: true 1483 | 1484 | '@esbuild/win32-ia32@0.23.1': 1485 | optional: true 1486 | 1487 | '@esbuild/win32-x64@0.23.1': 1488 | optional: true 1489 | 1490 | '@eslint-community/eslint-utils@4.4.0(eslint@9.11.0(jiti@1.21.6))': 1491 | dependencies: 1492 | eslint: 9.11.0(jiti@1.21.6) 1493 | eslint-visitor-keys: 3.4.3 1494 | 1495 | '@eslint-community/regexpp@4.11.1': {} 1496 | 1497 | '@eslint/config-array@0.18.0': 1498 | dependencies: 1499 | '@eslint/object-schema': 2.1.4 1500 | debug: 4.3.7 1501 | minimatch: 3.1.2 1502 | transitivePeerDependencies: 1503 | - supports-color 1504 | 1505 | '@eslint/eslintrc@3.1.0': 1506 | dependencies: 1507 | ajv: 6.12.6 1508 | debug: 4.3.7 1509 | espree: 10.1.0 1510 | globals: 14.0.0 1511 | ignore: 5.3.2 1512 | import-fresh: 3.3.0 1513 | js-yaml: 4.1.0 1514 | minimatch: 3.1.2 1515 | strip-json-comments: 3.1.1 1516 | transitivePeerDependencies: 1517 | - supports-color 1518 | 1519 | '@eslint/js@9.11.0': {} 1520 | 1521 | '@eslint/object-schema@2.1.4': {} 1522 | 1523 | '@eslint/plugin-kit@0.2.0': 1524 | dependencies: 1525 | levn: 0.4.1 1526 | 1527 | '@humanwhocodes/module-importer@1.0.1': {} 1528 | 1529 | '@humanwhocodes/retry@0.3.0': {} 1530 | 1531 | '@isaacs/cliui@8.0.2': 1532 | dependencies: 1533 | string-width: 5.1.2 1534 | string-width-cjs: string-width@4.2.3 1535 | strip-ansi: 7.1.0 1536 | strip-ansi-cjs: strip-ansi@6.0.1 1537 | wrap-ansi: 8.1.0 1538 | wrap-ansi-cjs: wrap-ansi@7.0.0 1539 | 1540 | '@istanbuljs/schema@0.1.3': {} 1541 | 1542 | '@jridgewell/resolve-uri@3.1.2': {} 1543 | 1544 | '@jridgewell/sourcemap-codec@1.5.0': {} 1545 | 1546 | '@jridgewell/trace-mapping@0.3.25': 1547 | dependencies: 1548 | '@jridgewell/resolve-uri': 3.1.2 1549 | '@jridgewell/sourcemap-codec': 1.5.0 1550 | 1551 | '@logux/eslint-config@53.4.0(@typescript-eslint/parser@8.6.0(eslint@9.11.0(jiti@1.21.6))(typescript@5.6.2))(eslint@9.11.0(jiti@1.21.6))(typescript@5.6.2)': 1552 | dependencies: 1553 | '@eslint/eslintrc': 3.1.0 1554 | eslint: 9.11.0(jiti@1.21.6) 1555 | eslint-config-standard: 17.1.0(eslint-plugin-import@2.30.0(@typescript-eslint/parser@8.6.0(eslint@9.11.0(jiti@1.21.6))(typescript@5.6.2))(eslint@9.11.0(jiti@1.21.6)))(eslint-plugin-n@17.10.3(eslint@9.11.0(jiti@1.21.6)))(eslint-plugin-promise@7.1.0(eslint@9.11.0(jiti@1.21.6)))(eslint@9.11.0(jiti@1.21.6)) 1556 | eslint-plugin-import: 2.30.0(@typescript-eslint/parser@8.6.0(eslint@9.11.0(jiti@1.21.6))(typescript@5.6.2))(eslint@9.11.0(jiti@1.21.6)) 1557 | eslint-plugin-n: 17.10.3(eslint@9.11.0(jiti@1.21.6)) 1558 | eslint-plugin-perfectionist: 3.6.0(eslint@9.11.0(jiti@1.21.6))(typescript@5.6.2) 1559 | eslint-plugin-prefer-let: 4.0.0 1560 | eslint-plugin-promise: 7.1.0(eslint@9.11.0(jiti@1.21.6)) 1561 | typescript-eslint: 8.6.0(eslint@9.11.0(jiti@1.21.6))(typescript@5.6.2) 1562 | transitivePeerDependencies: 1563 | - '@typescript-eslint/parser' 1564 | - astro-eslint-parser 1565 | - eslint-import-resolver-typescript 1566 | - eslint-import-resolver-webpack 1567 | - supports-color 1568 | - svelte-eslint-parser 1569 | - typescript 1570 | - vue-eslint-parser 1571 | 1572 | '@nodelib/fs.scandir@2.1.5': 1573 | dependencies: 1574 | '@nodelib/fs.stat': 2.0.5 1575 | run-parallel: 1.2.0 1576 | 1577 | '@nodelib/fs.stat@2.0.5': {} 1578 | 1579 | '@nodelib/fs.walk@1.2.8': 1580 | dependencies: 1581 | '@nodelib/fs.scandir': 2.1.5 1582 | fastq: 1.17.1 1583 | 1584 | '@pkgjs/parseargs@0.11.0': 1585 | optional: true 1586 | 1587 | '@rtsao/scc@1.1.0': {} 1588 | 1589 | '@size-limit/esbuild@11.1.5(size-limit@11.1.5)': 1590 | dependencies: 1591 | esbuild: 0.23.1 1592 | nanoid: 5.0.7 1593 | size-limit: 11.1.5 1594 | 1595 | '@size-limit/file@11.1.5(size-limit@11.1.5)': 1596 | dependencies: 1597 | size-limit: 11.1.5 1598 | 1599 | '@size-limit/preset-small-lib@11.1.5(size-limit@11.1.5)': 1600 | dependencies: 1601 | '@size-limit/esbuild': 11.1.5(size-limit@11.1.5) 1602 | '@size-limit/file': 11.1.5(size-limit@11.1.5) 1603 | size-limit: 11.1.5 1604 | 1605 | '@types/istanbul-lib-coverage@2.0.6': {} 1606 | 1607 | '@types/json5@0.0.29': {} 1608 | 1609 | '@typescript-eslint/eslint-plugin@8.6.0(@typescript-eslint/parser@8.6.0(eslint@9.11.0(jiti@1.21.6))(typescript@5.6.2))(eslint@9.11.0(jiti@1.21.6))(typescript@5.6.2)': 1610 | dependencies: 1611 | '@eslint-community/regexpp': 4.11.1 1612 | '@typescript-eslint/parser': 8.6.0(eslint@9.11.0(jiti@1.21.6))(typescript@5.6.2) 1613 | '@typescript-eslint/scope-manager': 8.6.0 1614 | '@typescript-eslint/type-utils': 8.6.0(eslint@9.11.0(jiti@1.21.6))(typescript@5.6.2) 1615 | '@typescript-eslint/utils': 8.6.0(eslint@9.11.0(jiti@1.21.6))(typescript@5.6.2) 1616 | '@typescript-eslint/visitor-keys': 8.6.0 1617 | eslint: 9.11.0(jiti@1.21.6) 1618 | graphemer: 1.4.0 1619 | ignore: 5.3.2 1620 | natural-compare: 1.4.0 1621 | ts-api-utils: 1.3.0(typescript@5.6.2) 1622 | optionalDependencies: 1623 | typescript: 5.6.2 1624 | transitivePeerDependencies: 1625 | - supports-color 1626 | 1627 | '@typescript-eslint/parser@8.6.0(eslint@9.11.0(jiti@1.21.6))(typescript@5.6.2)': 1628 | dependencies: 1629 | '@typescript-eslint/scope-manager': 8.6.0 1630 | '@typescript-eslint/types': 8.6.0 1631 | '@typescript-eslint/typescript-estree': 8.6.0(typescript@5.6.2) 1632 | '@typescript-eslint/visitor-keys': 8.6.0 1633 | debug: 4.3.7 1634 | eslint: 9.11.0(jiti@1.21.6) 1635 | optionalDependencies: 1636 | typescript: 5.6.2 1637 | transitivePeerDependencies: 1638 | - supports-color 1639 | 1640 | '@typescript-eslint/scope-manager@8.6.0': 1641 | dependencies: 1642 | '@typescript-eslint/types': 8.6.0 1643 | '@typescript-eslint/visitor-keys': 8.6.0 1644 | 1645 | '@typescript-eslint/type-utils@8.6.0(eslint@9.11.0(jiti@1.21.6))(typescript@5.6.2)': 1646 | dependencies: 1647 | '@typescript-eslint/typescript-estree': 8.6.0(typescript@5.6.2) 1648 | '@typescript-eslint/utils': 8.6.0(eslint@9.11.0(jiti@1.21.6))(typescript@5.6.2) 1649 | debug: 4.3.7 1650 | ts-api-utils: 1.3.0(typescript@5.6.2) 1651 | optionalDependencies: 1652 | typescript: 5.6.2 1653 | transitivePeerDependencies: 1654 | - eslint 1655 | - supports-color 1656 | 1657 | '@typescript-eslint/types@8.6.0': {} 1658 | 1659 | '@typescript-eslint/typescript-estree@8.6.0(typescript@5.6.2)': 1660 | dependencies: 1661 | '@typescript-eslint/types': 8.6.0 1662 | '@typescript-eslint/visitor-keys': 8.6.0 1663 | debug: 4.3.7 1664 | fast-glob: 3.3.2 1665 | is-glob: 4.0.3 1666 | minimatch: 9.0.5 1667 | semver: 7.6.3 1668 | ts-api-utils: 1.3.0(typescript@5.6.2) 1669 | optionalDependencies: 1670 | typescript: 5.6.2 1671 | transitivePeerDependencies: 1672 | - supports-color 1673 | 1674 | '@typescript-eslint/utils@8.6.0(eslint@9.11.0(jiti@1.21.6))(typescript@5.6.2)': 1675 | dependencies: 1676 | '@eslint-community/eslint-utils': 4.4.0(eslint@9.11.0(jiti@1.21.6)) 1677 | '@typescript-eslint/scope-manager': 8.6.0 1678 | '@typescript-eslint/types': 8.6.0 1679 | '@typescript-eslint/typescript-estree': 8.6.0(typescript@5.6.2) 1680 | eslint: 9.11.0(jiti@1.21.6) 1681 | transitivePeerDependencies: 1682 | - supports-color 1683 | - typescript 1684 | 1685 | '@typescript-eslint/visitor-keys@8.6.0': 1686 | dependencies: 1687 | '@typescript-eslint/types': 8.6.0 1688 | eslint-visitor-keys: 3.4.3 1689 | 1690 | acorn-jsx@5.3.2(acorn@8.12.1): 1691 | dependencies: 1692 | acorn: 8.12.1 1693 | 1694 | acorn@8.12.1: {} 1695 | 1696 | ajv@6.12.6: 1697 | dependencies: 1698 | fast-deep-equal: 3.1.3 1699 | fast-json-stable-stringify: 2.1.0 1700 | json-schema-traverse: 0.4.1 1701 | uri-js: 4.4.1 1702 | 1703 | ansi-regex@5.0.1: {} 1704 | 1705 | ansi-regex@6.1.0: {} 1706 | 1707 | ansi-styles@4.3.0: 1708 | dependencies: 1709 | color-convert: 2.0.1 1710 | 1711 | ansi-styles@6.2.1: {} 1712 | 1713 | anymatch@3.1.3: 1714 | dependencies: 1715 | normalize-path: 3.0.0 1716 | picomatch: 2.3.1 1717 | 1718 | argparse@2.0.1: {} 1719 | 1720 | array-buffer-byte-length@1.0.1: 1721 | dependencies: 1722 | call-bind: 1.0.7 1723 | is-array-buffer: 3.0.4 1724 | 1725 | array-includes@3.1.8: 1726 | dependencies: 1727 | call-bind: 1.0.7 1728 | define-properties: 1.2.1 1729 | es-abstract: 1.23.3 1730 | es-object-atoms: 1.0.0 1731 | get-intrinsic: 1.2.4 1732 | is-string: 1.0.7 1733 | 1734 | array.prototype.findlastindex@1.2.5: 1735 | dependencies: 1736 | call-bind: 1.0.7 1737 | define-properties: 1.2.1 1738 | es-abstract: 1.23.3 1739 | es-errors: 1.3.0 1740 | es-object-atoms: 1.0.0 1741 | es-shim-unscopables: 1.0.2 1742 | 1743 | array.prototype.flat@1.3.2: 1744 | dependencies: 1745 | call-bind: 1.0.7 1746 | define-properties: 1.2.1 1747 | es-abstract: 1.23.3 1748 | es-shim-unscopables: 1.0.2 1749 | 1750 | array.prototype.flatmap@1.3.2: 1751 | dependencies: 1752 | call-bind: 1.0.7 1753 | define-properties: 1.2.1 1754 | es-abstract: 1.23.3 1755 | es-shim-unscopables: 1.0.2 1756 | 1757 | arraybuffer.prototype.slice@1.0.3: 1758 | dependencies: 1759 | array-buffer-byte-length: 1.0.1 1760 | call-bind: 1.0.7 1761 | define-properties: 1.2.1 1762 | es-abstract: 1.23.3 1763 | es-errors: 1.3.0 1764 | get-intrinsic: 1.2.4 1765 | is-array-buffer: 3.0.4 1766 | is-shared-array-buffer: 1.0.3 1767 | 1768 | available-typed-arrays@1.0.7: 1769 | dependencies: 1770 | possible-typed-array-names: 1.0.0 1771 | 1772 | balanced-match@1.0.2: {} 1773 | 1774 | binary-extensions@2.3.0: {} 1775 | 1776 | brace-expansion@1.1.11: 1777 | dependencies: 1778 | balanced-match: 1.0.2 1779 | concat-map: 0.0.1 1780 | 1781 | brace-expansion@2.0.1: 1782 | dependencies: 1783 | balanced-match: 1.0.2 1784 | 1785 | braces@3.0.3: 1786 | dependencies: 1787 | fill-range: 7.1.1 1788 | 1789 | bytes-iec@3.1.1: {} 1790 | 1791 | c8@10.1.2: 1792 | dependencies: 1793 | '@bcoe/v8-coverage': 0.2.3 1794 | '@istanbuljs/schema': 0.1.3 1795 | find-up: 5.0.0 1796 | foreground-child: 3.3.0 1797 | istanbul-lib-coverage: 3.2.2 1798 | istanbul-lib-report: 3.0.1 1799 | istanbul-reports: 3.1.7 1800 | test-exclude: 7.0.1 1801 | v8-to-istanbul: 9.3.0 1802 | yargs: 17.7.2 1803 | yargs-parser: 21.1.1 1804 | 1805 | call-bind@1.0.7: 1806 | dependencies: 1807 | es-define-property: 1.0.0 1808 | es-errors: 1.3.0 1809 | function-bind: 1.1.2 1810 | get-intrinsic: 1.2.4 1811 | set-function-length: 1.2.2 1812 | 1813 | callsites@3.1.0: {} 1814 | 1815 | chalk@4.1.2: 1816 | dependencies: 1817 | ansi-styles: 4.3.0 1818 | supports-color: 7.2.0 1819 | 1820 | chokidar@3.6.0: 1821 | dependencies: 1822 | anymatch: 3.1.3 1823 | braces: 3.0.3 1824 | glob-parent: 5.1.2 1825 | is-binary-path: 2.1.0 1826 | is-glob: 4.0.3 1827 | normalize-path: 3.0.0 1828 | readdirp: 3.6.0 1829 | optionalDependencies: 1830 | fsevents: 2.3.3 1831 | 1832 | clean-publish@5.0.0: 1833 | dependencies: 1834 | cross-spawn: 7.0.3 1835 | fast-glob: 3.3.2 1836 | lilconfig: 3.1.2 1837 | micromatch: 4.0.8 1838 | 1839 | cliui@8.0.1: 1840 | dependencies: 1841 | string-width: 4.2.3 1842 | strip-ansi: 6.0.1 1843 | wrap-ansi: 7.0.0 1844 | 1845 | color-convert@2.0.1: 1846 | dependencies: 1847 | color-name: 1.1.4 1848 | 1849 | color-name@1.1.4: {} 1850 | 1851 | concat-map@0.0.1: {} 1852 | 1853 | convert-source-map@2.0.0: {} 1854 | 1855 | cross-spawn@7.0.3: 1856 | dependencies: 1857 | path-key: 3.1.1 1858 | shebang-command: 2.0.0 1859 | which: 2.0.2 1860 | 1861 | cssesc@3.0.0: {} 1862 | 1863 | data-view-buffer@1.0.1: 1864 | dependencies: 1865 | call-bind: 1.0.7 1866 | es-errors: 1.3.0 1867 | is-data-view: 1.0.1 1868 | 1869 | data-view-byte-length@1.0.1: 1870 | dependencies: 1871 | call-bind: 1.0.7 1872 | es-errors: 1.3.0 1873 | is-data-view: 1.0.1 1874 | 1875 | data-view-byte-offset@1.0.0: 1876 | dependencies: 1877 | call-bind: 1.0.7 1878 | es-errors: 1.3.0 1879 | is-data-view: 1.0.1 1880 | 1881 | debug@3.2.7: 1882 | dependencies: 1883 | ms: 2.1.3 1884 | 1885 | debug@4.3.7: 1886 | dependencies: 1887 | ms: 2.1.3 1888 | 1889 | deep-is@0.1.4: {} 1890 | 1891 | define-data-property@1.1.4: 1892 | dependencies: 1893 | es-define-property: 1.0.0 1894 | es-errors: 1.3.0 1895 | gopd: 1.0.1 1896 | 1897 | define-properties@1.2.1: 1898 | dependencies: 1899 | define-data-property: 1.1.4 1900 | has-property-descriptors: 1.0.2 1901 | object-keys: 1.1.1 1902 | 1903 | doctrine@2.1.0: 1904 | dependencies: 1905 | esutils: 2.0.3 1906 | 1907 | eastasianwidth@0.2.0: {} 1908 | 1909 | emoji-regex@8.0.0: {} 1910 | 1911 | emoji-regex@9.2.2: {} 1912 | 1913 | enhanced-resolve@5.17.1: 1914 | dependencies: 1915 | graceful-fs: 4.2.11 1916 | tapable: 2.2.1 1917 | 1918 | es-abstract@1.23.3: 1919 | dependencies: 1920 | array-buffer-byte-length: 1.0.1 1921 | arraybuffer.prototype.slice: 1.0.3 1922 | available-typed-arrays: 1.0.7 1923 | call-bind: 1.0.7 1924 | data-view-buffer: 1.0.1 1925 | data-view-byte-length: 1.0.1 1926 | data-view-byte-offset: 1.0.0 1927 | es-define-property: 1.0.0 1928 | es-errors: 1.3.0 1929 | es-object-atoms: 1.0.0 1930 | es-set-tostringtag: 2.0.3 1931 | es-to-primitive: 1.2.1 1932 | function.prototype.name: 1.1.6 1933 | get-intrinsic: 1.2.4 1934 | get-symbol-description: 1.0.2 1935 | globalthis: 1.0.4 1936 | gopd: 1.0.1 1937 | has-property-descriptors: 1.0.2 1938 | has-proto: 1.0.3 1939 | has-symbols: 1.0.3 1940 | hasown: 2.0.2 1941 | internal-slot: 1.0.7 1942 | is-array-buffer: 3.0.4 1943 | is-callable: 1.2.7 1944 | is-data-view: 1.0.1 1945 | is-negative-zero: 2.0.3 1946 | is-regex: 1.1.4 1947 | is-shared-array-buffer: 1.0.3 1948 | is-string: 1.0.7 1949 | is-typed-array: 1.1.13 1950 | is-weakref: 1.0.2 1951 | object-inspect: 1.13.2 1952 | object-keys: 1.1.1 1953 | object.assign: 4.1.5 1954 | regexp.prototype.flags: 1.5.2 1955 | safe-array-concat: 1.1.2 1956 | safe-regex-test: 1.0.3 1957 | string.prototype.trim: 1.2.9 1958 | string.prototype.trimend: 1.0.8 1959 | string.prototype.trimstart: 1.0.8 1960 | typed-array-buffer: 1.0.2 1961 | typed-array-byte-length: 1.0.1 1962 | typed-array-byte-offset: 1.0.2 1963 | typed-array-length: 1.0.6 1964 | unbox-primitive: 1.0.2 1965 | which-typed-array: 1.1.15 1966 | 1967 | es-define-property@1.0.0: 1968 | dependencies: 1969 | get-intrinsic: 1.2.4 1970 | 1971 | es-errors@1.3.0: {} 1972 | 1973 | es-object-atoms@1.0.0: 1974 | dependencies: 1975 | es-errors: 1.3.0 1976 | 1977 | es-set-tostringtag@2.0.3: 1978 | dependencies: 1979 | get-intrinsic: 1.2.4 1980 | has-tostringtag: 1.0.2 1981 | hasown: 2.0.2 1982 | 1983 | es-shim-unscopables@1.0.2: 1984 | dependencies: 1985 | hasown: 2.0.2 1986 | 1987 | es-to-primitive@1.2.1: 1988 | dependencies: 1989 | is-callable: 1.2.7 1990 | is-date-object: 1.0.5 1991 | is-symbol: 1.0.4 1992 | 1993 | esbuild@0.23.1: 1994 | optionalDependencies: 1995 | '@esbuild/aix-ppc64': 0.23.1 1996 | '@esbuild/android-arm': 0.23.1 1997 | '@esbuild/android-arm64': 0.23.1 1998 | '@esbuild/android-x64': 0.23.1 1999 | '@esbuild/darwin-arm64': 0.23.1 2000 | '@esbuild/darwin-x64': 0.23.1 2001 | '@esbuild/freebsd-arm64': 0.23.1 2002 | '@esbuild/freebsd-x64': 0.23.1 2003 | '@esbuild/linux-arm': 0.23.1 2004 | '@esbuild/linux-arm64': 0.23.1 2005 | '@esbuild/linux-ia32': 0.23.1 2006 | '@esbuild/linux-loong64': 0.23.1 2007 | '@esbuild/linux-mips64el': 0.23.1 2008 | '@esbuild/linux-ppc64': 0.23.1 2009 | '@esbuild/linux-riscv64': 0.23.1 2010 | '@esbuild/linux-s390x': 0.23.1 2011 | '@esbuild/linux-x64': 0.23.1 2012 | '@esbuild/netbsd-x64': 0.23.1 2013 | '@esbuild/openbsd-arm64': 0.23.1 2014 | '@esbuild/openbsd-x64': 0.23.1 2015 | '@esbuild/sunos-x64': 0.23.1 2016 | '@esbuild/win32-arm64': 0.23.1 2017 | '@esbuild/win32-ia32': 0.23.1 2018 | '@esbuild/win32-x64': 0.23.1 2019 | 2020 | escalade@3.2.0: {} 2021 | 2022 | escape-string-regexp@4.0.0: {} 2023 | 2024 | eslint-compat-utils@0.5.1(eslint@9.11.0(jiti@1.21.6)): 2025 | dependencies: 2026 | eslint: 9.11.0(jiti@1.21.6) 2027 | semver: 7.6.3 2028 | 2029 | eslint-config-standard@17.1.0(eslint-plugin-import@2.30.0(@typescript-eslint/parser@8.6.0(eslint@9.11.0(jiti@1.21.6))(typescript@5.6.2))(eslint@9.11.0(jiti@1.21.6)))(eslint-plugin-n@17.10.3(eslint@9.11.0(jiti@1.21.6)))(eslint-plugin-promise@7.1.0(eslint@9.11.0(jiti@1.21.6)))(eslint@9.11.0(jiti@1.21.6)): 2030 | dependencies: 2031 | eslint: 9.11.0(jiti@1.21.6) 2032 | eslint-plugin-import: 2.30.0(@typescript-eslint/parser@8.6.0(eslint@9.11.0(jiti@1.21.6))(typescript@5.6.2))(eslint@9.11.0(jiti@1.21.6)) 2033 | eslint-plugin-n: 17.10.3(eslint@9.11.0(jiti@1.21.6)) 2034 | eslint-plugin-promise: 7.1.0(eslint@9.11.0(jiti@1.21.6)) 2035 | 2036 | eslint-import-resolver-node@0.3.9: 2037 | dependencies: 2038 | debug: 3.2.7 2039 | is-core-module: 2.15.1 2040 | resolve: 1.22.8 2041 | transitivePeerDependencies: 2042 | - supports-color 2043 | 2044 | eslint-module-utils@2.11.0(@typescript-eslint/parser@8.6.0(eslint@9.11.0(jiti@1.21.6))(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint@9.11.0(jiti@1.21.6)): 2045 | dependencies: 2046 | debug: 3.2.7 2047 | optionalDependencies: 2048 | '@typescript-eslint/parser': 8.6.0(eslint@9.11.0(jiti@1.21.6))(typescript@5.6.2) 2049 | eslint: 9.11.0(jiti@1.21.6) 2050 | eslint-import-resolver-node: 0.3.9 2051 | transitivePeerDependencies: 2052 | - supports-color 2053 | 2054 | eslint-plugin-es-x@7.8.0(eslint@9.11.0(jiti@1.21.6)): 2055 | dependencies: 2056 | '@eslint-community/eslint-utils': 4.4.0(eslint@9.11.0(jiti@1.21.6)) 2057 | '@eslint-community/regexpp': 4.11.1 2058 | eslint: 9.11.0(jiti@1.21.6) 2059 | eslint-compat-utils: 0.5.1(eslint@9.11.0(jiti@1.21.6)) 2060 | 2061 | eslint-plugin-import@2.30.0(@typescript-eslint/parser@8.6.0(eslint@9.11.0(jiti@1.21.6))(typescript@5.6.2))(eslint@9.11.0(jiti@1.21.6)): 2062 | dependencies: 2063 | '@rtsao/scc': 1.1.0 2064 | array-includes: 3.1.8 2065 | array.prototype.findlastindex: 1.2.5 2066 | array.prototype.flat: 1.3.2 2067 | array.prototype.flatmap: 1.3.2 2068 | debug: 3.2.7 2069 | doctrine: 2.1.0 2070 | eslint: 9.11.0(jiti@1.21.6) 2071 | eslint-import-resolver-node: 0.3.9 2072 | eslint-module-utils: 2.11.0(@typescript-eslint/parser@8.6.0(eslint@9.11.0(jiti@1.21.6))(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint@9.11.0(jiti@1.21.6)) 2073 | hasown: 2.0.2 2074 | is-core-module: 2.15.1 2075 | is-glob: 4.0.3 2076 | minimatch: 3.1.2 2077 | object.fromentries: 2.0.8 2078 | object.groupby: 1.0.3 2079 | object.values: 1.2.0 2080 | semver: 6.3.1 2081 | tsconfig-paths: 3.15.0 2082 | optionalDependencies: 2083 | '@typescript-eslint/parser': 8.6.0(eslint@9.11.0(jiti@1.21.6))(typescript@5.6.2) 2084 | transitivePeerDependencies: 2085 | - eslint-import-resolver-typescript 2086 | - eslint-import-resolver-webpack 2087 | - supports-color 2088 | 2089 | eslint-plugin-n@17.10.3(eslint@9.11.0(jiti@1.21.6)): 2090 | dependencies: 2091 | '@eslint-community/eslint-utils': 4.4.0(eslint@9.11.0(jiti@1.21.6)) 2092 | enhanced-resolve: 5.17.1 2093 | eslint: 9.11.0(jiti@1.21.6) 2094 | eslint-plugin-es-x: 7.8.0(eslint@9.11.0(jiti@1.21.6)) 2095 | get-tsconfig: 4.8.1 2096 | globals: 15.9.0 2097 | ignore: 5.3.2 2098 | minimatch: 9.0.5 2099 | semver: 7.6.3 2100 | 2101 | eslint-plugin-perfectionist@3.6.0(eslint@9.11.0(jiti@1.21.6))(typescript@5.6.2): 2102 | dependencies: 2103 | '@typescript-eslint/types': 8.6.0 2104 | '@typescript-eslint/utils': 8.6.0(eslint@9.11.0(jiti@1.21.6))(typescript@5.6.2) 2105 | eslint: 9.11.0(jiti@1.21.6) 2106 | minimatch: 9.0.5 2107 | natural-compare-lite: 1.4.0 2108 | transitivePeerDependencies: 2109 | - supports-color 2110 | - typescript 2111 | 2112 | eslint-plugin-prefer-let@4.0.0: 2113 | dependencies: 2114 | requireindex: 1.2.0 2115 | 2116 | eslint-plugin-promise@7.1.0(eslint@9.11.0(jiti@1.21.6)): 2117 | dependencies: 2118 | eslint: 9.11.0(jiti@1.21.6) 2119 | 2120 | eslint-scope@8.0.2: 2121 | dependencies: 2122 | esrecurse: 4.3.0 2123 | estraverse: 5.3.0 2124 | 2125 | eslint-visitor-keys@3.4.3: {} 2126 | 2127 | eslint-visitor-keys@4.0.0: {} 2128 | 2129 | eslint@9.11.0(jiti@1.21.6): 2130 | dependencies: 2131 | '@eslint-community/eslint-utils': 4.4.0(eslint@9.11.0(jiti@1.21.6)) 2132 | '@eslint-community/regexpp': 4.11.1 2133 | '@eslint/config-array': 0.18.0 2134 | '@eslint/eslintrc': 3.1.0 2135 | '@eslint/js': 9.11.0 2136 | '@eslint/plugin-kit': 0.2.0 2137 | '@humanwhocodes/module-importer': 1.0.1 2138 | '@humanwhocodes/retry': 0.3.0 2139 | '@nodelib/fs.walk': 1.2.8 2140 | ajv: 6.12.6 2141 | chalk: 4.1.2 2142 | cross-spawn: 7.0.3 2143 | debug: 4.3.7 2144 | escape-string-regexp: 4.0.0 2145 | eslint-scope: 8.0.2 2146 | eslint-visitor-keys: 4.0.0 2147 | espree: 10.1.0 2148 | esquery: 1.6.0 2149 | esutils: 2.0.3 2150 | fast-deep-equal: 3.1.3 2151 | file-entry-cache: 8.0.0 2152 | find-up: 5.0.0 2153 | glob-parent: 6.0.2 2154 | ignore: 5.3.2 2155 | imurmurhash: 0.1.4 2156 | is-glob: 4.0.3 2157 | is-path-inside: 3.0.3 2158 | json-stable-stringify-without-jsonify: 1.0.1 2159 | lodash.merge: 4.6.2 2160 | minimatch: 3.1.2 2161 | natural-compare: 1.4.0 2162 | optionator: 0.9.4 2163 | strip-ansi: 6.0.1 2164 | text-table: 0.2.0 2165 | optionalDependencies: 2166 | jiti: 1.21.6 2167 | transitivePeerDependencies: 2168 | - supports-color 2169 | 2170 | espree@10.1.0: 2171 | dependencies: 2172 | acorn: 8.12.1 2173 | acorn-jsx: 5.3.2(acorn@8.12.1) 2174 | eslint-visitor-keys: 4.0.0 2175 | 2176 | esquery@1.6.0: 2177 | dependencies: 2178 | estraverse: 5.3.0 2179 | 2180 | esrecurse@4.3.0: 2181 | dependencies: 2182 | estraverse: 5.3.0 2183 | 2184 | estraverse@5.3.0: {} 2185 | 2186 | esutils@2.0.3: {} 2187 | 2188 | fast-deep-equal@3.1.3: {} 2189 | 2190 | fast-glob@3.3.2: 2191 | dependencies: 2192 | '@nodelib/fs.stat': 2.0.5 2193 | '@nodelib/fs.walk': 1.2.8 2194 | glob-parent: 5.1.2 2195 | merge2: 1.4.1 2196 | micromatch: 4.0.8 2197 | 2198 | fast-json-stable-stringify@2.1.0: {} 2199 | 2200 | fast-levenshtein@2.0.6: {} 2201 | 2202 | fastq@1.17.1: 2203 | dependencies: 2204 | reusify: 1.0.4 2205 | 2206 | fdir@6.3.0(picomatch@4.0.2): 2207 | optionalDependencies: 2208 | picomatch: 4.0.2 2209 | 2210 | file-entry-cache@8.0.0: 2211 | dependencies: 2212 | flat-cache: 4.0.1 2213 | 2214 | fill-range@7.1.1: 2215 | dependencies: 2216 | to-regex-range: 5.0.1 2217 | 2218 | find-up@5.0.0: 2219 | dependencies: 2220 | locate-path: 6.0.0 2221 | path-exists: 4.0.0 2222 | 2223 | flat-cache@4.0.1: 2224 | dependencies: 2225 | flatted: 3.3.1 2226 | keyv: 4.5.4 2227 | 2228 | flatted@3.3.1: {} 2229 | 2230 | for-each@0.3.3: 2231 | dependencies: 2232 | is-callable: 1.2.7 2233 | 2234 | foreground-child@3.3.0: 2235 | dependencies: 2236 | cross-spawn: 7.0.3 2237 | signal-exit: 4.1.0 2238 | 2239 | fsevents@2.3.3: 2240 | optional: true 2241 | 2242 | function-bind@1.1.2: {} 2243 | 2244 | function.prototype.name@1.1.6: 2245 | dependencies: 2246 | call-bind: 1.0.7 2247 | define-properties: 1.2.1 2248 | es-abstract: 1.23.3 2249 | functions-have-names: 1.2.3 2250 | 2251 | functions-have-names@1.2.3: {} 2252 | 2253 | get-caller-file@2.0.5: {} 2254 | 2255 | get-intrinsic@1.2.4: 2256 | dependencies: 2257 | es-errors: 1.3.0 2258 | function-bind: 1.1.2 2259 | has-proto: 1.0.3 2260 | has-symbols: 1.0.3 2261 | hasown: 2.0.2 2262 | 2263 | get-symbol-description@1.0.2: 2264 | dependencies: 2265 | call-bind: 1.0.7 2266 | es-errors: 1.3.0 2267 | get-intrinsic: 1.2.4 2268 | 2269 | get-tsconfig@4.8.1: 2270 | dependencies: 2271 | resolve-pkg-maps: 1.0.0 2272 | 2273 | glob-parent@5.1.2: 2274 | dependencies: 2275 | is-glob: 4.0.3 2276 | 2277 | glob-parent@6.0.2: 2278 | dependencies: 2279 | is-glob: 4.0.3 2280 | 2281 | glob@10.4.5: 2282 | dependencies: 2283 | foreground-child: 3.3.0 2284 | jackspeak: 3.4.3 2285 | minimatch: 9.0.5 2286 | minipass: 7.1.2 2287 | package-json-from-dist: 1.0.0 2288 | path-scurry: 1.11.1 2289 | 2290 | globals@14.0.0: {} 2291 | 2292 | globals@15.9.0: {} 2293 | 2294 | globalthis@1.0.4: 2295 | dependencies: 2296 | define-properties: 1.2.1 2297 | gopd: 1.0.1 2298 | 2299 | gopd@1.0.1: 2300 | dependencies: 2301 | get-intrinsic: 1.2.4 2302 | 2303 | graceful-fs@4.2.11: {} 2304 | 2305 | graphemer@1.4.0: {} 2306 | 2307 | has-bigints@1.0.2: {} 2308 | 2309 | has-flag@4.0.0: {} 2310 | 2311 | has-property-descriptors@1.0.2: 2312 | dependencies: 2313 | es-define-property: 1.0.0 2314 | 2315 | has-proto@1.0.3: {} 2316 | 2317 | has-symbols@1.0.3: {} 2318 | 2319 | has-tostringtag@1.0.2: 2320 | dependencies: 2321 | has-symbols: 1.0.3 2322 | 2323 | hasown@2.0.2: 2324 | dependencies: 2325 | function-bind: 1.1.2 2326 | 2327 | html-escaper@2.0.2: {} 2328 | 2329 | ignore@5.3.2: {} 2330 | 2331 | import-fresh@3.3.0: 2332 | dependencies: 2333 | parent-module: 1.0.1 2334 | resolve-from: 4.0.0 2335 | 2336 | imurmurhash@0.1.4: {} 2337 | 2338 | internal-slot@1.0.7: 2339 | dependencies: 2340 | es-errors: 1.3.0 2341 | hasown: 2.0.2 2342 | side-channel: 1.0.6 2343 | 2344 | is-array-buffer@3.0.4: 2345 | dependencies: 2346 | call-bind: 1.0.7 2347 | get-intrinsic: 1.2.4 2348 | 2349 | is-bigint@1.0.4: 2350 | dependencies: 2351 | has-bigints: 1.0.2 2352 | 2353 | is-binary-path@2.1.0: 2354 | dependencies: 2355 | binary-extensions: 2.3.0 2356 | 2357 | is-boolean-object@1.1.2: 2358 | dependencies: 2359 | call-bind: 1.0.7 2360 | has-tostringtag: 1.0.2 2361 | 2362 | is-callable@1.2.7: {} 2363 | 2364 | is-core-module@2.15.1: 2365 | dependencies: 2366 | hasown: 2.0.2 2367 | 2368 | is-data-view@1.0.1: 2369 | dependencies: 2370 | is-typed-array: 1.1.13 2371 | 2372 | is-date-object@1.0.5: 2373 | dependencies: 2374 | has-tostringtag: 1.0.2 2375 | 2376 | is-extglob@2.1.1: {} 2377 | 2378 | is-fullwidth-code-point@3.0.0: {} 2379 | 2380 | is-glob@4.0.3: 2381 | dependencies: 2382 | is-extglob: 2.1.1 2383 | 2384 | is-negative-zero@2.0.3: {} 2385 | 2386 | is-number-object@1.0.7: 2387 | dependencies: 2388 | has-tostringtag: 1.0.2 2389 | 2390 | is-number@7.0.0: {} 2391 | 2392 | is-path-inside@3.0.3: {} 2393 | 2394 | is-regex@1.1.4: 2395 | dependencies: 2396 | call-bind: 1.0.7 2397 | has-tostringtag: 1.0.2 2398 | 2399 | is-shared-array-buffer@1.0.3: 2400 | dependencies: 2401 | call-bind: 1.0.7 2402 | 2403 | is-string@1.0.7: 2404 | dependencies: 2405 | has-tostringtag: 1.0.2 2406 | 2407 | is-symbol@1.0.4: 2408 | dependencies: 2409 | has-symbols: 1.0.3 2410 | 2411 | is-typed-array@1.1.13: 2412 | dependencies: 2413 | which-typed-array: 1.1.15 2414 | 2415 | is-weakref@1.0.2: 2416 | dependencies: 2417 | call-bind: 1.0.7 2418 | 2419 | isarray@2.0.5: {} 2420 | 2421 | isexe@2.0.0: {} 2422 | 2423 | istanbul-lib-coverage@3.2.2: {} 2424 | 2425 | istanbul-lib-report@3.0.1: 2426 | dependencies: 2427 | istanbul-lib-coverage: 3.2.2 2428 | make-dir: 4.0.0 2429 | supports-color: 7.2.0 2430 | 2431 | istanbul-reports@3.1.7: 2432 | dependencies: 2433 | html-escaper: 2.0.2 2434 | istanbul-lib-report: 3.0.1 2435 | 2436 | jackspeak@3.4.3: 2437 | dependencies: 2438 | '@isaacs/cliui': 8.0.2 2439 | optionalDependencies: 2440 | '@pkgjs/parseargs': 0.11.0 2441 | 2442 | jiti@1.21.6: {} 2443 | 2444 | js-yaml@4.1.0: 2445 | dependencies: 2446 | argparse: 2.0.1 2447 | 2448 | json-buffer@3.0.1: {} 2449 | 2450 | json-schema-traverse@0.4.1: {} 2451 | 2452 | json-stable-stringify-without-jsonify@1.0.1: {} 2453 | 2454 | json5@1.0.2: 2455 | dependencies: 2456 | minimist: 1.2.8 2457 | 2458 | keyv@4.5.4: 2459 | dependencies: 2460 | json-buffer: 3.0.1 2461 | 2462 | levn@0.4.1: 2463 | dependencies: 2464 | prelude-ls: 1.2.1 2465 | type-check: 0.4.0 2466 | 2467 | lilconfig@3.1.2: {} 2468 | 2469 | locate-path@6.0.0: 2470 | dependencies: 2471 | p-locate: 5.0.0 2472 | 2473 | lodash.merge@4.6.2: {} 2474 | 2475 | lru-cache@10.4.3: {} 2476 | 2477 | make-dir@4.0.0: 2478 | dependencies: 2479 | semver: 7.6.3 2480 | 2481 | merge2@1.4.1: {} 2482 | 2483 | micromatch@4.0.8: 2484 | dependencies: 2485 | braces: 3.0.3 2486 | picomatch: 2.3.1 2487 | 2488 | minimatch@3.1.2: 2489 | dependencies: 2490 | brace-expansion: 1.1.11 2491 | 2492 | minimatch@9.0.5: 2493 | dependencies: 2494 | brace-expansion: 2.0.1 2495 | 2496 | minimist@1.2.8: {} 2497 | 2498 | minipass@7.1.2: {} 2499 | 2500 | ms@2.1.3: {} 2501 | 2502 | nanoid@3.3.7: {} 2503 | 2504 | nanoid@5.0.7: {} 2505 | 2506 | nanospinner@1.1.0: 2507 | dependencies: 2508 | picocolors: 1.1.0 2509 | 2510 | natural-compare-lite@1.4.0: {} 2511 | 2512 | natural-compare@1.4.0: {} 2513 | 2514 | normalize-path@3.0.0: {} 2515 | 2516 | object-inspect@1.13.2: {} 2517 | 2518 | object-keys@1.1.1: {} 2519 | 2520 | object.assign@4.1.5: 2521 | dependencies: 2522 | call-bind: 1.0.7 2523 | define-properties: 1.2.1 2524 | has-symbols: 1.0.3 2525 | object-keys: 1.1.1 2526 | 2527 | object.fromentries@2.0.8: 2528 | dependencies: 2529 | call-bind: 1.0.7 2530 | define-properties: 1.2.1 2531 | es-abstract: 1.23.3 2532 | es-object-atoms: 1.0.0 2533 | 2534 | object.groupby@1.0.3: 2535 | dependencies: 2536 | call-bind: 1.0.7 2537 | define-properties: 1.2.1 2538 | es-abstract: 1.23.3 2539 | 2540 | object.values@1.2.0: 2541 | dependencies: 2542 | call-bind: 1.0.7 2543 | define-properties: 1.2.1 2544 | es-object-atoms: 1.0.0 2545 | 2546 | optionator@0.9.4: 2547 | dependencies: 2548 | deep-is: 0.1.4 2549 | fast-levenshtein: 2.0.6 2550 | levn: 0.4.1 2551 | prelude-ls: 1.2.1 2552 | type-check: 0.4.0 2553 | word-wrap: 1.2.5 2554 | 2555 | p-limit@3.1.0: 2556 | dependencies: 2557 | yocto-queue: 0.1.0 2558 | 2559 | p-locate@5.0.0: 2560 | dependencies: 2561 | p-limit: 3.1.0 2562 | 2563 | package-json-from-dist@1.0.0: {} 2564 | 2565 | parent-module@1.0.1: 2566 | dependencies: 2567 | callsites: 3.1.0 2568 | 2569 | path-exists@4.0.0: {} 2570 | 2571 | path-key@3.1.1: {} 2572 | 2573 | path-parse@1.0.7: {} 2574 | 2575 | path-scurry@1.11.1: 2576 | dependencies: 2577 | lru-cache: 10.4.3 2578 | minipass: 7.1.2 2579 | 2580 | picocolors@1.1.0: {} 2581 | 2582 | picomatch@2.3.1: {} 2583 | 2584 | picomatch@4.0.2: {} 2585 | 2586 | possible-typed-array-names@1.0.0: {} 2587 | 2588 | postcss-selector-parser@6.1.2: 2589 | dependencies: 2590 | cssesc: 3.0.0 2591 | util-deprecate: 1.0.2 2592 | 2593 | postcss@8.4.47: 2594 | dependencies: 2595 | nanoid: 3.3.7 2596 | picocolors: 1.1.0 2597 | source-map-js: 1.2.1 2598 | 2599 | prelude-ls@1.2.1: {} 2600 | 2601 | punycode@2.3.1: {} 2602 | 2603 | queue-microtask@1.2.3: {} 2604 | 2605 | readdirp@3.6.0: 2606 | dependencies: 2607 | picomatch: 2.3.1 2608 | 2609 | regexp.prototype.flags@1.5.2: 2610 | dependencies: 2611 | call-bind: 1.0.7 2612 | define-properties: 1.2.1 2613 | es-errors: 1.3.0 2614 | set-function-name: 2.0.2 2615 | 2616 | require-directory@2.1.1: {} 2617 | 2618 | requireindex@1.2.0: {} 2619 | 2620 | resolve-from@4.0.0: {} 2621 | 2622 | resolve-pkg-maps@1.0.0: {} 2623 | 2624 | resolve@1.22.8: 2625 | dependencies: 2626 | is-core-module: 2.15.1 2627 | path-parse: 1.0.7 2628 | supports-preserve-symlinks-flag: 1.0.0 2629 | 2630 | reusify@1.0.4: {} 2631 | 2632 | run-parallel@1.2.0: 2633 | dependencies: 2634 | queue-microtask: 1.2.3 2635 | 2636 | safe-array-concat@1.1.2: 2637 | dependencies: 2638 | call-bind: 1.0.7 2639 | get-intrinsic: 1.2.4 2640 | has-symbols: 1.0.3 2641 | isarray: 2.0.5 2642 | 2643 | safe-regex-test@1.0.3: 2644 | dependencies: 2645 | call-bind: 1.0.7 2646 | es-errors: 1.3.0 2647 | is-regex: 1.1.4 2648 | 2649 | semver@6.3.1: {} 2650 | 2651 | semver@7.6.3: {} 2652 | 2653 | set-function-length@1.2.2: 2654 | dependencies: 2655 | define-data-property: 1.1.4 2656 | es-errors: 1.3.0 2657 | function-bind: 1.1.2 2658 | get-intrinsic: 1.2.4 2659 | gopd: 1.0.1 2660 | has-property-descriptors: 1.0.2 2661 | 2662 | set-function-name@2.0.2: 2663 | dependencies: 2664 | define-data-property: 1.1.4 2665 | es-errors: 1.3.0 2666 | functions-have-names: 1.2.3 2667 | has-property-descriptors: 1.0.2 2668 | 2669 | shebang-command@2.0.0: 2670 | dependencies: 2671 | shebang-regex: 3.0.0 2672 | 2673 | shebang-regex@3.0.0: {} 2674 | 2675 | side-channel@1.0.6: 2676 | dependencies: 2677 | call-bind: 1.0.7 2678 | es-errors: 1.3.0 2679 | get-intrinsic: 1.2.4 2680 | object-inspect: 1.13.2 2681 | 2682 | signal-exit@4.1.0: {} 2683 | 2684 | size-limit@11.1.5: 2685 | dependencies: 2686 | bytes-iec: 3.1.1 2687 | chokidar: 3.6.0 2688 | jiti: 1.21.6 2689 | lilconfig: 3.1.2 2690 | nanospinner: 1.1.0 2691 | picocolors: 1.1.0 2692 | tinyglobby: 0.2.6 2693 | 2694 | source-map-js@1.2.1: {} 2695 | 2696 | string-width@4.2.3: 2697 | dependencies: 2698 | emoji-regex: 8.0.0 2699 | is-fullwidth-code-point: 3.0.0 2700 | strip-ansi: 6.0.1 2701 | 2702 | string-width@5.1.2: 2703 | dependencies: 2704 | eastasianwidth: 0.2.0 2705 | emoji-regex: 9.2.2 2706 | strip-ansi: 7.1.0 2707 | 2708 | string.prototype.trim@1.2.9: 2709 | dependencies: 2710 | call-bind: 1.0.7 2711 | define-properties: 1.2.1 2712 | es-abstract: 1.23.3 2713 | es-object-atoms: 1.0.0 2714 | 2715 | string.prototype.trimend@1.0.8: 2716 | dependencies: 2717 | call-bind: 1.0.7 2718 | define-properties: 1.2.1 2719 | es-object-atoms: 1.0.0 2720 | 2721 | string.prototype.trimstart@1.0.8: 2722 | dependencies: 2723 | call-bind: 1.0.7 2724 | define-properties: 1.2.1 2725 | es-object-atoms: 1.0.0 2726 | 2727 | strip-ansi@6.0.1: 2728 | dependencies: 2729 | ansi-regex: 5.0.1 2730 | 2731 | strip-ansi@7.1.0: 2732 | dependencies: 2733 | ansi-regex: 6.1.0 2734 | 2735 | strip-bom@3.0.0: {} 2736 | 2737 | strip-json-comments@3.1.1: {} 2738 | 2739 | supports-color@7.2.0: 2740 | dependencies: 2741 | has-flag: 4.0.0 2742 | 2743 | supports-preserve-symlinks-flag@1.0.0: {} 2744 | 2745 | tapable@2.2.1: {} 2746 | 2747 | test-exclude@7.0.1: 2748 | dependencies: 2749 | '@istanbuljs/schema': 0.1.3 2750 | glob: 10.4.5 2751 | minimatch: 9.0.5 2752 | 2753 | text-table@0.2.0: {} 2754 | 2755 | tinyglobby@0.2.6: 2756 | dependencies: 2757 | fdir: 6.3.0(picomatch@4.0.2) 2758 | picomatch: 4.0.2 2759 | 2760 | to-regex-range@5.0.1: 2761 | dependencies: 2762 | is-number: 7.0.0 2763 | 2764 | ts-api-utils@1.3.0(typescript@5.6.2): 2765 | dependencies: 2766 | typescript: 5.6.2 2767 | 2768 | tsconfig-paths@3.15.0: 2769 | dependencies: 2770 | '@types/json5': 0.0.29 2771 | json5: 1.0.2 2772 | minimist: 1.2.8 2773 | strip-bom: 3.0.0 2774 | 2775 | type-check@0.4.0: 2776 | dependencies: 2777 | prelude-ls: 1.2.1 2778 | 2779 | typed-array-buffer@1.0.2: 2780 | dependencies: 2781 | call-bind: 1.0.7 2782 | es-errors: 1.3.0 2783 | is-typed-array: 1.1.13 2784 | 2785 | typed-array-byte-length@1.0.1: 2786 | dependencies: 2787 | call-bind: 1.0.7 2788 | for-each: 0.3.3 2789 | gopd: 1.0.1 2790 | has-proto: 1.0.3 2791 | is-typed-array: 1.1.13 2792 | 2793 | typed-array-byte-offset@1.0.2: 2794 | dependencies: 2795 | available-typed-arrays: 1.0.7 2796 | call-bind: 1.0.7 2797 | for-each: 0.3.3 2798 | gopd: 1.0.1 2799 | has-proto: 1.0.3 2800 | is-typed-array: 1.1.13 2801 | 2802 | typed-array-length@1.0.6: 2803 | dependencies: 2804 | call-bind: 1.0.7 2805 | for-each: 0.3.3 2806 | gopd: 1.0.1 2807 | has-proto: 1.0.3 2808 | is-typed-array: 1.1.13 2809 | possible-typed-array-names: 1.0.0 2810 | 2811 | typescript-eslint@8.6.0(eslint@9.11.0(jiti@1.21.6))(typescript@5.6.2): 2812 | dependencies: 2813 | '@typescript-eslint/eslint-plugin': 8.6.0(@typescript-eslint/parser@8.6.0(eslint@9.11.0(jiti@1.21.6))(typescript@5.6.2))(eslint@9.11.0(jiti@1.21.6))(typescript@5.6.2) 2814 | '@typescript-eslint/parser': 8.6.0(eslint@9.11.0(jiti@1.21.6))(typescript@5.6.2) 2815 | '@typescript-eslint/utils': 8.6.0(eslint@9.11.0(jiti@1.21.6))(typescript@5.6.2) 2816 | optionalDependencies: 2817 | typescript: 5.6.2 2818 | transitivePeerDependencies: 2819 | - eslint 2820 | - supports-color 2821 | 2822 | typescript@5.6.2: {} 2823 | 2824 | unbox-primitive@1.0.2: 2825 | dependencies: 2826 | call-bind: 1.0.7 2827 | has-bigints: 1.0.2 2828 | has-symbols: 1.0.3 2829 | which-boxed-primitive: 1.0.2 2830 | 2831 | uri-js@4.4.1: 2832 | dependencies: 2833 | punycode: 2.3.1 2834 | 2835 | util-deprecate@1.0.2: {} 2836 | 2837 | v8-to-istanbul@9.3.0: 2838 | dependencies: 2839 | '@jridgewell/trace-mapping': 0.3.25 2840 | '@types/istanbul-lib-coverage': 2.0.6 2841 | convert-source-map: 2.0.0 2842 | 2843 | which-boxed-primitive@1.0.2: 2844 | dependencies: 2845 | is-bigint: 1.0.4 2846 | is-boolean-object: 1.1.2 2847 | is-number-object: 1.0.7 2848 | is-string: 1.0.7 2849 | is-symbol: 1.0.4 2850 | 2851 | which-typed-array@1.1.15: 2852 | dependencies: 2853 | available-typed-arrays: 1.0.7 2854 | call-bind: 1.0.7 2855 | for-each: 0.3.3 2856 | gopd: 1.0.1 2857 | has-tostringtag: 1.0.2 2858 | 2859 | which@2.0.2: 2860 | dependencies: 2861 | isexe: 2.0.0 2862 | 2863 | word-wrap@1.2.5: {} 2864 | 2865 | wrap-ansi@7.0.0: 2866 | dependencies: 2867 | ansi-styles: 4.3.0 2868 | string-width: 4.2.3 2869 | strip-ansi: 6.0.1 2870 | 2871 | wrap-ansi@8.1.0: 2872 | dependencies: 2873 | ansi-styles: 6.2.1 2874 | string-width: 5.1.2 2875 | strip-ansi: 7.1.0 2876 | 2877 | y18n@5.0.8: {} 2878 | 2879 | yargs-parser@21.1.1: {} 2880 | 2881 | yargs@17.7.2: 2882 | dependencies: 2883 | cliui: 8.0.1 2884 | escalade: 3.2.0 2885 | get-caller-file: 2.0.5 2886 | require-directory: 2.1.1 2887 | string-width: 4.2.3 2888 | y18n: 5.0.8 2889 | yargs-parser: 21.1.1 2890 | 2891 | yocto-queue@0.1.0: {} 2892 | --------------------------------------------------------------------------------