├── .github ├── FUNDING.yml └── workflows │ ├── close-stale-issues.yml │ ├── publish.yml │ └── ci.yml ├── .husky └── pre-commit ├── .vscode ├── settings.json └── extensions.json ├── .yarnrc.yml ├── tsconfig.build.json ├── .yarn └── plugins │ └── plugin-remove-postinstall.cjs ├── vitest.config.ts ├── tsconfig.json ├── .gitignore ├── LICENSE ├── README.md ├── package.json ├── src ├── index.ts └── index.spec.ts ├── biome.json └── yarn.lock /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: wojtekmaj 2 | -------------------------------------------------------------------------------- /.husky/pre-commit: -------------------------------------------------------------------------------- 1 | yarn format --staged --no-errors-on-unmatched --write 2 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "editor.defaultFormatter": "biomejs.biome", 3 | "editor.formatOnSave": true, 4 | "search.exclude": { 5 | "**/.yarn": true 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": ["biomejs.biome"], 3 | "unwantedRecommendations": ["dbaeumer.jshint", "dbaeumer.vscode-eslint", "esbenp.prettier-vscode"] 4 | } 5 | -------------------------------------------------------------------------------- /.yarnrc.yml: -------------------------------------------------------------------------------- 1 | enableScripts: false 2 | 3 | logFilters: 4 | - code: YN0076 5 | level: discard 6 | 7 | nodeLinker: node-modules 8 | 9 | plugins: 10 | - path: .yarn/plugins/plugin-remove-postinstall.cjs 11 | -------------------------------------------------------------------------------- /tsconfig.build.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "noEmit": false, 5 | "outDir": "dist", 6 | "rootDir": "src" 7 | }, 8 | "include": ["src"], 9 | "exclude": ["src/**/*.spec.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /.yarn/plugins/plugin-remove-postinstall.cjs: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | name: 'plugin-remove-postinstall', 3 | factory: () => ({ 4 | hooks: { 5 | beforeWorkspacePacking(workspace, rawManifest) { 6 | delete rawManifest.scripts.postinstall; 7 | }, 8 | }, 9 | }), 10 | }; 11 | -------------------------------------------------------------------------------- /vitest.config.ts: -------------------------------------------------------------------------------- 1 | import { playwright } from '@vitest/browser-playwright'; 2 | import { defineConfig } from 'vitest/config'; 3 | 4 | import type { ViteUserConfig } from 'vitest/config'; 5 | 6 | const config: ViteUserConfig = defineConfig({ 7 | test: { 8 | browser: { 9 | enabled: true, 10 | headless: true, 11 | instances: [{ browser: 'chromium' }], 12 | provider: playwright(), 13 | }, 14 | watch: false, 15 | }, 16 | }); 17 | 18 | export default config; 19 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "declaration": true, 4 | "esModuleInterop": true, 5 | "isolatedDeclarations": true, 6 | "isolatedModules": true, 7 | "module": "nodenext", 8 | "moduleDetection": "force", 9 | "noEmit": true, 10 | "noUncheckedIndexedAccess": true, 11 | "outDir": "dist", 12 | "skipLibCheck": true, 13 | "strict": true, 14 | "target": "es2018", 15 | "verbatimModuleSyntax": true 16 | }, 17 | "exclude": ["dist"] 18 | } 19 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # OS 2 | .DS_Store 3 | 4 | # Cache 5 | .cache 6 | .playwright 7 | .tmp 8 | *.tsbuildinfo 9 | .eslintcache 10 | 11 | # Yarn 12 | .pnp.* 13 | **/.yarn/* 14 | !**/.yarn/patches 15 | !**/.yarn/plugins 16 | !**/.yarn/releases 17 | !**/.yarn/sdks 18 | !**/.yarn/versions 19 | 20 | # Project-generated directories and files 21 | __screenshots__ 22 | coverage 23 | dist 24 | node_modules 25 | playwright-report 26 | test-results 27 | package.tgz 28 | 29 | # Logs 30 | npm-debug.log 31 | yarn-error.log 32 | 33 | # .env files 34 | **/.env 35 | **/.env.* 36 | !**/.env.example 37 | -------------------------------------------------------------------------------- /.github/workflows/close-stale-issues.yml: -------------------------------------------------------------------------------- 1 | name: Close stale issues 2 | 3 | on: 4 | schedule: 5 | - cron: '0 0 * * 1' # Every Monday 6 | workflow_dispatch: 7 | 8 | jobs: 9 | close-issues: 10 | name: Close stale issues 11 | runs-on: ubuntu-24.04-arm 12 | 13 | steps: 14 | - name: Close stale issues 15 | uses: actions/stale@v8 16 | with: 17 | days-before-issue-stale: 90 18 | days-before-issue-close: 14 19 | stale-issue-label: 'stale' 20 | stale-issue-message: 'This issue is stale because it has been open 90 days with no activity. Remove stale label or comment or this issue will be closed in 14 days.' 21 | close-issue-message: 'This issue was closed because it has been stalled for 14 days with no activity.' 22 | exempt-issue-labels: 'fresh' 23 | remove-issue-stale-when-updated: true 24 | days-before-pr-stale: -1 25 | days-before-pr-close: -1 26 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020–2024 Wojciech Maj 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /.github/workflows/publish.yml: -------------------------------------------------------------------------------- 1 | name: Publish 2 | 3 | on: 4 | release: 5 | types: [published] 6 | 7 | env: 8 | HUSKY: 0 9 | 10 | permissions: 11 | id-token: write 12 | 13 | jobs: 14 | publish: 15 | name: Publish 16 | runs-on: ubuntu-24.04-arm 17 | 18 | steps: 19 | - name: Checkout 20 | uses: actions/checkout@v4 21 | 22 | - name: Cache Yarn cache 23 | uses: actions/cache@v5 24 | env: 25 | cache-name: yarn-cache 26 | with: 27 | path: ~/.yarn/berry/cache 28 | key: ${{ runner.os }}-${{ env.cache-name }}-${{ hashFiles('**/yarn.lock') }} 29 | restore-keys: | 30 | ${{ runner.os }}-${{ env.cache-name }} 31 | 32 | - name: Use Node.js 33 | uses: actions/setup-node@v6 34 | with: 35 | node-version: '24' 36 | registry-url: 'https://registry.npmjs.org' 37 | 38 | - name: Install Corepack 39 | run: npm install -g corepack 40 | 41 | - name: Install dependencies 42 | run: yarn --immutable 43 | 44 | - name: Publish with latest tag 45 | if: github.event.release.prerelease == false 46 | run: yarn npm publish --tag latest 47 | 48 | - name: Publish with next tag 49 | if: github.event.release.prerelease == true 50 | run: yarn npm publish --tag next 51 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | [![npm](https://img.shields.io/npm/v/@wojtekmaj/predict-input-value.svg)](https://www.npmjs.com/package/@wojtekmaj/predict-input-value) ![downloads](https://img.shields.io/npm/dt/@wojtekmaj/predict-input-value.svg) [![CI](https://github.com/wojtekmaj/predict-input-value/actions/workflows/ci.yml/badge.svg)](https://github.com/wojtekmaj/predict-input-value/actions) 2 | 3 | # Predict-Input-Value 4 | 5 | Predicts the input value during KeyDown or KeyPress events, before the input is actually changed. 6 | 7 | ## tl;dr 8 | 9 | - Install by executing `npm install @wojtekmaj/predict-input-value` or `yarn add @wojtekmaj/predict-input-value`. 10 | - Import by adding `import predictInputValue from '@wojtekmaj/predict-input-value'`. 11 | - Use it by writing `const nextValue = predictInputValue(event)`. 12 | 13 | ## Example 14 | 15 | Conditions: 16 | 17 | - Input: value `"hello"` 18 | - Selected text: `"ello"` 19 | - Key pressed: `i` 20 | 21 | ```ts 22 | function onKeyPress(event: React.KeyboardEvent): void { 23 | const nextValue = predictInputValue(event); // "hi" 24 | } 25 | ``` 26 | 27 | ## License 28 | 29 | The MIT License. 30 | 31 | ## Author 32 | 33 | 34 | 35 | 38 | 41 | 42 |
36 | Wojciech Maj 37 | 39 | Wojciech Maj 40 |
43 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@wojtekmaj/predict-input-value", 3 | "version": "2.0.0", 4 | "description": "Predicts the input value during KeyDown or KeyPress events, before the input is actually changed", 5 | "type": "module", 6 | "sideEffects": false, 7 | "main": "./dist/index.js", 8 | "source": "./src/index.ts", 9 | "types": "./dist/index.d.ts", 10 | "exports": { 11 | ".": "./dist/index.js", 12 | "./*": "./*" 13 | }, 14 | "scripts": { 15 | "build": "tsc --project tsconfig.build.json", 16 | "clean": "node -e \"fs.rmSync('./dist', { recursive: true, force: true })\"", 17 | "format": "biome format", 18 | "lint": "biome lint", 19 | "postinstall": "husky", 20 | "prepack": "yarn clean && yarn build", 21 | "test": "yarn lint && yarn tsc && yarn format && yarn unit", 22 | "tsc": "tsc", 23 | "unit": "vitest" 24 | }, 25 | "keywords": [ 26 | "input", 27 | "event" 28 | ], 29 | "author": { 30 | "name": "Wojciech Maj", 31 | "email": "kontakt@wojtekmaj.pl" 32 | }, 33 | "license": "MIT", 34 | "devDependencies": { 35 | "@biomejs/biome": "2.2.2", 36 | "@vitest/browser-playwright": "^4.0.1", 37 | "husky": "^9.0.0", 38 | "playwright": "^1.55.1", 39 | "typescript": "^5.9.2", 40 | "vitest": "^4.0.1" 41 | }, 42 | "publishConfig": { 43 | "access": "public", 44 | "provenance": true 45 | }, 46 | "files": [ 47 | "dist/**/*", 48 | "src/**/*", 49 | "!**/*.spec.ts" 50 | ], 51 | "repository": { 52 | "type": "git", 53 | "url": "git+https://github.com/wojtekmaj/predict-input-value.git" 54 | }, 55 | "funding": "https://github.com/wojtekmaj/predict-input-value?sponsor=1", 56 | "packageManager": "yarn@4.10.3" 57 | } 58 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | const excludeList = [ 2 | 'Alt', 3 | 'ArrowDown', 4 | 'ArrowLeft', 5 | 'ArrowRight', 6 | 'ArrowUp', 7 | 'Enter', 8 | 'Escape', 9 | 'Shift', 10 | 'Tab', 11 | ]; 12 | 13 | /** 14 | * Predicts what the value will be after the next keyup given keydown event. 15 | * 16 | * @param {KeyboardEvent} event Keydown event 17 | * @returns {string} Predicted input value 18 | */ 19 | export default function predictInputValue(event: KeyboardEvent): string | null { 20 | // Support only keydown and keypress event 21 | if (event.type !== 'keydown' && event.type !== 'keypress') { 22 | return null; 23 | } 24 | 25 | // Skip Cmd+A and other key combinations 26 | if (event.metaKey) { 27 | return null; 28 | } 29 | 30 | if (excludeList.includes(event.key)) { 31 | return null; 32 | } 33 | 34 | const { target: element } = event; 35 | 36 | // Only support input and textarea elements 37 | if (!(element instanceof HTMLInputElement) && !(element instanceof HTMLTextAreaElement)) { 38 | return null; 39 | } 40 | 41 | // We can’t predict values in number inputs 42 | if (element.type === 'number') { 43 | return null; 44 | } 45 | 46 | let { selectionStart } = element; 47 | const { selectionEnd } = element; 48 | 49 | if (selectionStart === null || selectionEnd === null) { 50 | return null; 51 | } 52 | 53 | const nextValueArr = element.value.split(''); 54 | let { key: replaceWith } = event; 55 | 56 | if (event.key === 'Backspace') { 57 | if (selectionStart && selectionStart === selectionEnd) { 58 | /** 59 | * There’s no text selected, so pressing backspace will remove the character before the caret. 60 | * That’s equal to one character before the caret being selected when Backspace is pressed. 61 | */ 62 | selectionStart -= 1; 63 | } 64 | replaceWith = ''; 65 | } 66 | 67 | /** 68 | * If we’re going to add another character, check if we’re not going over the limit set by 69 | * maxLength. If so, entering the next character will fail, and thus, nextValue will be equal to 70 | * value. 71 | */ 72 | if (!replaceWith || element.maxLength < 0 || nextValueArr.length < element.maxLength) { 73 | nextValueArr.splice(selectionStart, selectionEnd - selectionStart, replaceWith); 74 | } 75 | 76 | return nextValueArr.join(''); 77 | } 78 | -------------------------------------------------------------------------------- /biome.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://biomejs.dev/schemas/2.2.2/schema.json", 3 | "files": { 4 | "includes": [ 5 | "**", 6 | "!**/.yarn", 7 | "!**/coverage", 8 | "!**/dist", 9 | "!**/.pnp.cjs", 10 | "!**/.pnp.loader.mjs" 11 | ] 12 | }, 13 | "assist": { 14 | "actions": { 15 | "source": { 16 | "organizeImports": { 17 | "level": "on", 18 | "options": { 19 | "groups": [ 20 | { "type": false, "source": ":NODE:" }, 21 | { "type": false, "source": ["vitest", "vitest/**", "@vitest/**", "vitest-*"] }, 22 | { "type": false, "source": ["react", "react-dom", "react-dom/**", "react-native"] }, 23 | { "type": false, "source": [":PACKAGE:"] }, 24 | ":BLANK_LINE:", 25 | { 26 | "type": false, 27 | "source": [ 28 | ":PATH:", 29 | "!**/hooks/*", 30 | "!**/use*.js", 31 | "!**/shared/*", 32 | "!**/utils/*", 33 | "!**/__mocks__/*", 34 | "!**/test-utils.js" 35 | ] 36 | }, 37 | ":BLANK_LINE:", 38 | { "type": false, "source": ["**/hooks/*", "**/use*.js"] }, 39 | ":BLANK_LINE:", 40 | { "type": false, "source": ["**/shared/*", "**/utils/*"] }, 41 | ":BLANK_LINE:", 42 | { "type": false, "source": "**/__mocks__/*" }, 43 | ":BLANK_LINE:", 44 | { "type": false, "source": "**/test-utils.js" }, 45 | ":BLANK_LINE:", 46 | ":NODE:", 47 | ":PACKAGE:", 48 | ":PATH:" 49 | ] 50 | } 51 | } 52 | } 53 | } 54 | }, 55 | "formatter": { 56 | "lineWidth": 100, 57 | "indentStyle": "space" 58 | }, 59 | "linter": { 60 | "rules": { 61 | "complexity": { 62 | "noUselessSwitchCase": "off" 63 | }, 64 | "correctness": { 65 | "noUnusedImports": "warn", 66 | "noUnusedVariables": { 67 | "level": "warn", 68 | "options": { 69 | "ignoreRestSiblings": true 70 | } 71 | } 72 | }, 73 | "suspicious": { 74 | "noConsole": "warn" 75 | } 76 | } 77 | }, 78 | "css": { 79 | "formatter": { 80 | "quoteStyle": "single" 81 | } 82 | }, 83 | "javascript": { 84 | "formatter": { 85 | "quoteStyle": "single" 86 | } 87 | }, 88 | "overrides": [ 89 | { 90 | "includes": ["**/vite.config.ts"], 91 | "linter": { 92 | "rules": { 93 | "suspicious": { 94 | "noConsole": "off" 95 | } 96 | } 97 | } 98 | } 99 | ] 100 | } 101 | -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | name: CI 2 | 3 | on: 4 | push: 5 | branches: ['*'] 6 | pull_request: 7 | branches: [main] 8 | 9 | env: 10 | HUSKY: 0 11 | 12 | jobs: 13 | lint: 14 | name: Static code analysis 15 | runs-on: ubuntu-24.04-arm 16 | 17 | steps: 18 | - name: Checkout 19 | uses: actions/checkout@v4 20 | 21 | - name: Setup Biome 22 | uses: biomejs/setup-biome@v2 23 | 24 | - name: Run tests 25 | run: biome lint 26 | 27 | typescript: 28 | name: Type checking 29 | runs-on: ubuntu-24.04-arm 30 | 31 | steps: 32 | - name: Checkout 33 | uses: actions/checkout@v4 34 | 35 | - name: Cache Yarn cache 36 | uses: actions/cache@v5 37 | env: 38 | cache-name: yarn-cache 39 | with: 40 | path: ~/.yarn/berry/cache 41 | key: ${{ runner.os }}-${{ env.cache-name }}-${{ hashFiles('**/yarn.lock') }} 42 | restore-keys: | 43 | ${{ runner.os }}-${{ env.cache-name }} 44 | 45 | - name: Use Node.js 46 | uses: actions/setup-node@v6 47 | with: 48 | node-version: '24' 49 | 50 | - name: Install Corepack 51 | run: npm install -g corepack 52 | 53 | - name: Install dependencies 54 | run: yarn --immutable 55 | env: 56 | PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: true 57 | 58 | - name: Run type checking 59 | run: yarn tsc 60 | 61 | format: 62 | name: Formatting 63 | runs-on: ubuntu-24.04-arm 64 | 65 | steps: 66 | - name: Checkout 67 | uses: actions/checkout@v4 68 | 69 | - name: Setup Biome 70 | uses: biomejs/setup-biome@v2 71 | 72 | - name: Run formatting 73 | run: biome format 74 | 75 | unit: 76 | name: Unit tests 77 | runs-on: ubuntu-24.04-arm 78 | 79 | steps: 80 | - name: Checkout 81 | uses: actions/checkout@v4 82 | 83 | - name: Cache Yarn cache 84 | uses: actions/cache@v5 85 | env: 86 | cache-name: yarn-cache 87 | with: 88 | path: ~/.yarn/berry/cache 89 | key: ${{ runner.os }}-${{ env.cache-name }}-${{ hashFiles('**/yarn.lock') }} 90 | restore-keys: | 91 | ${{ runner.os }}-${{ env.cache-name }} 92 | 93 | - name: Cache ~/.cache/ms-playwright 94 | id: playwright-cache 95 | uses: actions/cache@v5 96 | env: 97 | cache-name: playwright-cache 98 | with: 99 | path: ~/.cache/ms-playwright 100 | key: ${{ runner.os }}-${{ env.cache-name }}-${{ hashFiles('**/yarn.lock') }} 101 | 102 | - name: Use Node.js 103 | uses: actions/setup-node@v6 104 | with: 105 | node-version: '24' 106 | 107 | - name: Install Corepack 108 | run: npm install -g corepack 109 | 110 | - name: Install dependencies 111 | run: yarn --immutable 112 | 113 | - name: Install Playwright browsers 114 | if: steps.playwright-cache.outputs.cache-hit != 'true' 115 | run: yarn playwright install chromium-headless-shell 116 | 117 | - name: Run tests 118 | run: yarn unit 119 | -------------------------------------------------------------------------------- /src/index.spec.ts: -------------------------------------------------------------------------------- 1 | import { beforeEach, describe, expect, it } from 'vitest'; 2 | 3 | import predictInputValue from './index.js'; 4 | 5 | describe('predictInputValue()', () => { 6 | let eventTarget: HTMLInputElement; 7 | let targetWithCaretAfterThirdLetter: HTMLInputElement; 8 | let targetWithSecondLetterSelected: HTMLInputElement; 9 | let targetWithCaretAfterLastLetter: HTMLInputElement; 10 | 11 | beforeEach(() => { 12 | eventTarget = document.createElement('input'); 13 | eventTarget.value = 'hello'; 14 | eventTarget.selectionStart = 0; 15 | eventTarget.selectionEnd = 0; 16 | 17 | targetWithCaretAfterThirdLetter = document.createElement('input'); 18 | targetWithCaretAfterThirdLetter.value = 'hello'; 19 | targetWithCaretAfterThirdLetter.selectionStart = 3; 20 | targetWithCaretAfterThirdLetter.selectionEnd = 3; 21 | 22 | targetWithSecondLetterSelected = document.createElement('input'); 23 | targetWithSecondLetterSelected.value = 'hello'; 24 | targetWithSecondLetterSelected.selectionStart = 1; 25 | targetWithSecondLetterSelected.selectionEnd = 2; 26 | 27 | targetWithCaretAfterLastLetter = document.createElement('input'); 28 | targetWithCaretAfterLastLetter.value = 'hello'; 29 | targetWithCaretAfterLastLetter.selectionStart = 5; 30 | targetWithCaretAfterLastLetter.selectionEnd = 5; 31 | }); 32 | 33 | it('returns null for unsupported events', () => { 34 | const event = new KeyboardEvent('keyup'); 35 | 36 | expect(predictInputValue(event)).toBe(null); 37 | }); 38 | 39 | it('returns null for meta keys', () => { 40 | const event = new KeyboardEvent('keydown', { 41 | metaKey: true, 42 | }); 43 | 44 | expect(predictInputValue(event)).toBe(null); 45 | }); 46 | 47 | it('returns null for meta keys in keydown events', () => { 48 | const event = new KeyboardEvent('keydown', { 49 | metaKey: false, 50 | key: 'ArrowLeft', 51 | }); 52 | 53 | expect(predictInputValue(event)).toBe(null); 54 | }); 55 | 56 | it('returns null for input type = "number"', () => { 57 | const eventTarget = document.createElement('input'); 58 | eventTarget.type = 'number'; 59 | 60 | const event = new KeyboardEvent('keydown'); 61 | 62 | eventTarget.dispatchEvent(event); 63 | 64 | expect(predictInputValue(event)).toBe(null); 65 | }); 66 | 67 | describe('predicts value properly', () => { 68 | it('predicts value if Backspace is pressed at the beginning of the field', () => { 69 | const event = new KeyboardEvent('keydown', { 70 | key: 'Backspace', 71 | }); 72 | 73 | expect.assertions(1); 74 | 75 | eventTarget.addEventListener('keydown', () => { 76 | expect(predictInputValue(event)).toBe('hello'); 77 | }); 78 | 79 | eventTarget.dispatchEvent(event); 80 | }); 81 | 82 | it('predicts value if Backspace is pressed in the middle of the field', () => { 83 | const event = new KeyboardEvent('keydown', { 84 | key: 'Backspace', 85 | }); 86 | 87 | expect.assertions(1); 88 | 89 | targetWithCaretAfterThirdLetter.addEventListener('keydown', () => { 90 | expect(predictInputValue(event)).toBe('helo'); 91 | }); 92 | 93 | targetWithCaretAfterThirdLetter.dispatchEvent(event); 94 | }); 95 | 96 | it('predicts value if Backspace is pressed at the end of the field', () => { 97 | const event = new KeyboardEvent('keydown', { 98 | key: 'Backspace', 99 | }); 100 | 101 | expect.assertions(1); 102 | 103 | targetWithCaretAfterLastLetter.addEventListener('keydown', () => { 104 | expect(predictInputValue(event)).toBe('hell'); 105 | }); 106 | 107 | targetWithCaretAfterLastLetter.dispatchEvent(event); 108 | }); 109 | 110 | it('predicts value if Backspace is pressed when text is selected', () => { 111 | const event = new KeyboardEvent('keydown', { 112 | key: 'Backspace', 113 | }); 114 | 115 | expect.assertions(1); 116 | 117 | targetWithSecondLetterSelected.addEventListener('keydown', () => { 118 | expect(predictInputValue(event)).toBe('hllo'); 119 | }); 120 | 121 | targetWithSecondLetterSelected.dispatchEvent(event); 122 | }); 123 | 124 | it('predicts value if a letter is typed at the beginning of the field', () => { 125 | const event = new KeyboardEvent('keydown', { 126 | key: 'a', 127 | }); 128 | 129 | expect.assertions(1); 130 | 131 | eventTarget.addEventListener('keydown', () => { 132 | expect(predictInputValue(event)).toBe('ahello'); 133 | }); 134 | 135 | eventTarget.dispatchEvent(event); 136 | }); 137 | 138 | it('predicts value if a letter is typed in the middle of the field', () => { 139 | const event = new KeyboardEvent('keydown', { 140 | key: 'a', 141 | }); 142 | 143 | expect.assertions(1); 144 | 145 | targetWithCaretAfterThirdLetter.addEventListener('keydown', () => { 146 | expect(predictInputValue(event)).toBe('helalo'); 147 | }); 148 | 149 | targetWithCaretAfterThirdLetter.dispatchEvent(event); 150 | }); 151 | 152 | it('predicts value if a letter is typed at the end of the field', () => { 153 | const event = new KeyboardEvent('keydown', { 154 | key: 'a', 155 | }); 156 | 157 | expect.assertions(1); 158 | 159 | targetWithCaretAfterLastLetter.addEventListener('keydown', () => { 160 | expect(predictInputValue(event)).toBe('helloa'); 161 | }); 162 | 163 | targetWithCaretAfterLastLetter.dispatchEvent(event); 164 | }); 165 | 166 | it('predicts value if a letter is typed when text is selected', () => { 167 | const event = new KeyboardEvent('keydown', { 168 | key: 'a', 169 | }); 170 | 171 | expect.assertions(1); 172 | 173 | targetWithSecondLetterSelected.addEventListener('keydown', () => { 174 | expect(predictInputValue(event)).toBe('hallo'); 175 | }); 176 | 177 | targetWithSecondLetterSelected.dispatchEvent(event); 178 | }); 179 | 180 | it('predicts value if a letter is typed, but maxLength has been reached', () => { 181 | targetWithCaretAfterLastLetter.maxLength = 5; 182 | 183 | const event = new KeyboardEvent('keydown', { 184 | key: 'a', 185 | }); 186 | 187 | expect.assertions(1); 188 | 189 | targetWithCaretAfterLastLetter.addEventListener('keydown', () => { 190 | expect(predictInputValue(event)).toBe('hello'); 191 | }); 192 | 193 | targetWithCaretAfterLastLetter.dispatchEvent(event); 194 | }); 195 | }); 196 | }); 197 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # This file is generated by running "yarn install" inside your project. 2 | # Manual changes might be lost - proceed with caution! 3 | 4 | __metadata: 5 | version: 8 6 | cacheKey: 10c0 7 | 8 | "@biomejs/biome@npm:2.2.2": 9 | version: 2.2.2 10 | resolution: "@biomejs/biome@npm:2.2.2" 11 | dependencies: 12 | "@biomejs/cli-darwin-arm64": "npm:2.2.2" 13 | "@biomejs/cli-darwin-x64": "npm:2.2.2" 14 | "@biomejs/cli-linux-arm64": "npm:2.2.2" 15 | "@biomejs/cli-linux-arm64-musl": "npm:2.2.2" 16 | "@biomejs/cli-linux-x64": "npm:2.2.2" 17 | "@biomejs/cli-linux-x64-musl": "npm:2.2.2" 18 | "@biomejs/cli-win32-arm64": "npm:2.2.2" 19 | "@biomejs/cli-win32-x64": "npm:2.2.2" 20 | dependenciesMeta: 21 | "@biomejs/cli-darwin-arm64": 22 | optional: true 23 | "@biomejs/cli-darwin-x64": 24 | optional: true 25 | "@biomejs/cli-linux-arm64": 26 | optional: true 27 | "@biomejs/cli-linux-arm64-musl": 28 | optional: true 29 | "@biomejs/cli-linux-x64": 30 | optional: true 31 | "@biomejs/cli-linux-x64-musl": 32 | optional: true 33 | "@biomejs/cli-win32-arm64": 34 | optional: true 35 | "@biomejs/cli-win32-x64": 36 | optional: true 37 | bin: 38 | biome: bin/biome 39 | checksum: 10c0/108690efd8c3a5fcee9faf89371319b2d066208e8adbb05855650032a1cc9afc98ec4206b73b0be2c49cdf64ef765cf5a24785456b814d5846ab65b293791daf 40 | languageName: node 41 | linkType: hard 42 | 43 | "@biomejs/cli-darwin-arm64@npm:2.2.2": 44 | version: 2.2.2 45 | resolution: "@biomejs/cli-darwin-arm64@npm:2.2.2" 46 | conditions: os=darwin & cpu=arm64 47 | languageName: node 48 | linkType: hard 49 | 50 | "@biomejs/cli-darwin-x64@npm:2.2.2": 51 | version: 2.2.2 52 | resolution: "@biomejs/cli-darwin-x64@npm:2.2.2" 53 | conditions: os=darwin & cpu=x64 54 | languageName: node 55 | linkType: hard 56 | 57 | "@biomejs/cli-linux-arm64-musl@npm:2.2.2": 58 | version: 2.2.2 59 | resolution: "@biomejs/cli-linux-arm64-musl@npm:2.2.2" 60 | conditions: os=linux & cpu=arm64 & libc=musl 61 | languageName: node 62 | linkType: hard 63 | 64 | "@biomejs/cli-linux-arm64@npm:2.2.2": 65 | version: 2.2.2 66 | resolution: "@biomejs/cli-linux-arm64@npm:2.2.2" 67 | conditions: os=linux & cpu=arm64 & libc=glibc 68 | languageName: node 69 | linkType: hard 70 | 71 | "@biomejs/cli-linux-x64-musl@npm:2.2.2": 72 | version: 2.2.2 73 | resolution: "@biomejs/cli-linux-x64-musl@npm:2.2.2" 74 | conditions: os=linux & cpu=x64 & libc=musl 75 | languageName: node 76 | linkType: hard 77 | 78 | "@biomejs/cli-linux-x64@npm:2.2.2": 79 | version: 2.2.2 80 | resolution: "@biomejs/cli-linux-x64@npm:2.2.2" 81 | conditions: os=linux & cpu=x64 & libc=glibc 82 | languageName: node 83 | linkType: hard 84 | 85 | "@biomejs/cli-win32-arm64@npm:2.2.2": 86 | version: 2.2.2 87 | resolution: "@biomejs/cli-win32-arm64@npm:2.2.2" 88 | conditions: os=win32 & cpu=arm64 89 | languageName: node 90 | linkType: hard 91 | 92 | "@biomejs/cli-win32-x64@npm:2.2.2": 93 | version: 2.2.2 94 | resolution: "@biomejs/cli-win32-x64@npm:2.2.2" 95 | conditions: os=win32 & cpu=x64 96 | languageName: node 97 | linkType: hard 98 | 99 | "@esbuild/aix-ppc64@npm:0.25.0": 100 | version: 0.25.0 101 | resolution: "@esbuild/aix-ppc64@npm:0.25.0" 102 | conditions: os=aix & cpu=ppc64 103 | languageName: node 104 | linkType: hard 105 | 106 | "@esbuild/android-arm64@npm:0.25.0": 107 | version: 0.25.0 108 | resolution: "@esbuild/android-arm64@npm:0.25.0" 109 | conditions: os=android & cpu=arm64 110 | languageName: node 111 | linkType: hard 112 | 113 | "@esbuild/android-arm@npm:0.25.0": 114 | version: 0.25.0 115 | resolution: "@esbuild/android-arm@npm:0.25.0" 116 | conditions: os=android & cpu=arm 117 | languageName: node 118 | linkType: hard 119 | 120 | "@esbuild/android-x64@npm:0.25.0": 121 | version: 0.25.0 122 | resolution: "@esbuild/android-x64@npm:0.25.0" 123 | conditions: os=android & cpu=x64 124 | languageName: node 125 | linkType: hard 126 | 127 | "@esbuild/darwin-arm64@npm:0.25.0": 128 | version: 0.25.0 129 | resolution: "@esbuild/darwin-arm64@npm:0.25.0" 130 | conditions: os=darwin & cpu=arm64 131 | languageName: node 132 | linkType: hard 133 | 134 | "@esbuild/darwin-x64@npm:0.25.0": 135 | version: 0.25.0 136 | resolution: "@esbuild/darwin-x64@npm:0.25.0" 137 | conditions: os=darwin & cpu=x64 138 | languageName: node 139 | linkType: hard 140 | 141 | "@esbuild/freebsd-arm64@npm:0.25.0": 142 | version: 0.25.0 143 | resolution: "@esbuild/freebsd-arm64@npm:0.25.0" 144 | conditions: os=freebsd & cpu=arm64 145 | languageName: node 146 | linkType: hard 147 | 148 | "@esbuild/freebsd-x64@npm:0.25.0": 149 | version: 0.25.0 150 | resolution: "@esbuild/freebsd-x64@npm:0.25.0" 151 | conditions: os=freebsd & cpu=x64 152 | languageName: node 153 | linkType: hard 154 | 155 | "@esbuild/linux-arm64@npm:0.25.0": 156 | version: 0.25.0 157 | resolution: "@esbuild/linux-arm64@npm:0.25.0" 158 | conditions: os=linux & cpu=arm64 159 | languageName: node 160 | linkType: hard 161 | 162 | "@esbuild/linux-arm@npm:0.25.0": 163 | version: 0.25.0 164 | resolution: "@esbuild/linux-arm@npm:0.25.0" 165 | conditions: os=linux & cpu=arm 166 | languageName: node 167 | linkType: hard 168 | 169 | "@esbuild/linux-ia32@npm:0.25.0": 170 | version: 0.25.0 171 | resolution: "@esbuild/linux-ia32@npm:0.25.0" 172 | conditions: os=linux & cpu=ia32 173 | languageName: node 174 | linkType: hard 175 | 176 | "@esbuild/linux-loong64@npm:0.25.0": 177 | version: 0.25.0 178 | resolution: "@esbuild/linux-loong64@npm:0.25.0" 179 | conditions: os=linux & cpu=loong64 180 | languageName: node 181 | linkType: hard 182 | 183 | "@esbuild/linux-mips64el@npm:0.25.0": 184 | version: 0.25.0 185 | resolution: "@esbuild/linux-mips64el@npm:0.25.0" 186 | conditions: os=linux & cpu=mips64el 187 | languageName: node 188 | linkType: hard 189 | 190 | "@esbuild/linux-ppc64@npm:0.25.0": 191 | version: 0.25.0 192 | resolution: "@esbuild/linux-ppc64@npm:0.25.0" 193 | conditions: os=linux & cpu=ppc64 194 | languageName: node 195 | linkType: hard 196 | 197 | "@esbuild/linux-riscv64@npm:0.25.0": 198 | version: 0.25.0 199 | resolution: "@esbuild/linux-riscv64@npm:0.25.0" 200 | conditions: os=linux & cpu=riscv64 201 | languageName: node 202 | linkType: hard 203 | 204 | "@esbuild/linux-s390x@npm:0.25.0": 205 | version: 0.25.0 206 | resolution: "@esbuild/linux-s390x@npm:0.25.0" 207 | conditions: os=linux & cpu=s390x 208 | languageName: node 209 | linkType: hard 210 | 211 | "@esbuild/linux-x64@npm:0.25.0": 212 | version: 0.25.0 213 | resolution: "@esbuild/linux-x64@npm:0.25.0" 214 | conditions: os=linux & cpu=x64 215 | languageName: node 216 | linkType: hard 217 | 218 | "@esbuild/netbsd-arm64@npm:0.25.0": 219 | version: 0.25.0 220 | resolution: "@esbuild/netbsd-arm64@npm:0.25.0" 221 | conditions: os=netbsd & cpu=arm64 222 | languageName: node 223 | linkType: hard 224 | 225 | "@esbuild/netbsd-x64@npm:0.25.0": 226 | version: 0.25.0 227 | resolution: "@esbuild/netbsd-x64@npm:0.25.0" 228 | conditions: os=netbsd & cpu=x64 229 | languageName: node 230 | linkType: hard 231 | 232 | "@esbuild/openbsd-arm64@npm:0.25.0": 233 | version: 0.25.0 234 | resolution: "@esbuild/openbsd-arm64@npm:0.25.0" 235 | conditions: os=openbsd & cpu=arm64 236 | languageName: node 237 | linkType: hard 238 | 239 | "@esbuild/openbsd-x64@npm:0.25.0": 240 | version: 0.25.0 241 | resolution: "@esbuild/openbsd-x64@npm:0.25.0" 242 | conditions: os=openbsd & cpu=x64 243 | languageName: node 244 | linkType: hard 245 | 246 | "@esbuild/sunos-x64@npm:0.25.0": 247 | version: 0.25.0 248 | resolution: "@esbuild/sunos-x64@npm:0.25.0" 249 | conditions: os=sunos & cpu=x64 250 | languageName: node 251 | linkType: hard 252 | 253 | "@esbuild/win32-arm64@npm:0.25.0": 254 | version: 0.25.0 255 | resolution: "@esbuild/win32-arm64@npm:0.25.0" 256 | conditions: os=win32 & cpu=arm64 257 | languageName: node 258 | linkType: hard 259 | 260 | "@esbuild/win32-ia32@npm:0.25.0": 261 | version: 0.25.0 262 | resolution: "@esbuild/win32-ia32@npm:0.25.0" 263 | conditions: os=win32 & cpu=ia32 264 | languageName: node 265 | linkType: hard 266 | 267 | "@esbuild/win32-x64@npm:0.25.0": 268 | version: 0.25.0 269 | resolution: "@esbuild/win32-x64@npm:0.25.0" 270 | conditions: os=win32 & cpu=x64 271 | languageName: node 272 | linkType: hard 273 | 274 | "@isaacs/cliui@npm:^8.0.2": 275 | version: 8.0.2 276 | resolution: "@isaacs/cliui@npm:8.0.2" 277 | dependencies: 278 | string-width: "npm:^5.1.2" 279 | string-width-cjs: "npm:string-width@^4.2.0" 280 | strip-ansi: "npm:^7.0.1" 281 | strip-ansi-cjs: "npm:strip-ansi@^6.0.1" 282 | wrap-ansi: "npm:^8.1.0" 283 | wrap-ansi-cjs: "npm:wrap-ansi@^7.0.0" 284 | checksum: 10c0/b1bf42535d49f11dc137f18d5e4e63a28c5569de438a221c369483731e9dac9fb797af554e8bf02b6192d1e5eba6e6402cf93900c3d0ac86391d00d04876789e 285 | languageName: node 286 | linkType: hard 287 | 288 | "@isaacs/fs-minipass@npm:^4.0.0": 289 | version: 4.0.1 290 | resolution: "@isaacs/fs-minipass@npm:4.0.1" 291 | dependencies: 292 | minipass: "npm:^7.0.4" 293 | checksum: 10c0/c25b6dc1598790d5b55c0947a9b7d111cfa92594db5296c3b907e2f533c033666f692a3939eadac17b1c7c40d362d0b0635dc874cbfe3e70db7c2b07cc97a5d2 294 | languageName: node 295 | linkType: hard 296 | 297 | "@jridgewell/sourcemap-codec@npm:^1.5.5": 298 | version: 1.5.5 299 | resolution: "@jridgewell/sourcemap-codec@npm:1.5.5" 300 | checksum: 10c0/f9e538f302b63c0ebc06eecb1dd9918dd4289ed36147a0ddce35d6ea4d7ebbda243cda7b2213b6a5e1d8087a298d5cf630fb2bd39329cdecb82017023f6081a0 301 | languageName: node 302 | linkType: hard 303 | 304 | "@npmcli/agent@npm:^3.0.0": 305 | version: 3.0.0 306 | resolution: "@npmcli/agent@npm:3.0.0" 307 | dependencies: 308 | agent-base: "npm:^7.1.0" 309 | http-proxy-agent: "npm:^7.0.0" 310 | https-proxy-agent: "npm:^7.0.1" 311 | lru-cache: "npm:^10.0.1" 312 | socks-proxy-agent: "npm:^8.0.3" 313 | checksum: 10c0/efe37b982f30740ee77696a80c196912c274ecd2cb243bc6ae7053a50c733ce0f6c09fda085145f33ecf453be19654acca74b69e81eaad4c90f00ccffe2f9271 314 | languageName: node 315 | linkType: hard 316 | 317 | "@npmcli/fs@npm:^4.0.0": 318 | version: 4.0.0 319 | resolution: "@npmcli/fs@npm:4.0.0" 320 | dependencies: 321 | semver: "npm:^7.3.5" 322 | checksum: 10c0/c90935d5ce670c87b6b14fab04a965a3b8137e585f8b2a6257263bd7f97756dd736cb165bb470e5156a9e718ecd99413dccc54b1138c1a46d6ec7cf325982fe5 323 | languageName: node 324 | linkType: hard 325 | 326 | "@pkgjs/parseargs@npm:^0.11.0": 327 | version: 0.11.0 328 | resolution: "@pkgjs/parseargs@npm:0.11.0" 329 | checksum: 10c0/5bd7576bb1b38a47a7fc7b51ac9f38748e772beebc56200450c4a817d712232b8f1d3ef70532c80840243c657d491cf6a6be1e3a214cff907645819fdc34aadd 330 | languageName: node 331 | linkType: hard 332 | 333 | "@polka/url@npm:^1.0.0-next.24": 334 | version: 1.0.0-next.29 335 | resolution: "@polka/url@npm:1.0.0-next.29" 336 | checksum: 10c0/0d58e081844095cb029d3c19a659bfefd09d5d51a2f791bc61eba7ea826f13d6ee204a8a448c2f5a855c17df07b37517373ff916dd05801063c0568ae9937684 337 | languageName: node 338 | linkType: hard 339 | 340 | "@rollup/rollup-android-arm-eabi@npm:4.50.1": 341 | version: 4.50.1 342 | resolution: "@rollup/rollup-android-arm-eabi@npm:4.50.1" 343 | conditions: os=android & cpu=arm 344 | languageName: node 345 | linkType: hard 346 | 347 | "@rollup/rollup-android-arm64@npm:4.50.1": 348 | version: 4.50.1 349 | resolution: "@rollup/rollup-android-arm64@npm:4.50.1" 350 | conditions: os=android & cpu=arm64 351 | languageName: node 352 | linkType: hard 353 | 354 | "@rollup/rollup-darwin-arm64@npm:4.50.1": 355 | version: 4.50.1 356 | resolution: "@rollup/rollup-darwin-arm64@npm:4.50.1" 357 | conditions: os=darwin & cpu=arm64 358 | languageName: node 359 | linkType: hard 360 | 361 | "@rollup/rollup-darwin-x64@npm:4.50.1": 362 | version: 4.50.1 363 | resolution: "@rollup/rollup-darwin-x64@npm:4.50.1" 364 | conditions: os=darwin & cpu=x64 365 | languageName: node 366 | linkType: hard 367 | 368 | "@rollup/rollup-freebsd-arm64@npm:4.50.1": 369 | version: 4.50.1 370 | resolution: "@rollup/rollup-freebsd-arm64@npm:4.50.1" 371 | conditions: os=freebsd & cpu=arm64 372 | languageName: node 373 | linkType: hard 374 | 375 | "@rollup/rollup-freebsd-x64@npm:4.50.1": 376 | version: 4.50.1 377 | resolution: "@rollup/rollup-freebsd-x64@npm:4.50.1" 378 | conditions: os=freebsd & cpu=x64 379 | languageName: node 380 | linkType: hard 381 | 382 | "@rollup/rollup-linux-arm-gnueabihf@npm:4.50.1": 383 | version: 4.50.1 384 | resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.50.1" 385 | conditions: os=linux & cpu=arm & libc=glibc 386 | languageName: node 387 | linkType: hard 388 | 389 | "@rollup/rollup-linux-arm-musleabihf@npm:4.50.1": 390 | version: 4.50.1 391 | resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.50.1" 392 | conditions: os=linux & cpu=arm & libc=musl 393 | languageName: node 394 | linkType: hard 395 | 396 | "@rollup/rollup-linux-arm64-gnu@npm:4.50.1": 397 | version: 4.50.1 398 | resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.50.1" 399 | conditions: os=linux & cpu=arm64 & libc=glibc 400 | languageName: node 401 | linkType: hard 402 | 403 | "@rollup/rollup-linux-arm64-musl@npm:4.50.1": 404 | version: 4.50.1 405 | resolution: "@rollup/rollup-linux-arm64-musl@npm:4.50.1" 406 | conditions: os=linux & cpu=arm64 & libc=musl 407 | languageName: node 408 | linkType: hard 409 | 410 | "@rollup/rollup-linux-loongarch64-gnu@npm:4.50.1": 411 | version: 4.50.1 412 | resolution: "@rollup/rollup-linux-loongarch64-gnu@npm:4.50.1" 413 | conditions: os=linux & cpu=loong64 & libc=glibc 414 | languageName: node 415 | linkType: hard 416 | 417 | "@rollup/rollup-linux-ppc64-gnu@npm:4.50.1": 418 | version: 4.50.1 419 | resolution: "@rollup/rollup-linux-ppc64-gnu@npm:4.50.1" 420 | conditions: os=linux & cpu=ppc64 & libc=glibc 421 | languageName: node 422 | linkType: hard 423 | 424 | "@rollup/rollup-linux-riscv64-gnu@npm:4.50.1": 425 | version: 4.50.1 426 | resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.50.1" 427 | conditions: os=linux & cpu=riscv64 & libc=glibc 428 | languageName: node 429 | linkType: hard 430 | 431 | "@rollup/rollup-linux-riscv64-musl@npm:4.50.1": 432 | version: 4.50.1 433 | resolution: "@rollup/rollup-linux-riscv64-musl@npm:4.50.1" 434 | conditions: os=linux & cpu=riscv64 & libc=musl 435 | languageName: node 436 | linkType: hard 437 | 438 | "@rollup/rollup-linux-s390x-gnu@npm:4.50.1": 439 | version: 4.50.1 440 | resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.50.1" 441 | conditions: os=linux & cpu=s390x & libc=glibc 442 | languageName: node 443 | linkType: hard 444 | 445 | "@rollup/rollup-linux-x64-gnu@npm:4.50.1": 446 | version: 4.50.1 447 | resolution: "@rollup/rollup-linux-x64-gnu@npm:4.50.1" 448 | conditions: os=linux & cpu=x64 & libc=glibc 449 | languageName: node 450 | linkType: hard 451 | 452 | "@rollup/rollup-linux-x64-musl@npm:4.50.1": 453 | version: 4.50.1 454 | resolution: "@rollup/rollup-linux-x64-musl@npm:4.50.1" 455 | conditions: os=linux & cpu=x64 & libc=musl 456 | languageName: node 457 | linkType: hard 458 | 459 | "@rollup/rollup-openharmony-arm64@npm:4.50.1": 460 | version: 4.50.1 461 | resolution: "@rollup/rollup-openharmony-arm64@npm:4.50.1" 462 | conditions: os=openharmony & cpu=arm64 463 | languageName: node 464 | linkType: hard 465 | 466 | "@rollup/rollup-win32-arm64-msvc@npm:4.50.1": 467 | version: 4.50.1 468 | resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.50.1" 469 | conditions: os=win32 & cpu=arm64 470 | languageName: node 471 | linkType: hard 472 | 473 | "@rollup/rollup-win32-ia32-msvc@npm:4.50.1": 474 | version: 4.50.1 475 | resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.50.1" 476 | conditions: os=win32 & cpu=ia32 477 | languageName: node 478 | linkType: hard 479 | 480 | "@rollup/rollup-win32-x64-msvc@npm:4.50.1": 481 | version: 4.50.1 482 | resolution: "@rollup/rollup-win32-x64-msvc@npm:4.50.1" 483 | conditions: os=win32 & cpu=x64 484 | languageName: node 485 | linkType: hard 486 | 487 | "@standard-schema/spec@npm:^1.0.0": 488 | version: 1.0.0 489 | resolution: "@standard-schema/spec@npm:1.0.0" 490 | checksum: 10c0/a1ab9a8bdc09b5b47aa8365d0e0ec40cc2df6437be02853696a0e377321653b0d3ac6f079a8c67d5ddbe9821025584b1fb71d9cc041a6666a96f1fadf2ece15f 491 | languageName: node 492 | linkType: hard 493 | 494 | "@types/chai@npm:^5.2.2": 495 | version: 5.2.2 496 | resolution: "@types/chai@npm:5.2.2" 497 | dependencies: 498 | "@types/deep-eql": "npm:*" 499 | checksum: 10c0/49282bf0e8246800ebb36f17256f97bd3a8c4fb31f92ad3c0eaa7623518d7e87f1eaad4ad206960fcaf7175854bdff4cb167e4fe96811e0081b4ada83dd533ec 500 | languageName: node 501 | linkType: hard 502 | 503 | "@types/deep-eql@npm:*": 504 | version: 4.0.2 505 | resolution: "@types/deep-eql@npm:4.0.2" 506 | checksum: 10c0/bf3f811843117900d7084b9d0c852da9a044d12eb40e6de73b552598a6843c21291a8a381b0532644574beecd5e3491c5ff3a0365ab86b15d59862c025384844 507 | languageName: node 508 | linkType: hard 509 | 510 | "@types/estree@npm:1.0.8, @types/estree@npm:^1.0.0": 511 | version: 1.0.8 512 | resolution: "@types/estree@npm:1.0.8" 513 | checksum: 10c0/39d34d1afaa338ab9763f37ad6066e3f349444f9052b9676a7cc0252ef9485a41c6d81c9c4e0d26e9077993354edf25efc853f3224dd4b447175ef62bdcc86a5 514 | languageName: node 515 | linkType: hard 516 | 517 | "@vitest/browser-playwright@npm:^4.0.1": 518 | version: 4.0.2 519 | resolution: "@vitest/browser-playwright@npm:4.0.2" 520 | dependencies: 521 | "@vitest/browser": "npm:4.0.2" 522 | "@vitest/mocker": "npm:4.0.2" 523 | tinyrainbow: "npm:^3.0.3" 524 | peerDependencies: 525 | playwright: "*" 526 | vitest: 4.0.2 527 | peerDependenciesMeta: 528 | playwright: 529 | optional: false 530 | checksum: 10c0/a740068d1a5fd3bbbbf26e14e5b0089a20af31907d5d25ab2ef2d06e6f9dd829bee4e6f9f8d4717209cabcf5859992c8cfb3ed4cafa186c3a65da0b904364c4b 531 | languageName: node 532 | linkType: hard 533 | 534 | "@vitest/browser@npm:4.0.2": 535 | version: 4.0.2 536 | resolution: "@vitest/browser@npm:4.0.2" 537 | dependencies: 538 | "@vitest/mocker": "npm:4.0.2" 539 | "@vitest/utils": "npm:4.0.2" 540 | magic-string: "npm:^0.30.19" 541 | pixelmatch: "npm:7.1.0" 542 | pngjs: "npm:^7.0.0" 543 | sirv: "npm:^3.0.2" 544 | tinyrainbow: "npm:^3.0.3" 545 | ws: "npm:^8.18.3" 546 | peerDependencies: 547 | vitest: 4.0.2 548 | checksum: 10c0/9f1f32aac48aa097a1295de1738bbfa4a34400660fac79ee2e924d519f9e7367e9fa940943b8af68717045301b627a551e26babe2641f6137a84e92af056c419 549 | languageName: node 550 | linkType: hard 551 | 552 | "@vitest/expect@npm:4.0.2": 553 | version: 4.0.2 554 | resolution: "@vitest/expect@npm:4.0.2" 555 | dependencies: 556 | "@standard-schema/spec": "npm:^1.0.0" 557 | "@types/chai": "npm:^5.2.2" 558 | "@vitest/spy": "npm:4.0.2" 559 | "@vitest/utils": "npm:4.0.2" 560 | chai: "npm:^6.0.1" 561 | tinyrainbow: "npm:^3.0.3" 562 | checksum: 10c0/82e02f9ae4e83133cd90d801877df3f4c7c388095bce6ef0806f4eef05b18e1acb9847e935fa73ad6253249205ad7434594fff9288042aba5ab605db5fd5d95d 563 | languageName: node 564 | linkType: hard 565 | 566 | "@vitest/mocker@npm:4.0.2": 567 | version: 4.0.2 568 | resolution: "@vitest/mocker@npm:4.0.2" 569 | dependencies: 570 | "@vitest/spy": "npm:4.0.2" 571 | estree-walker: "npm:^3.0.3" 572 | magic-string: "npm:^0.30.19" 573 | peerDependencies: 574 | msw: ^2.4.9 575 | vite: ^6.0.0 || ^7.0.0-0 576 | peerDependenciesMeta: 577 | msw: 578 | optional: true 579 | vite: 580 | optional: true 581 | checksum: 10c0/e587c01ac82fc04c68977e8559dcac58d9f30afcd77faa5f0981113c47eee466ec39066ec826de05ee55e3da9d9d4bc982fc418970a871076ea2aeea64f8c74f 582 | languageName: node 583 | linkType: hard 584 | 585 | "@vitest/pretty-format@npm:4.0.2": 586 | version: 4.0.2 587 | resolution: "@vitest/pretty-format@npm:4.0.2" 588 | dependencies: 589 | tinyrainbow: "npm:^3.0.3" 590 | checksum: 10c0/b07f2e9bfc5477fe8acdae5274d4c5d75a46c3bad2b203eb41fbaada76b4c34312ca183e728dc094e0769324e4cc1052942cbaf6c8fcc11b3fe252ff02a0adb3 591 | languageName: node 592 | linkType: hard 593 | 594 | "@vitest/runner@npm:4.0.2": 595 | version: 4.0.2 596 | resolution: "@vitest/runner@npm:4.0.2" 597 | dependencies: 598 | "@vitest/utils": "npm:4.0.2" 599 | pathe: "npm:^2.0.3" 600 | checksum: 10c0/bd7eb22375867be3acedda7b96f70da3c860fd31e199dfe8cddfd9641ab473daa2c098ad0d090f6881b5762af5906b2ec6db3e6825e250d7805715565909656a 601 | languageName: node 602 | linkType: hard 603 | 604 | "@vitest/snapshot@npm:4.0.2": 605 | version: 4.0.2 606 | resolution: "@vitest/snapshot@npm:4.0.2" 607 | dependencies: 608 | "@vitest/pretty-format": "npm:4.0.2" 609 | magic-string: "npm:^0.30.19" 610 | pathe: "npm:^2.0.3" 611 | checksum: 10c0/21364fa9eca6b2ab9484e739148e9b699c2c3b504027274c8c908ed921d75b8c84215f8f40c95c3df0b633714c061b584631f6b54bd1891be37a7e8c2cdfcdc3 612 | languageName: node 613 | linkType: hard 614 | 615 | "@vitest/spy@npm:4.0.2": 616 | version: 4.0.2 617 | resolution: "@vitest/spy@npm:4.0.2" 618 | checksum: 10c0/9143df2de4841d07074ea4916d88122bd2f56aa4f4a590d2dd6dee1d82fca7ae9da946be39de13874bc34439de262a32dd3ec947e5a94c8fdfe0cc3b71015cf7 619 | languageName: node 620 | linkType: hard 621 | 622 | "@vitest/utils@npm:4.0.2": 623 | version: 4.0.2 624 | resolution: "@vitest/utils@npm:4.0.2" 625 | dependencies: 626 | "@vitest/pretty-format": "npm:4.0.2" 627 | tinyrainbow: "npm:^3.0.3" 628 | checksum: 10c0/0b393caf0187aa4519c8901d9d40f2889c77ceb3a49b71aea653bc8f7b107da0574587047c9b1d52e3ce442fa1061c3649130bd1f5485e2ab5fc9632d82a43d4 629 | languageName: node 630 | linkType: hard 631 | 632 | "@wojtekmaj/predict-input-value@workspace:.": 633 | version: 0.0.0-use.local 634 | resolution: "@wojtekmaj/predict-input-value@workspace:." 635 | dependencies: 636 | "@biomejs/biome": "npm:2.2.2" 637 | "@vitest/browser-playwright": "npm:^4.0.1" 638 | husky: "npm:^9.0.0" 639 | playwright: "npm:^1.55.1" 640 | typescript: "npm:^5.9.2" 641 | vitest: "npm:^4.0.1" 642 | languageName: unknown 643 | linkType: soft 644 | 645 | "abbrev@npm:^3.0.0": 646 | version: 3.0.0 647 | resolution: "abbrev@npm:3.0.0" 648 | checksum: 10c0/049704186396f571650eb7b22ed3627b77a5aedf98bb83caf2eac81ca2a3e25e795394b0464cfb2d6076df3db6a5312139eac5b6a126ca296ac53c5008069c28 649 | languageName: node 650 | linkType: hard 651 | 652 | "agent-base@npm:^7.0.2, agent-base@npm:^7.1.0, agent-base@npm:^7.1.2": 653 | version: 7.1.3 654 | resolution: "agent-base@npm:7.1.3" 655 | checksum: 10c0/6192b580c5b1d8fb399b9c62bf8343d76654c2dd62afcb9a52b2cf44a8b6ace1e3b704d3fe3547d91555c857d3df02603341ff2cb961b9cfe2b12f9f3c38ee11 656 | languageName: node 657 | linkType: hard 658 | 659 | "ansi-regex@npm:^5.0.1": 660 | version: 5.0.1 661 | resolution: "ansi-regex@npm:5.0.1" 662 | checksum: 10c0/9a64bb8627b434ba9327b60c027742e5d17ac69277960d041898596271d992d4d52ba7267a63ca10232e29f6107fc8a835f6ce8d719b88c5f8493f8254813737 663 | languageName: node 664 | linkType: hard 665 | 666 | "ansi-regex@npm:^6.0.1": 667 | version: 6.0.1 668 | resolution: "ansi-regex@npm:6.0.1" 669 | checksum: 10c0/cbe16dbd2c6b2735d1df7976a7070dd277326434f0212f43abf6d87674095d247968209babdaad31bb00882fa68807256ba9be340eec2f1004de14ca75f52a08 670 | languageName: node 671 | linkType: hard 672 | 673 | "ansi-styles@npm:^4.0.0": 674 | version: 4.3.0 675 | resolution: "ansi-styles@npm:4.3.0" 676 | dependencies: 677 | color-convert: "npm:^2.0.1" 678 | checksum: 10c0/895a23929da416f2bd3de7e9cb4eabd340949328ab85ddd6e484a637d8f6820d485f53933446f5291c3b760cbc488beb8e88573dd0f9c7daf83dccc8fe81b041 679 | languageName: node 680 | linkType: hard 681 | 682 | "ansi-styles@npm:^6.1.0": 683 | version: 6.2.1 684 | resolution: "ansi-styles@npm:6.2.1" 685 | checksum: 10c0/5d1ec38c123984bcedd996eac680d548f31828bd679a66db2bdf11844634dde55fec3efa9c6bb1d89056a5e79c1ac540c4c784d592ea1d25028a92227d2f2d5c 686 | languageName: node 687 | linkType: hard 688 | 689 | "balanced-match@npm:^1.0.0": 690 | version: 1.0.2 691 | resolution: "balanced-match@npm:1.0.2" 692 | checksum: 10c0/9308baf0a7e4838a82bbfd11e01b1cb0f0cf2893bc1676c27c2a8c0e70cbae1c59120c3268517a8ae7fb6376b4639ef81ca22582611dbee4ed28df945134aaee 693 | languageName: node 694 | linkType: hard 695 | 696 | "brace-expansion@npm:^2.0.1": 697 | version: 2.0.2 698 | resolution: "brace-expansion@npm:2.0.2" 699 | dependencies: 700 | balanced-match: "npm:^1.0.0" 701 | checksum: 10c0/6d117a4c793488af86b83172deb6af143e94c17bc53b0b3cec259733923b4ca84679d506ac261f4ba3c7ed37c46018e2ff442f9ce453af8643ecd64f4a54e6cf 702 | languageName: node 703 | linkType: hard 704 | 705 | "cacache@npm:^19.0.1": 706 | version: 19.0.1 707 | resolution: "cacache@npm:19.0.1" 708 | dependencies: 709 | "@npmcli/fs": "npm:^4.0.0" 710 | fs-minipass: "npm:^3.0.0" 711 | glob: "npm:^10.2.2" 712 | lru-cache: "npm:^10.0.1" 713 | minipass: "npm:^7.0.3" 714 | minipass-collect: "npm:^2.0.1" 715 | minipass-flush: "npm:^1.0.5" 716 | minipass-pipeline: "npm:^1.2.4" 717 | p-map: "npm:^7.0.2" 718 | ssri: "npm:^12.0.0" 719 | tar: "npm:^7.4.3" 720 | unique-filename: "npm:^4.0.0" 721 | checksum: 10c0/01f2134e1bd7d3ab68be851df96c8d63b492b1853b67f2eecb2c37bb682d37cb70bb858a16f2f0554d3c0071be6dfe21456a1ff6fa4b7eed996570d6a25ffe9c 722 | languageName: node 723 | linkType: hard 724 | 725 | "chai@npm:^6.0.1": 726 | version: 6.2.0 727 | resolution: "chai@npm:6.2.0" 728 | checksum: 10c0/a4b7d7f5907187e09f1847afa838d6d1608adc7d822031b7900813c4ed5d9702911ac2468bf290676f22fddb3d727b1be90b57c1d0a69b902534ee29cdc6ff8a 729 | languageName: node 730 | linkType: hard 731 | 732 | "chownr@npm:^3.0.0": 733 | version: 3.0.0 734 | resolution: "chownr@npm:3.0.0" 735 | checksum: 10c0/43925b87700f7e3893296c8e9c56cc58f926411cce3a6e5898136daaf08f08b9a8eb76d37d3267e707d0dcc17aed2e2ebdf5848c0c3ce95cf910a919935c1b10 736 | languageName: node 737 | linkType: hard 738 | 739 | "color-convert@npm:^2.0.1": 740 | version: 2.0.1 741 | resolution: "color-convert@npm:2.0.1" 742 | dependencies: 743 | color-name: "npm:~1.1.4" 744 | checksum: 10c0/37e1150172f2e311fe1b2df62c6293a342ee7380da7b9cfdba67ea539909afbd74da27033208d01d6d5cfc65ee7868a22e18d7e7648e004425441c0f8a15a7d7 745 | languageName: node 746 | linkType: hard 747 | 748 | "color-name@npm:~1.1.4": 749 | version: 1.1.4 750 | resolution: "color-name@npm:1.1.4" 751 | checksum: 10c0/a1a3f914156960902f46f7f56bc62effc6c94e84b2cae157a526b1c1f74b677a47ec602bf68a61abfa2b42d15b7c5651c6dbe72a43af720bc588dff885b10f95 752 | languageName: node 753 | linkType: hard 754 | 755 | "cross-spawn@npm:^7.0.0": 756 | version: 7.0.6 757 | resolution: "cross-spawn@npm:7.0.6" 758 | dependencies: 759 | path-key: "npm:^3.1.0" 760 | shebang-command: "npm:^2.0.0" 761 | which: "npm:^2.0.1" 762 | checksum: 10c0/053ea8b2135caff68a9e81470e845613e374e7309a47731e81639de3eaeb90c3d01af0e0b44d2ab9d50b43467223b88567dfeb3262db942dc063b9976718ffc1 763 | languageName: node 764 | linkType: hard 765 | 766 | "debug@npm:4, debug@npm:^4.3.4, debug@npm:^4.4.3": 767 | version: 4.4.3 768 | resolution: "debug@npm:4.4.3" 769 | dependencies: 770 | ms: "npm:^2.1.3" 771 | peerDependenciesMeta: 772 | supports-color: 773 | optional: true 774 | checksum: 10c0/d79136ec6c83ecbefd0f6a5593da6a9c91ec4d7ddc4b54c883d6e71ec9accb5f67a1a5e96d00a328196b5b5c86d365e98d8a3a70856aaf16b4e7b1985e67f5a6 775 | languageName: node 776 | linkType: hard 777 | 778 | "eastasianwidth@npm:^0.2.0": 779 | version: 0.2.0 780 | resolution: "eastasianwidth@npm:0.2.0" 781 | checksum: 10c0/26f364ebcdb6395f95124fda411f63137a4bfb5d3a06453f7f23dfe52502905bd84e0488172e0f9ec295fdc45f05c23d5d91baf16bd26f0fe9acd777a188dc39 782 | languageName: node 783 | linkType: hard 784 | 785 | "emoji-regex@npm:^8.0.0": 786 | version: 8.0.0 787 | resolution: "emoji-regex@npm:8.0.0" 788 | checksum: 10c0/b6053ad39951c4cf338f9092d7bfba448cdfd46fe6a2a034700b149ac9ffbc137e361cbd3c442297f86bed2e5f7576c1b54cc0a6bf8ef5106cc62f496af35010 789 | languageName: node 790 | linkType: hard 791 | 792 | "emoji-regex@npm:^9.2.2": 793 | version: 9.2.2 794 | resolution: "emoji-regex@npm:9.2.2" 795 | checksum: 10c0/af014e759a72064cf66e6e694a7fc6b0ed3d8db680427b021a89727689671cefe9d04151b2cad51dbaf85d5ba790d061cd167f1cf32eb7b281f6368b3c181639 796 | languageName: node 797 | linkType: hard 798 | 799 | "encoding@npm:^0.1.13": 800 | version: 0.1.13 801 | resolution: "encoding@npm:0.1.13" 802 | dependencies: 803 | iconv-lite: "npm:^0.6.2" 804 | checksum: 10c0/36d938712ff00fe1f4bac88b43bcffb5930c1efa57bbcdca9d67e1d9d6c57cfb1200fb01efe0f3109b2ce99b231f90779532814a81370a1bd3274a0f58585039 805 | languageName: node 806 | linkType: hard 807 | 808 | "env-paths@npm:^2.2.0": 809 | version: 2.2.1 810 | resolution: "env-paths@npm:2.2.1" 811 | checksum: 10c0/285325677bf00e30845e330eec32894f5105529db97496ee3f598478e50f008c5352a41a30e5e72ec9de8a542b5a570b85699cd63bd2bc646dbcb9f311d83bc4 812 | languageName: node 813 | linkType: hard 814 | 815 | "err-code@npm:^2.0.2": 816 | version: 2.0.3 817 | resolution: "err-code@npm:2.0.3" 818 | checksum: 10c0/b642f7b4dd4a376e954947550a3065a9ece6733ab8e51ad80db727aaae0817c2e99b02a97a3d6cecc648a97848305e728289cf312d09af395403a90c9d4d8a66 819 | languageName: node 820 | linkType: hard 821 | 822 | "es-module-lexer@npm:^1.7.0": 823 | version: 1.7.0 824 | resolution: "es-module-lexer@npm:1.7.0" 825 | checksum: 10c0/4c935affcbfeba7fb4533e1da10fa8568043df1e3574b869385980de9e2d475ddc36769891936dbb07036edb3c3786a8b78ccf44964cd130dedc1f2c984b6c7b 826 | languageName: node 827 | linkType: hard 828 | 829 | "esbuild@npm:^0.25.0": 830 | version: 0.25.0 831 | resolution: "esbuild@npm:0.25.0" 832 | dependencies: 833 | "@esbuild/aix-ppc64": "npm:0.25.0" 834 | "@esbuild/android-arm": "npm:0.25.0" 835 | "@esbuild/android-arm64": "npm:0.25.0" 836 | "@esbuild/android-x64": "npm:0.25.0" 837 | "@esbuild/darwin-arm64": "npm:0.25.0" 838 | "@esbuild/darwin-x64": "npm:0.25.0" 839 | "@esbuild/freebsd-arm64": "npm:0.25.0" 840 | "@esbuild/freebsd-x64": "npm:0.25.0" 841 | "@esbuild/linux-arm": "npm:0.25.0" 842 | "@esbuild/linux-arm64": "npm:0.25.0" 843 | "@esbuild/linux-ia32": "npm:0.25.0" 844 | "@esbuild/linux-loong64": "npm:0.25.0" 845 | "@esbuild/linux-mips64el": "npm:0.25.0" 846 | "@esbuild/linux-ppc64": "npm:0.25.0" 847 | "@esbuild/linux-riscv64": "npm:0.25.0" 848 | "@esbuild/linux-s390x": "npm:0.25.0" 849 | "@esbuild/linux-x64": "npm:0.25.0" 850 | "@esbuild/netbsd-arm64": "npm:0.25.0" 851 | "@esbuild/netbsd-x64": "npm:0.25.0" 852 | "@esbuild/openbsd-arm64": "npm:0.25.0" 853 | "@esbuild/openbsd-x64": "npm:0.25.0" 854 | "@esbuild/sunos-x64": "npm:0.25.0" 855 | "@esbuild/win32-arm64": "npm:0.25.0" 856 | "@esbuild/win32-ia32": "npm:0.25.0" 857 | "@esbuild/win32-x64": "npm:0.25.0" 858 | dependenciesMeta: 859 | "@esbuild/aix-ppc64": 860 | optional: true 861 | "@esbuild/android-arm": 862 | optional: true 863 | "@esbuild/android-arm64": 864 | optional: true 865 | "@esbuild/android-x64": 866 | optional: true 867 | "@esbuild/darwin-arm64": 868 | optional: true 869 | "@esbuild/darwin-x64": 870 | optional: true 871 | "@esbuild/freebsd-arm64": 872 | optional: true 873 | "@esbuild/freebsd-x64": 874 | optional: true 875 | "@esbuild/linux-arm": 876 | optional: true 877 | "@esbuild/linux-arm64": 878 | optional: true 879 | "@esbuild/linux-ia32": 880 | optional: true 881 | "@esbuild/linux-loong64": 882 | optional: true 883 | "@esbuild/linux-mips64el": 884 | optional: true 885 | "@esbuild/linux-ppc64": 886 | optional: true 887 | "@esbuild/linux-riscv64": 888 | optional: true 889 | "@esbuild/linux-s390x": 890 | optional: true 891 | "@esbuild/linux-x64": 892 | optional: true 893 | "@esbuild/netbsd-arm64": 894 | optional: true 895 | "@esbuild/netbsd-x64": 896 | optional: true 897 | "@esbuild/openbsd-arm64": 898 | optional: true 899 | "@esbuild/openbsd-x64": 900 | optional: true 901 | "@esbuild/sunos-x64": 902 | optional: true 903 | "@esbuild/win32-arm64": 904 | optional: true 905 | "@esbuild/win32-ia32": 906 | optional: true 907 | "@esbuild/win32-x64": 908 | optional: true 909 | bin: 910 | esbuild: bin/esbuild 911 | checksum: 10c0/5767b72da46da3cfec51661647ec850ddbf8a8d0662771139f10ef0692a8831396a0004b2be7966cecdb08264fb16bdc16290dcecd92396fac5f12d722fa013d 912 | languageName: node 913 | linkType: hard 914 | 915 | "estree-walker@npm:^3.0.3": 916 | version: 3.0.3 917 | resolution: "estree-walker@npm:3.0.3" 918 | dependencies: 919 | "@types/estree": "npm:^1.0.0" 920 | checksum: 10c0/c12e3c2b2642d2bcae7d5aa495c60fa2f299160946535763969a1c83fc74518ffa9c2cd3a8b69ac56aea547df6a8aac25f729a342992ef0bbac5f1c73e78995d 921 | languageName: node 922 | linkType: hard 923 | 924 | "expect-type@npm:^1.2.2": 925 | version: 1.2.2 926 | resolution: "expect-type@npm:1.2.2" 927 | checksum: 10c0/6019019566063bbc7a690d9281d920b1a91284a4a093c2d55d71ffade5ac890cf37a51e1da4602546c4b56569d2ad2fc175a2ccee77d1ae06cb3af91ef84f44b 928 | languageName: node 929 | linkType: hard 930 | 931 | "exponential-backoff@npm:^3.1.1": 932 | version: 3.1.1 933 | resolution: "exponential-backoff@npm:3.1.1" 934 | checksum: 10c0/160456d2d647e6019640bd07111634d8c353038d9fa40176afb7cd49b0548bdae83b56d05e907c2cce2300b81cae35d800ef92fefb9d0208e190fa3b7d6bb579 935 | languageName: node 936 | linkType: hard 937 | 938 | "fdir@npm:^6.5.0": 939 | version: 6.5.0 940 | resolution: "fdir@npm:6.5.0" 941 | peerDependencies: 942 | picomatch: ^3 || ^4 943 | peerDependenciesMeta: 944 | picomatch: 945 | optional: true 946 | checksum: 10c0/e345083c4306b3aed6cb8ec551e26c36bab5c511e99ea4576a16750ddc8d3240e63826cc624f5ae17ad4dc82e68a253213b60d556c11bfad064b7607847ed07f 947 | languageName: node 948 | linkType: hard 949 | 950 | "foreground-child@npm:^3.1.0": 951 | version: 3.1.1 952 | resolution: "foreground-child@npm:3.1.1" 953 | dependencies: 954 | cross-spawn: "npm:^7.0.0" 955 | signal-exit: "npm:^4.0.1" 956 | checksum: 10c0/9700a0285628abaeb37007c9a4d92bd49f67210f09067638774338e146c8e9c825c5c877f072b2f75f41dc6a2d0be8664f79ffc03f6576649f54a84fb9b47de0 957 | languageName: node 958 | linkType: hard 959 | 960 | "fs-minipass@npm:^3.0.0": 961 | version: 3.0.3 962 | resolution: "fs-minipass@npm:3.0.3" 963 | dependencies: 964 | minipass: "npm:^7.0.3" 965 | checksum: 10c0/63e80da2ff9b621e2cb1596abcb9207f1cf82b968b116ccd7b959e3323144cce7fb141462200971c38bbf2ecca51695069db45265705bed09a7cd93ae5b89f94 966 | languageName: node 967 | linkType: hard 968 | 969 | "fsevents@npm:2.3.2": 970 | version: 2.3.2 971 | resolution: "fsevents@npm:2.3.2" 972 | dependencies: 973 | node-gyp: "npm:latest" 974 | checksum: 10c0/be78a3efa3e181cda3cf7a4637cb527bcebb0bd0ea0440105a3bb45b86f9245b307dc10a2507e8f4498a7d4ec349d1910f4d73e4d4495b16103106e07eee735b 975 | conditions: os=darwin 976 | languageName: node 977 | linkType: hard 978 | 979 | "fsevents@npm:~2.3.2, fsevents@npm:~2.3.3": 980 | version: 2.3.3 981 | resolution: "fsevents@npm:2.3.3" 982 | dependencies: 983 | node-gyp: "npm:latest" 984 | checksum: 10c0/a1f0c44595123ed717febbc478aa952e47adfc28e2092be66b8ab1635147254ca6cfe1df792a8997f22716d4cbafc73309899ff7bfac2ac3ad8cf2e4ecc3ec60 985 | conditions: os=darwin 986 | languageName: node 987 | linkType: hard 988 | 989 | "fsevents@patch:fsevents@npm%3A2.3.2#optional!builtin": 990 | version: 2.3.2 991 | resolution: "fsevents@patch:fsevents@npm%3A2.3.2#optional!builtin::version=2.3.2&hash=df0bf1" 992 | dependencies: 993 | node-gyp: "npm:latest" 994 | conditions: os=darwin 995 | languageName: node 996 | linkType: hard 997 | 998 | "fsevents@patch:fsevents@npm%3A~2.3.2#optional!builtin, fsevents@patch:fsevents@npm%3A~2.3.3#optional!builtin": 999 | version: 2.3.3 1000 | resolution: "fsevents@patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1" 1001 | dependencies: 1002 | node-gyp: "npm:latest" 1003 | conditions: os=darwin 1004 | languageName: node 1005 | linkType: hard 1006 | 1007 | "glob@npm:^10.2.2, glob@npm:^10.3.10": 1008 | version: 10.5.0 1009 | resolution: "glob@npm:10.5.0" 1010 | dependencies: 1011 | foreground-child: "npm:^3.1.0" 1012 | jackspeak: "npm:^3.1.2" 1013 | minimatch: "npm:^9.0.4" 1014 | minipass: "npm:^7.1.2" 1015 | package-json-from-dist: "npm:^1.0.0" 1016 | path-scurry: "npm:^1.11.1" 1017 | bin: 1018 | glob: dist/esm/bin.mjs 1019 | checksum: 10c0/100705eddbde6323e7b35e1d1ac28bcb58322095bd8e63a7d0bef1a2cdafe0d0f7922a981b2b48369a4f8c1b077be5c171804534c3509dfe950dde15fbe6d828 1020 | languageName: node 1021 | linkType: hard 1022 | 1023 | "graceful-fs@npm:^4.2.6": 1024 | version: 4.2.11 1025 | resolution: "graceful-fs@npm:4.2.11" 1026 | checksum: 10c0/386d011a553e02bc594ac2ca0bd6d9e4c22d7fa8cfbfc448a6d148c59ea881b092db9dbe3547ae4b88e55f1b01f7c4a2ecc53b310c042793e63aa44cf6c257f2 1027 | languageName: node 1028 | linkType: hard 1029 | 1030 | "http-cache-semantics@npm:^4.1.1": 1031 | version: 4.1.1 1032 | resolution: "http-cache-semantics@npm:4.1.1" 1033 | checksum: 10c0/ce1319b8a382eb3cbb4a37c19f6bfe14e5bb5be3d09079e885e8c513ab2d3cd9214902f8a31c9dc4e37022633ceabfc2d697405deeaf1b8f3552bb4ed996fdfc 1034 | languageName: node 1035 | linkType: hard 1036 | 1037 | "http-proxy-agent@npm:^7.0.0": 1038 | version: 7.0.0 1039 | resolution: "http-proxy-agent@npm:7.0.0" 1040 | dependencies: 1041 | agent-base: "npm:^7.1.0" 1042 | debug: "npm:^4.3.4" 1043 | checksum: 10c0/a11574ff39436cee3c7bc67f259444097b09474605846ddd8edf0bf4ad8644be8533db1aa463426e376865047d05dc22755e638632819317c0c2f1b2196657c8 1044 | languageName: node 1045 | linkType: hard 1046 | 1047 | "https-proxy-agent@npm:^7.0.1": 1048 | version: 7.0.2 1049 | resolution: "https-proxy-agent@npm:7.0.2" 1050 | dependencies: 1051 | agent-base: "npm:^7.0.2" 1052 | debug: "npm:4" 1053 | checksum: 10c0/7735eb90073db087e7e79312e3d97c8c04baf7ea7ca7b013382b6a45abbaa61b281041a98f4e13c8c80d88f843785bcc84ba189165b4b4087b1e3496ba656d77 1054 | languageName: node 1055 | linkType: hard 1056 | 1057 | "husky@npm:^9.0.0": 1058 | version: 9.0.7 1059 | resolution: "husky@npm:9.0.7" 1060 | bin: 1061 | husky: bin.js 1062 | checksum: 10c0/ac36838bc230b42ca878eeb6993cba5499b858700581fa9e8b579227af9ad47bdbf4c050f4145f51f33f77c16d359f329622b7050150c78a7c52be26cc24174e 1063 | languageName: node 1064 | linkType: hard 1065 | 1066 | "iconv-lite@npm:^0.6.2": 1067 | version: 0.6.3 1068 | resolution: "iconv-lite@npm:0.6.3" 1069 | dependencies: 1070 | safer-buffer: "npm:>= 2.1.2 < 3.0.0" 1071 | checksum: 10c0/98102bc66b33fcf5ac044099d1257ba0b7ad5e3ccd3221f34dd508ab4070edff183276221684e1e0555b145fce0850c9f7d2b60a9fcac50fbb4ea0d6e845a3b1 1072 | languageName: node 1073 | linkType: hard 1074 | 1075 | "imurmurhash@npm:^0.1.4": 1076 | version: 0.1.4 1077 | resolution: "imurmurhash@npm:0.1.4" 1078 | checksum: 10c0/8b51313850dd33605c6c9d3fd9638b714f4c4c40250cff658209f30d40da60f78992fb2df5dabee4acf589a6a82bbc79ad5486550754bd9ec4e3fc0d4a57d6a6 1079 | languageName: node 1080 | linkType: hard 1081 | 1082 | "ip-address@npm:^9.0.5": 1083 | version: 9.0.5 1084 | resolution: "ip-address@npm:9.0.5" 1085 | dependencies: 1086 | jsbn: "npm:1.1.0" 1087 | sprintf-js: "npm:^1.1.3" 1088 | checksum: 10c0/331cd07fafcb3b24100613e4b53e1a2b4feab11e671e655d46dc09ee233da5011284d09ca40c4ecbdfe1d0004f462958675c224a804259f2f78d2465a87824bc 1089 | languageName: node 1090 | linkType: hard 1091 | 1092 | "is-fullwidth-code-point@npm:^3.0.0": 1093 | version: 3.0.0 1094 | resolution: "is-fullwidth-code-point@npm:3.0.0" 1095 | checksum: 10c0/bb11d825e049f38e04c06373a8d72782eee0205bda9d908cc550ccb3c59b99d750ff9537982e01733c1c94a58e35400661f57042158ff5e8f3e90cf936daf0fc 1096 | languageName: node 1097 | linkType: hard 1098 | 1099 | "isexe@npm:^2.0.0": 1100 | version: 2.0.0 1101 | resolution: "isexe@npm:2.0.0" 1102 | checksum: 10c0/228cfa503fadc2c31596ab06ed6aa82c9976eec2bfd83397e7eaf06d0ccf42cd1dfd6743bf9aeb01aebd4156d009994c5f76ea898d2832c1fe342da923ca457d 1103 | languageName: node 1104 | linkType: hard 1105 | 1106 | "isexe@npm:^3.1.1": 1107 | version: 3.1.1 1108 | resolution: "isexe@npm:3.1.1" 1109 | checksum: 10c0/9ec257654093443eb0a528a9c8cbba9c0ca7616ccb40abd6dde7202734d96bb86e4ac0d764f0f8cd965856aacbff2f4ce23e730dc19dfb41e3b0d865ca6fdcc7 1110 | languageName: node 1111 | linkType: hard 1112 | 1113 | "jackspeak@npm:^3.1.2": 1114 | version: 3.4.3 1115 | resolution: "jackspeak@npm:3.4.3" 1116 | dependencies: 1117 | "@isaacs/cliui": "npm:^8.0.2" 1118 | "@pkgjs/parseargs": "npm:^0.11.0" 1119 | dependenciesMeta: 1120 | "@pkgjs/parseargs": 1121 | optional: true 1122 | checksum: 10c0/6acc10d139eaefdbe04d2f679e6191b3abf073f111edf10b1de5302c97ec93fffeb2fdd8681ed17f16268aa9dd4f8c588ed9d1d3bffbbfa6e8bf897cbb3149b9 1123 | languageName: node 1124 | linkType: hard 1125 | 1126 | "jsbn@npm:1.1.0": 1127 | version: 1.1.0 1128 | resolution: "jsbn@npm:1.1.0" 1129 | checksum: 10c0/4f907fb78d7b712e11dea8c165fe0921f81a657d3443dde75359ed52eb2b5d33ce6773d97985a089f09a65edd80b11cb75c767b57ba47391fee4c969f7215c96 1130 | languageName: node 1131 | linkType: hard 1132 | 1133 | "lru-cache@npm:^10.0.1, lru-cache@npm:^10.2.0": 1134 | version: 10.4.3 1135 | resolution: "lru-cache@npm:10.4.3" 1136 | checksum: 10c0/ebd04fbca961e6c1d6c0af3799adcc966a1babe798f685bb84e6599266599cd95d94630b10262f5424539bc4640107e8a33aa28585374abf561d30d16f4b39fb 1137 | languageName: node 1138 | linkType: hard 1139 | 1140 | "magic-string@npm:^0.30.19": 1141 | version: 0.30.21 1142 | resolution: "magic-string@npm:0.30.21" 1143 | dependencies: 1144 | "@jridgewell/sourcemap-codec": "npm:^1.5.5" 1145 | checksum: 10c0/299378e38f9a270069fc62358522ddfb44e94244baa0d6a8980ab2a9b2490a1d03b236b447eee309e17eb3bddfa482c61259d47960eb018a904f0ded52780c4a 1146 | languageName: node 1147 | linkType: hard 1148 | 1149 | "make-fetch-happen@npm:^14.0.3": 1150 | version: 14.0.3 1151 | resolution: "make-fetch-happen@npm:14.0.3" 1152 | dependencies: 1153 | "@npmcli/agent": "npm:^3.0.0" 1154 | cacache: "npm:^19.0.1" 1155 | http-cache-semantics: "npm:^4.1.1" 1156 | minipass: "npm:^7.0.2" 1157 | minipass-fetch: "npm:^4.0.0" 1158 | minipass-flush: "npm:^1.0.5" 1159 | minipass-pipeline: "npm:^1.2.4" 1160 | negotiator: "npm:^1.0.0" 1161 | proc-log: "npm:^5.0.0" 1162 | promise-retry: "npm:^2.0.1" 1163 | ssri: "npm:^12.0.0" 1164 | checksum: 10c0/c40efb5e5296e7feb8e37155bde8eb70bc57d731b1f7d90e35a092fde403d7697c56fb49334d92d330d6f1ca29a98142036d6480a12681133a0a1453164cb2f0 1165 | languageName: node 1166 | linkType: hard 1167 | 1168 | "minimatch@npm:^9.0.4": 1169 | version: 9.0.5 1170 | resolution: "minimatch@npm:9.0.5" 1171 | dependencies: 1172 | brace-expansion: "npm:^2.0.1" 1173 | checksum: 10c0/de96cf5e35bdf0eab3e2c853522f98ffbe9a36c37797778d2665231ec1f20a9447a7e567cb640901f89e4daaa95ae5d70c65a9e8aa2bb0019b6facbc3c0575ed 1174 | languageName: node 1175 | linkType: hard 1176 | 1177 | "minipass-collect@npm:^2.0.1": 1178 | version: 2.0.1 1179 | resolution: "minipass-collect@npm:2.0.1" 1180 | dependencies: 1181 | minipass: "npm:^7.0.3" 1182 | checksum: 10c0/5167e73f62bb74cc5019594709c77e6a742051a647fe9499abf03c71dca75515b7959d67a764bdc4f8b361cf897fbf25e2d9869ee039203ed45240f48b9aa06e 1183 | languageName: node 1184 | linkType: hard 1185 | 1186 | "minipass-fetch@npm:^4.0.0": 1187 | version: 4.0.0 1188 | resolution: "minipass-fetch@npm:4.0.0" 1189 | dependencies: 1190 | encoding: "npm:^0.1.13" 1191 | minipass: "npm:^7.0.3" 1192 | minipass-sized: "npm:^1.0.3" 1193 | minizlib: "npm:^3.0.1" 1194 | dependenciesMeta: 1195 | encoding: 1196 | optional: true 1197 | checksum: 10c0/7fa30ce7c373fb6f94c086b374fff1589fd7e78451855d2d06c2e2d9df936d131e73e952163063016592ed3081444bd8d1ea608533313b0149156ce23311da4b 1198 | languageName: node 1199 | linkType: hard 1200 | 1201 | "minipass-flush@npm:^1.0.5": 1202 | version: 1.0.5 1203 | resolution: "minipass-flush@npm:1.0.5" 1204 | dependencies: 1205 | minipass: "npm:^3.0.0" 1206 | checksum: 10c0/2a51b63feb799d2bb34669205eee7c0eaf9dce01883261a5b77410c9408aa447e478efd191b4de6fc1101e796ff5892f8443ef20d9544385819093dbb32d36bd 1207 | languageName: node 1208 | linkType: hard 1209 | 1210 | "minipass-pipeline@npm:^1.2.4": 1211 | version: 1.2.4 1212 | resolution: "minipass-pipeline@npm:1.2.4" 1213 | dependencies: 1214 | minipass: "npm:^3.0.0" 1215 | checksum: 10c0/cbda57cea20b140b797505dc2cac71581a70b3247b84480c1fed5ca5ba46c25ecc25f68bfc9e6dcb1a6e9017dab5c7ada5eab73ad4f0a49d84e35093e0c643f2 1216 | languageName: node 1217 | linkType: hard 1218 | 1219 | "minipass-sized@npm:^1.0.3": 1220 | version: 1.0.3 1221 | resolution: "minipass-sized@npm:1.0.3" 1222 | dependencies: 1223 | minipass: "npm:^3.0.0" 1224 | checksum: 10c0/298f124753efdc745cfe0f2bdfdd81ba25b9f4e753ca4a2066eb17c821f25d48acea607dfc997633ee5bf7b6dfffb4eee4f2051eb168663f0b99fad2fa4829cb 1225 | languageName: node 1226 | linkType: hard 1227 | 1228 | "minipass@npm:^3.0.0": 1229 | version: 3.3.6 1230 | resolution: "minipass@npm:3.3.6" 1231 | dependencies: 1232 | yallist: "npm:^4.0.0" 1233 | checksum: 10c0/a114746943afa1dbbca8249e706d1d38b85ed1298b530f5808ce51f8e9e941962e2a5ad2e00eae7dd21d8a4aae6586a66d4216d1a259385e9d0358f0c1eba16c 1234 | languageName: node 1235 | linkType: hard 1236 | 1237 | "minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3, minipass@npm:^7.0.4, minipass@npm:^7.1.2": 1238 | version: 7.1.2 1239 | resolution: "minipass@npm:7.1.2" 1240 | checksum: 10c0/b0fd20bb9fb56e5fa9a8bfac539e8915ae07430a619e4b86ff71f5fc757ef3924b23b2c4230393af1eda647ed3d75739e4e0acb250a6b1eb277cf7f8fe449557 1241 | languageName: node 1242 | linkType: hard 1243 | 1244 | "minizlib@npm:^3.0.1": 1245 | version: 3.0.2 1246 | resolution: "minizlib@npm:3.0.2" 1247 | dependencies: 1248 | minipass: "npm:^7.1.2" 1249 | checksum: 10c0/9f3bd35e41d40d02469cb30470c55ccc21cae0db40e08d1d0b1dff01cc8cc89a6f78e9c5d2b7c844e485ec0a8abc2238111213fdc5b2038e6d1012eacf316f78 1250 | languageName: node 1251 | linkType: hard 1252 | 1253 | "mkdirp@npm:^3.0.1": 1254 | version: 3.0.1 1255 | resolution: "mkdirp@npm:3.0.1" 1256 | bin: 1257 | mkdirp: dist/cjs/src/bin.js 1258 | checksum: 10c0/9f2b975e9246351f5e3a40dcfac99fcd0baa31fbfab615fe059fb11e51f10e4803c63de1f384c54d656e4db31d000e4767e9ef076a22e12a641357602e31d57d 1259 | languageName: node 1260 | linkType: hard 1261 | 1262 | "mrmime@npm:^2.0.0": 1263 | version: 2.0.1 1264 | resolution: "mrmime@npm:2.0.1" 1265 | checksum: 10c0/af05afd95af202fdd620422f976ad67dc18e6ee29beb03dd1ce950ea6ef664de378e44197246df4c7cdd73d47f2e7143a6e26e473084b9e4aa2095c0ad1e1761 1266 | languageName: node 1267 | linkType: hard 1268 | 1269 | "ms@npm:^2.1.3": 1270 | version: 2.1.3 1271 | resolution: "ms@npm:2.1.3" 1272 | checksum: 10c0/d924b57e7312b3b63ad21fc5b3dc0af5e78d61a1fc7cfb5457edaf26326bf62be5307cc87ffb6862ef1c2b33b0233cdb5d4f01c4c958cc0d660948b65a287a48 1273 | languageName: node 1274 | linkType: hard 1275 | 1276 | "nanoid@npm:^3.3.11": 1277 | version: 3.3.11 1278 | resolution: "nanoid@npm:3.3.11" 1279 | bin: 1280 | nanoid: bin/nanoid.cjs 1281 | checksum: 10c0/40e7f70b3d15f725ca072dfc4f74e81fcf1fbb02e491cf58ac0c79093adc9b0a73b152bcde57df4b79cd097e13023d7504acb38404a4da7bc1cd8e887b82fe0b 1282 | languageName: node 1283 | linkType: hard 1284 | 1285 | "negotiator@npm:^1.0.0": 1286 | version: 1.0.0 1287 | resolution: "negotiator@npm:1.0.0" 1288 | checksum: 10c0/4c559dd52669ea48e1914f9d634227c561221dd54734070791f999c52ed0ff36e437b2e07d5c1f6e32909fc625fe46491c16e4a8f0572567d4dd15c3a4fda04b 1289 | languageName: node 1290 | linkType: hard 1291 | 1292 | "node-gyp@npm:latest": 1293 | version: 11.0.0 1294 | resolution: "node-gyp@npm:11.0.0" 1295 | dependencies: 1296 | env-paths: "npm:^2.2.0" 1297 | exponential-backoff: "npm:^3.1.1" 1298 | glob: "npm:^10.3.10" 1299 | graceful-fs: "npm:^4.2.6" 1300 | make-fetch-happen: "npm:^14.0.3" 1301 | nopt: "npm:^8.0.0" 1302 | proc-log: "npm:^5.0.0" 1303 | semver: "npm:^7.3.5" 1304 | tar: "npm:^7.4.3" 1305 | which: "npm:^5.0.0" 1306 | bin: 1307 | node-gyp: bin/node-gyp.js 1308 | checksum: 10c0/a3b885bbee2d271f1def32ba2e30ffcf4562a3db33af06b8b365e053153e2dd2051b9945783c3c8e852d26a0f20f65b251c7e83361623383a99635c0280ee573 1309 | languageName: node 1310 | linkType: hard 1311 | 1312 | "nopt@npm:^8.0.0": 1313 | version: 8.1.0 1314 | resolution: "nopt@npm:8.1.0" 1315 | dependencies: 1316 | abbrev: "npm:^3.0.0" 1317 | bin: 1318 | nopt: bin/nopt.js 1319 | checksum: 10c0/62e9ea70c7a3eb91d162d2c706b6606c041e4e7b547cbbb48f8b3695af457dd6479904d7ace600856bf923dd8d1ed0696f06195c8c20f02ac87c1da0e1d315ef 1320 | languageName: node 1321 | linkType: hard 1322 | 1323 | "p-map@npm:^7.0.2": 1324 | version: 7.0.3 1325 | resolution: "p-map@npm:7.0.3" 1326 | checksum: 10c0/46091610da2b38ce47bcd1d8b4835a6fa4e832848a6682cf1652bc93915770f4617afc844c10a77d1b3e56d2472bb2d5622353fa3ead01a7f42b04fc8e744a5c 1327 | languageName: node 1328 | linkType: hard 1329 | 1330 | "package-json-from-dist@npm:^1.0.0": 1331 | version: 1.0.1 1332 | resolution: "package-json-from-dist@npm:1.0.1" 1333 | checksum: 10c0/62ba2785eb655fec084a257af34dbe24292ab74516d6aecef97ef72d4897310bc6898f6c85b5cd22770eaa1ce60d55a0230e150fb6a966e3ecd6c511e23d164b 1334 | languageName: node 1335 | linkType: hard 1336 | 1337 | "path-key@npm:^3.1.0": 1338 | version: 3.1.1 1339 | resolution: "path-key@npm:3.1.1" 1340 | checksum: 10c0/748c43efd5a569c039d7a00a03b58eecd1d75f3999f5a28303d75f521288df4823bc057d8784eb72358b2895a05f29a070bc9f1f17d28226cc4e62494cc58c4c 1341 | languageName: node 1342 | linkType: hard 1343 | 1344 | "path-scurry@npm:^1.11.1": 1345 | version: 1.11.1 1346 | resolution: "path-scurry@npm:1.11.1" 1347 | dependencies: 1348 | lru-cache: "npm:^10.2.0" 1349 | minipass: "npm:^5.0.0 || ^6.0.2 || ^7.0.0" 1350 | checksum: 10c0/32a13711a2a505616ae1cc1b5076801e453e7aae6ac40ab55b388bb91b9d0547a52f5aaceff710ea400205f18691120d4431e520afbe4266b836fadede15872d 1351 | languageName: node 1352 | linkType: hard 1353 | 1354 | "pathe@npm:^2.0.3": 1355 | version: 2.0.3 1356 | resolution: "pathe@npm:2.0.3" 1357 | checksum: 10c0/c118dc5a8b5c4166011b2b70608762e260085180bb9e33e80a50dcdb1e78c010b1624f4280c492c92b05fc276715a4c357d1f9edc570f8f1b3d90b6839ebaca1 1358 | languageName: node 1359 | linkType: hard 1360 | 1361 | "picocolors@npm:^1.1.1": 1362 | version: 1.1.1 1363 | resolution: "picocolors@npm:1.1.1" 1364 | checksum: 10c0/e2e3e8170ab9d7c7421969adaa7e1b31434f789afb9b3f115f6b96d91945041ac3ceb02e9ec6fe6510ff036bcc0bf91e69a1772edc0b707e12b19c0f2d6bcf58 1365 | languageName: node 1366 | linkType: hard 1367 | 1368 | "picomatch@npm:^4.0.3": 1369 | version: 4.0.3 1370 | resolution: "picomatch@npm:4.0.3" 1371 | checksum: 10c0/9582c951e95eebee5434f59e426cddd228a7b97a0161a375aed4be244bd3fe8e3a31b846808ea14ef2c8a2527a6eeab7b3946a67d5979e81694654f939473ae2 1372 | languageName: node 1373 | linkType: hard 1374 | 1375 | "pixelmatch@npm:7.1.0": 1376 | version: 7.1.0 1377 | resolution: "pixelmatch@npm:7.1.0" 1378 | dependencies: 1379 | pngjs: "npm:^7.0.0" 1380 | bin: 1381 | pixelmatch: bin/pixelmatch 1382 | checksum: 10c0/ff069f92edaa841ac9b58b0ab74e1afa1f3b5e770eea0218c96bac1da4e752f5f6b79a0f9c4ba6b02afb955d39b8c78bcc3cc884f8122b67a1f2efbbccbe1a73 1383 | languageName: node 1384 | linkType: hard 1385 | 1386 | "playwright-core@npm:1.56.1": 1387 | version: 1.56.1 1388 | resolution: "playwright-core@npm:1.56.1" 1389 | bin: 1390 | playwright-core: cli.js 1391 | checksum: 10c0/ffd40142b99c68678b387445d5b42f1fee4ab0b65d983058c37f342e5629f9cdbdac0506ea80a0dfd41a8f9f13345bad54e9a8c35826ef66dc765f4eb3db8da7 1392 | languageName: node 1393 | linkType: hard 1394 | 1395 | "playwright@npm:^1.55.1": 1396 | version: 1.56.1 1397 | resolution: "playwright@npm:1.56.1" 1398 | dependencies: 1399 | fsevents: "npm:2.3.2" 1400 | playwright-core: "npm:1.56.1" 1401 | dependenciesMeta: 1402 | fsevents: 1403 | optional: true 1404 | bin: 1405 | playwright: cli.js 1406 | checksum: 10c0/8e9965aede86df0f4722063385748498977b219630a40a10d1b82b8bd8d4d4e9b6b65ecbfa024331a30800163161aca292fb6dd7446c531a1ad25f4155625ab4 1407 | languageName: node 1408 | linkType: hard 1409 | 1410 | "pngjs@npm:^7.0.0": 1411 | version: 7.0.0 1412 | resolution: "pngjs@npm:7.0.0" 1413 | checksum: 10c0/0d4c7a0fd476a9c33df7d0a2a73e1d56537628a668841f6995c2bca070cf30819f9254a64363266bc14ef2fee47659dd3b4f2b18eec7ab65143015139f497b38 1414 | languageName: node 1415 | linkType: hard 1416 | 1417 | "postcss@npm:^8.5.6": 1418 | version: 8.5.6 1419 | resolution: "postcss@npm:8.5.6" 1420 | dependencies: 1421 | nanoid: "npm:^3.3.11" 1422 | picocolors: "npm:^1.1.1" 1423 | source-map-js: "npm:^1.2.1" 1424 | checksum: 10c0/5127cc7c91ed7a133a1b7318012d8bfa112da9ef092dddf369ae699a1f10ebbd89b1b9f25f3228795b84585c72aabd5ced5fc11f2ba467eedf7b081a66fad024 1425 | languageName: node 1426 | linkType: hard 1427 | 1428 | "proc-log@npm:^5.0.0": 1429 | version: 5.0.0 1430 | resolution: "proc-log@npm:5.0.0" 1431 | checksum: 10c0/bbe5edb944b0ad63387a1d5b1911ae93e05ce8d0f60de1035b218cdcceedfe39dbd2c697853355b70f1a090f8f58fe90da487c85216bf9671f9499d1a897e9e3 1432 | languageName: node 1433 | linkType: hard 1434 | 1435 | "promise-retry@npm:^2.0.1": 1436 | version: 2.0.1 1437 | resolution: "promise-retry@npm:2.0.1" 1438 | dependencies: 1439 | err-code: "npm:^2.0.2" 1440 | retry: "npm:^0.12.0" 1441 | checksum: 10c0/9c7045a1a2928094b5b9b15336dcd2a7b1c052f674550df63cc3f36cd44028e5080448175b6f6ca32b642de81150f5e7b1a98b728f15cb069f2dd60ac2616b96 1442 | languageName: node 1443 | linkType: hard 1444 | 1445 | "retry@npm:^0.12.0": 1446 | version: 0.12.0 1447 | resolution: "retry@npm:0.12.0" 1448 | checksum: 10c0/59933e8501727ba13ad73ef4a04d5280b3717fd650408460c987392efe9d7be2040778ed8ebe933c5cbd63da3dcc37919c141ef8af0a54a6e4fca5a2af177bfe 1449 | languageName: node 1450 | linkType: hard 1451 | 1452 | "rollup@npm:^4.43.0": 1453 | version: 4.50.1 1454 | resolution: "rollup@npm:4.50.1" 1455 | dependencies: 1456 | "@rollup/rollup-android-arm-eabi": "npm:4.50.1" 1457 | "@rollup/rollup-android-arm64": "npm:4.50.1" 1458 | "@rollup/rollup-darwin-arm64": "npm:4.50.1" 1459 | "@rollup/rollup-darwin-x64": "npm:4.50.1" 1460 | "@rollup/rollup-freebsd-arm64": "npm:4.50.1" 1461 | "@rollup/rollup-freebsd-x64": "npm:4.50.1" 1462 | "@rollup/rollup-linux-arm-gnueabihf": "npm:4.50.1" 1463 | "@rollup/rollup-linux-arm-musleabihf": "npm:4.50.1" 1464 | "@rollup/rollup-linux-arm64-gnu": "npm:4.50.1" 1465 | "@rollup/rollup-linux-arm64-musl": "npm:4.50.1" 1466 | "@rollup/rollup-linux-loongarch64-gnu": "npm:4.50.1" 1467 | "@rollup/rollup-linux-ppc64-gnu": "npm:4.50.1" 1468 | "@rollup/rollup-linux-riscv64-gnu": "npm:4.50.1" 1469 | "@rollup/rollup-linux-riscv64-musl": "npm:4.50.1" 1470 | "@rollup/rollup-linux-s390x-gnu": "npm:4.50.1" 1471 | "@rollup/rollup-linux-x64-gnu": "npm:4.50.1" 1472 | "@rollup/rollup-linux-x64-musl": "npm:4.50.1" 1473 | "@rollup/rollup-openharmony-arm64": "npm:4.50.1" 1474 | "@rollup/rollup-win32-arm64-msvc": "npm:4.50.1" 1475 | "@rollup/rollup-win32-ia32-msvc": "npm:4.50.1" 1476 | "@rollup/rollup-win32-x64-msvc": "npm:4.50.1" 1477 | "@types/estree": "npm:1.0.8" 1478 | fsevents: "npm:~2.3.2" 1479 | dependenciesMeta: 1480 | "@rollup/rollup-android-arm-eabi": 1481 | optional: true 1482 | "@rollup/rollup-android-arm64": 1483 | optional: true 1484 | "@rollup/rollup-darwin-arm64": 1485 | optional: true 1486 | "@rollup/rollup-darwin-x64": 1487 | optional: true 1488 | "@rollup/rollup-freebsd-arm64": 1489 | optional: true 1490 | "@rollup/rollup-freebsd-x64": 1491 | optional: true 1492 | "@rollup/rollup-linux-arm-gnueabihf": 1493 | optional: true 1494 | "@rollup/rollup-linux-arm-musleabihf": 1495 | optional: true 1496 | "@rollup/rollup-linux-arm64-gnu": 1497 | optional: true 1498 | "@rollup/rollup-linux-arm64-musl": 1499 | optional: true 1500 | "@rollup/rollup-linux-loongarch64-gnu": 1501 | optional: true 1502 | "@rollup/rollup-linux-ppc64-gnu": 1503 | optional: true 1504 | "@rollup/rollup-linux-riscv64-gnu": 1505 | optional: true 1506 | "@rollup/rollup-linux-riscv64-musl": 1507 | optional: true 1508 | "@rollup/rollup-linux-s390x-gnu": 1509 | optional: true 1510 | "@rollup/rollup-linux-x64-gnu": 1511 | optional: true 1512 | "@rollup/rollup-linux-x64-musl": 1513 | optional: true 1514 | "@rollup/rollup-openharmony-arm64": 1515 | optional: true 1516 | "@rollup/rollup-win32-arm64-msvc": 1517 | optional: true 1518 | "@rollup/rollup-win32-ia32-msvc": 1519 | optional: true 1520 | "@rollup/rollup-win32-x64-msvc": 1521 | optional: true 1522 | fsevents: 1523 | optional: true 1524 | bin: 1525 | rollup: dist/bin/rollup 1526 | checksum: 10c0/2029282826d5fb4e308be261b2c28329a4d2bd34304cc3960da69fd21d5acccd0267d6770b1656ffc8f166203ef7e865b4583d5f842a519c8ef059ac71854205 1527 | languageName: node 1528 | linkType: hard 1529 | 1530 | "safer-buffer@npm:>= 2.1.2 < 3.0.0": 1531 | version: 2.1.2 1532 | resolution: "safer-buffer@npm:2.1.2" 1533 | checksum: 10c0/7e3c8b2e88a1841c9671094bbaeebd94448111dd90a81a1f606f3f67708a6ec57763b3b47f06da09fc6054193e0e6709e77325415dc8422b04497a8070fa02d4 1534 | languageName: node 1535 | linkType: hard 1536 | 1537 | "semver@npm:^7.3.5": 1538 | version: 7.6.3 1539 | resolution: "semver@npm:7.6.3" 1540 | bin: 1541 | semver: bin/semver.js 1542 | checksum: 10c0/88f33e148b210c153873cb08cfe1e281d518aaa9a666d4d148add6560db5cd3c582f3a08ccb91f38d5f379ead256da9931234ed122057f40bb5766e65e58adaf 1543 | languageName: node 1544 | linkType: hard 1545 | 1546 | "shebang-command@npm:^2.0.0": 1547 | version: 2.0.0 1548 | resolution: "shebang-command@npm:2.0.0" 1549 | dependencies: 1550 | shebang-regex: "npm:^3.0.0" 1551 | checksum: 10c0/a41692e7d89a553ef21d324a5cceb5f686d1f3c040759c50aab69688634688c5c327f26f3ecf7001ebfd78c01f3c7c0a11a7c8bfd0a8bc9f6240d4f40b224e4e 1552 | languageName: node 1553 | linkType: hard 1554 | 1555 | "shebang-regex@npm:^3.0.0": 1556 | version: 3.0.0 1557 | resolution: "shebang-regex@npm:3.0.0" 1558 | checksum: 10c0/1dbed0726dd0e1152a92696c76c7f06084eb32a90f0528d11acd764043aacf76994b2fb30aa1291a21bd019d6699164d048286309a278855ee7bec06cf6fb690 1559 | languageName: node 1560 | linkType: hard 1561 | 1562 | "siginfo@npm:^2.0.0": 1563 | version: 2.0.0 1564 | resolution: "siginfo@npm:2.0.0" 1565 | checksum: 10c0/3def8f8e516fbb34cb6ae415b07ccc5d9c018d85b4b8611e3dc6f8be6d1899f693a4382913c9ed51a06babb5201639d76453ab297d1c54a456544acf5c892e34 1566 | languageName: node 1567 | linkType: hard 1568 | 1569 | "signal-exit@npm:^4.0.1": 1570 | version: 4.1.0 1571 | resolution: "signal-exit@npm:4.1.0" 1572 | checksum: 10c0/41602dce540e46d599edba9d9860193398d135f7ff72cab629db5171516cfae628d21e7bfccde1bbfdf11c48726bc2a6d1a8fb8701125852fbfda7cf19c6aa83 1573 | languageName: node 1574 | linkType: hard 1575 | 1576 | "sirv@npm:^3.0.2": 1577 | version: 3.0.2 1578 | resolution: "sirv@npm:3.0.2" 1579 | dependencies: 1580 | "@polka/url": "npm:^1.0.0-next.24" 1581 | mrmime: "npm:^2.0.0" 1582 | totalist: "npm:^3.0.0" 1583 | checksum: 10c0/5930e4397afdb14fbae13751c3be983af4bda5c9aadec832607dc2af15a7162f7d518c71b30e83ae3644b9a24cea041543cc969e5fe2b80af6ce8ea3174b2d04 1584 | languageName: node 1585 | linkType: hard 1586 | 1587 | "smart-buffer@npm:^4.2.0": 1588 | version: 4.2.0 1589 | resolution: "smart-buffer@npm:4.2.0" 1590 | checksum: 10c0/a16775323e1404dd43fabafe7460be13a471e021637bc7889468eb45ce6a6b207261f454e4e530a19500cc962c4cc5348583520843b363f4193cee5c00e1e539 1591 | languageName: node 1592 | linkType: hard 1593 | 1594 | "socks-proxy-agent@npm:^8.0.3": 1595 | version: 8.0.5 1596 | resolution: "socks-proxy-agent@npm:8.0.5" 1597 | dependencies: 1598 | agent-base: "npm:^7.1.2" 1599 | debug: "npm:^4.3.4" 1600 | socks: "npm:^2.8.3" 1601 | checksum: 10c0/5d2c6cecba6821389aabf18728325730504bf9bb1d9e342e7987a5d13badd7a98838cc9a55b8ed3cb866ad37cc23e1086f09c4d72d93105ce9dfe76330e9d2a6 1602 | languageName: node 1603 | linkType: hard 1604 | 1605 | "socks@npm:^2.8.3": 1606 | version: 2.8.3 1607 | resolution: "socks@npm:2.8.3" 1608 | dependencies: 1609 | ip-address: "npm:^9.0.5" 1610 | smart-buffer: "npm:^4.2.0" 1611 | checksum: 10c0/d54a52bf9325165770b674a67241143a3d8b4e4c8884560c4e0e078aace2a728dffc7f70150660f51b85797c4e1a3b82f9b7aa25e0a0ceae1a243365da5c51a7 1612 | languageName: node 1613 | linkType: hard 1614 | 1615 | "source-map-js@npm:^1.2.1": 1616 | version: 1.2.1 1617 | resolution: "source-map-js@npm:1.2.1" 1618 | checksum: 10c0/7bda1fc4c197e3c6ff17de1b8b2c20e60af81b63a52cb32ec5a5d67a20a7d42651e2cb34ebe93833c5a2a084377e17455854fee3e21e7925c64a51b6a52b0faf 1619 | languageName: node 1620 | linkType: hard 1621 | 1622 | "sprintf-js@npm:^1.1.3": 1623 | version: 1.1.3 1624 | resolution: "sprintf-js@npm:1.1.3" 1625 | checksum: 10c0/09270dc4f30d479e666aee820eacd9e464215cdff53848b443964202bf4051490538e5dd1b42e1a65cf7296916ca17640aebf63dae9812749c7542ee5f288dec 1626 | languageName: node 1627 | linkType: hard 1628 | 1629 | "ssri@npm:^12.0.0": 1630 | version: 12.0.0 1631 | resolution: "ssri@npm:12.0.0" 1632 | dependencies: 1633 | minipass: "npm:^7.0.3" 1634 | checksum: 10c0/caddd5f544b2006e88fa6b0124d8d7b28208b83c72d7672d5ade44d794525d23b540f3396108c4eb9280dcb7c01f0bef50682f5b4b2c34291f7c5e211fd1417d 1635 | languageName: node 1636 | linkType: hard 1637 | 1638 | "stackback@npm:0.0.2": 1639 | version: 0.0.2 1640 | resolution: "stackback@npm:0.0.2" 1641 | checksum: 10c0/89a1416668f950236dd5ac9f9a6b2588e1b9b62b1b6ad8dff1bfc5d1a15dbf0aafc9b52d2226d00c28dffff212da464eaeebfc6b7578b9d180cef3e3782c5983 1642 | languageName: node 1643 | linkType: hard 1644 | 1645 | "std-env@npm:^3.9.0": 1646 | version: 3.9.0 1647 | resolution: "std-env@npm:3.9.0" 1648 | checksum: 10c0/4a6f9218aef3f41046c3c7ecf1f98df00b30a07f4f35c6d47b28329bc2531eef820828951c7d7b39a1c5eb19ad8a46e3ddfc7deb28f0a2f3ceebee11bab7ba50 1649 | languageName: node 1650 | linkType: hard 1651 | 1652 | "string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^4.1.0": 1653 | version: 4.2.3 1654 | resolution: "string-width@npm:4.2.3" 1655 | dependencies: 1656 | emoji-regex: "npm:^8.0.0" 1657 | is-fullwidth-code-point: "npm:^3.0.0" 1658 | strip-ansi: "npm:^6.0.1" 1659 | checksum: 10c0/1e525e92e5eae0afd7454086eed9c818ee84374bb80328fc41217ae72ff5f065ef1c9d7f72da41de40c75fa8bb3dee63d92373fd492c84260a552c636392a47b 1660 | languageName: node 1661 | linkType: hard 1662 | 1663 | "string-width@npm:^5.0.1, string-width@npm:^5.1.2": 1664 | version: 5.1.2 1665 | resolution: "string-width@npm:5.1.2" 1666 | dependencies: 1667 | eastasianwidth: "npm:^0.2.0" 1668 | emoji-regex: "npm:^9.2.2" 1669 | strip-ansi: "npm:^7.0.1" 1670 | checksum: 10c0/ab9c4264443d35b8b923cbdd513a089a60de339216d3b0ed3be3ba57d6880e1a192b70ae17225f764d7adbf5994e9bb8df253a944736c15a0240eff553c678ca 1671 | languageName: node 1672 | linkType: hard 1673 | 1674 | "strip-ansi-cjs@npm:strip-ansi@^6.0.1, strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1": 1675 | version: 6.0.1 1676 | resolution: "strip-ansi@npm:6.0.1" 1677 | dependencies: 1678 | ansi-regex: "npm:^5.0.1" 1679 | checksum: 10c0/1ae5f212a126fe5b167707f716942490e3933085a5ff6c008ab97ab2f272c8025d3aa218b7bd6ab25729ca20cc81cddb252102f8751e13482a5199e873680952 1680 | languageName: node 1681 | linkType: hard 1682 | 1683 | "strip-ansi@npm:^7.0.1": 1684 | version: 7.1.0 1685 | resolution: "strip-ansi@npm:7.1.0" 1686 | dependencies: 1687 | ansi-regex: "npm:^6.0.1" 1688 | checksum: 10c0/a198c3762e8832505328cbf9e8c8381de14a4fa50a4f9b2160138158ea88c0f5549fb50cb13c651c3088f47e63a108b34622ec18c0499b6c8c3a5ddf6b305ac4 1689 | languageName: node 1690 | linkType: hard 1691 | 1692 | "tar@npm:^7.4.3": 1693 | version: 7.4.3 1694 | resolution: "tar@npm:7.4.3" 1695 | dependencies: 1696 | "@isaacs/fs-minipass": "npm:^4.0.0" 1697 | chownr: "npm:^3.0.0" 1698 | minipass: "npm:^7.1.2" 1699 | minizlib: "npm:^3.0.1" 1700 | mkdirp: "npm:^3.0.1" 1701 | yallist: "npm:^5.0.0" 1702 | checksum: 10c0/d4679609bb2a9b48eeaf84632b6d844128d2412b95b6de07d53d8ee8baf4ca0857c9331dfa510390a0727b550fd543d4d1a10995ad86cdf078423fbb8d99831d 1703 | languageName: node 1704 | linkType: hard 1705 | 1706 | "tinybench@npm:^2.9.0": 1707 | version: 2.9.0 1708 | resolution: "tinybench@npm:2.9.0" 1709 | checksum: 10c0/c3500b0f60d2eb8db65250afe750b66d51623057ee88720b7f064894a6cb7eb93360ca824a60a31ab16dab30c7b1f06efe0795b352e37914a9d4bad86386a20c 1710 | languageName: node 1711 | linkType: hard 1712 | 1713 | "tinyexec@npm:^0.3.2": 1714 | version: 0.3.2 1715 | resolution: "tinyexec@npm:0.3.2" 1716 | checksum: 10c0/3efbf791a911be0bf0821eab37a3445c2ba07acc1522b1fa84ae1e55f10425076f1290f680286345ed919549ad67527d07281f1c19d584df3b74326909eb1f90 1717 | languageName: node 1718 | linkType: hard 1719 | 1720 | "tinyglobby@npm:^0.2.15": 1721 | version: 0.2.15 1722 | resolution: "tinyglobby@npm:0.2.15" 1723 | dependencies: 1724 | fdir: "npm:^6.5.0" 1725 | picomatch: "npm:^4.0.3" 1726 | checksum: 10c0/869c31490d0d88eedb8305d178d4c75e7463e820df5a9b9d388291daf93e8b1eb5de1dad1c1e139767e4269fe75f3b10d5009b2cc14db96ff98986920a186844 1727 | languageName: node 1728 | linkType: hard 1729 | 1730 | "tinyrainbow@npm:^3.0.3": 1731 | version: 3.0.3 1732 | resolution: "tinyrainbow@npm:3.0.3" 1733 | checksum: 10c0/1e799d35cd23cabe02e22550985a3051dc88814a979be02dc632a159c393a998628eacfc558e4c746b3006606d54b00bcdea0c39301133956d10a27aa27e988c 1734 | languageName: node 1735 | linkType: hard 1736 | 1737 | "totalist@npm:^3.0.0": 1738 | version: 3.0.1 1739 | resolution: "totalist@npm:3.0.1" 1740 | checksum: 10c0/4bb1fadb69c3edbef91c73ebef9d25b33bbf69afe1e37ce544d5f7d13854cda15e47132f3e0dc4cafe300ddb8578c77c50a65004d8b6e97e77934a69aa924863 1741 | languageName: node 1742 | linkType: hard 1743 | 1744 | "typescript@npm:^5.9.2": 1745 | version: 5.9.2 1746 | resolution: "typescript@npm:5.9.2" 1747 | bin: 1748 | tsc: bin/tsc 1749 | tsserver: bin/tsserver 1750 | checksum: 10c0/cd635d50f02d6cf98ed42de2f76289701c1ec587a363369255f01ed15aaf22be0813226bff3c53e99d971f9b540e0b3cc7583dbe05faded49b1b0bed2f638a18 1751 | languageName: node 1752 | linkType: hard 1753 | 1754 | "typescript@patch:typescript@npm%3A^5.9.2#optional!builtin": 1755 | version: 5.9.2 1756 | resolution: "typescript@patch:typescript@npm%3A5.9.2#optional!builtin::version=5.9.2&hash=5786d5" 1757 | bin: 1758 | tsc: bin/tsc 1759 | tsserver: bin/tsserver 1760 | checksum: 10c0/34d2a8e23eb8e0d1875072064d5e1d9c102e0bdce56a10a25c0b917b8aa9001a9cf5c225df12497e99da107dc379360bc138163c66b55b95f5b105b50578067e 1761 | languageName: node 1762 | linkType: hard 1763 | 1764 | "unique-filename@npm:^4.0.0": 1765 | version: 4.0.0 1766 | resolution: "unique-filename@npm:4.0.0" 1767 | dependencies: 1768 | unique-slug: "npm:^5.0.0" 1769 | checksum: 10c0/38ae681cceb1408ea0587b6b01e29b00eee3c84baee1e41fd5c16b9ed443b80fba90c40e0ba69627e30855570a34ba8b06702d4a35035d4b5e198bf5a64c9ddc 1770 | languageName: node 1771 | linkType: hard 1772 | 1773 | "unique-slug@npm:^5.0.0": 1774 | version: 5.0.0 1775 | resolution: "unique-slug@npm:5.0.0" 1776 | dependencies: 1777 | imurmurhash: "npm:^0.1.4" 1778 | checksum: 10c0/d324c5a44887bd7e105ce800fcf7533d43f29c48757ac410afd42975de82cc38ea2035c0483f4de82d186691bf3208ef35c644f73aa2b1b20b8e651be5afd293 1779 | languageName: node 1780 | linkType: hard 1781 | 1782 | "vite@npm:^6.0.0 || ^7.0.0": 1783 | version: 7.1.12 1784 | resolution: "vite@npm:7.1.12" 1785 | dependencies: 1786 | esbuild: "npm:^0.25.0" 1787 | fdir: "npm:^6.5.0" 1788 | fsevents: "npm:~2.3.3" 1789 | picomatch: "npm:^4.0.3" 1790 | postcss: "npm:^8.5.6" 1791 | rollup: "npm:^4.43.0" 1792 | tinyglobby: "npm:^0.2.15" 1793 | peerDependencies: 1794 | "@types/node": ^20.19.0 || >=22.12.0 1795 | jiti: ">=1.21.0" 1796 | less: ^4.0.0 1797 | lightningcss: ^1.21.0 1798 | sass: ^1.70.0 1799 | sass-embedded: ^1.70.0 1800 | stylus: ">=0.54.8" 1801 | sugarss: ^5.0.0 1802 | terser: ^5.16.0 1803 | tsx: ^4.8.1 1804 | yaml: ^2.4.2 1805 | dependenciesMeta: 1806 | fsevents: 1807 | optional: true 1808 | peerDependenciesMeta: 1809 | "@types/node": 1810 | optional: true 1811 | jiti: 1812 | optional: true 1813 | less: 1814 | optional: true 1815 | lightningcss: 1816 | optional: true 1817 | sass: 1818 | optional: true 1819 | sass-embedded: 1820 | optional: true 1821 | stylus: 1822 | optional: true 1823 | sugarss: 1824 | optional: true 1825 | terser: 1826 | optional: true 1827 | tsx: 1828 | optional: true 1829 | yaml: 1830 | optional: true 1831 | bin: 1832 | vite: bin/vite.js 1833 | checksum: 10c0/cef4d4b4a84e663e09b858964af36e916892ac8540068df42a05ced637ceeae5e9ef71c72d54f3cfc1f3c254af16634230e221b6e2327c2a66d794bb49203262 1834 | languageName: node 1835 | linkType: hard 1836 | 1837 | "vitest@npm:^4.0.1": 1838 | version: 4.0.2 1839 | resolution: "vitest@npm:4.0.2" 1840 | dependencies: 1841 | "@vitest/expect": "npm:4.0.2" 1842 | "@vitest/mocker": "npm:4.0.2" 1843 | "@vitest/pretty-format": "npm:4.0.2" 1844 | "@vitest/runner": "npm:4.0.2" 1845 | "@vitest/snapshot": "npm:4.0.2" 1846 | "@vitest/spy": "npm:4.0.2" 1847 | "@vitest/utils": "npm:4.0.2" 1848 | debug: "npm:^4.4.3" 1849 | es-module-lexer: "npm:^1.7.0" 1850 | expect-type: "npm:^1.2.2" 1851 | magic-string: "npm:^0.30.19" 1852 | pathe: "npm:^2.0.3" 1853 | picomatch: "npm:^4.0.3" 1854 | std-env: "npm:^3.9.0" 1855 | tinybench: "npm:^2.9.0" 1856 | tinyexec: "npm:^0.3.2" 1857 | tinyglobby: "npm:^0.2.15" 1858 | tinyrainbow: "npm:^3.0.3" 1859 | vite: "npm:^6.0.0 || ^7.0.0" 1860 | why-is-node-running: "npm:^2.3.0" 1861 | peerDependencies: 1862 | "@edge-runtime/vm": "*" 1863 | "@types/debug": ^4.1.12 1864 | "@types/node": ^20.0.0 || ^22.0.0 || >=24.0.0 1865 | "@vitest/browser-playwright": 4.0.2 1866 | "@vitest/browser-preview": 4.0.2 1867 | "@vitest/browser-webdriverio": 4.0.2 1868 | "@vitest/ui": 4.0.2 1869 | happy-dom: "*" 1870 | jsdom: "*" 1871 | peerDependenciesMeta: 1872 | "@edge-runtime/vm": 1873 | optional: true 1874 | "@types/debug": 1875 | optional: true 1876 | "@types/node": 1877 | optional: true 1878 | "@vitest/browser-playwright": 1879 | optional: true 1880 | "@vitest/browser-preview": 1881 | optional: true 1882 | "@vitest/browser-webdriverio": 1883 | optional: true 1884 | "@vitest/ui": 1885 | optional: true 1886 | happy-dom: 1887 | optional: true 1888 | jsdom: 1889 | optional: true 1890 | bin: 1891 | vitest: vitest.mjs 1892 | checksum: 10c0/965d2ad3e3f8d1dc4899ceafce9f81581b54df00df5c36e307d576dd54315223e20ab93fe16a0ee5a47c33696ed72b55b6289bee7e54915d74a48631f61a34fd 1893 | languageName: node 1894 | linkType: hard 1895 | 1896 | "which@npm:^2.0.1": 1897 | version: 2.0.2 1898 | resolution: "which@npm:2.0.2" 1899 | dependencies: 1900 | isexe: "npm:^2.0.0" 1901 | bin: 1902 | node-which: ./bin/node-which 1903 | checksum: 10c0/66522872a768b60c2a65a57e8ad184e5372f5b6a9ca6d5f033d4b0dc98aff63995655a7503b9c0a2598936f532120e81dd8cc155e2e92ed662a2b9377cc4374f 1904 | languageName: node 1905 | linkType: hard 1906 | 1907 | "which@npm:^5.0.0": 1908 | version: 5.0.0 1909 | resolution: "which@npm:5.0.0" 1910 | dependencies: 1911 | isexe: "npm:^3.1.1" 1912 | bin: 1913 | node-which: bin/which.js 1914 | checksum: 10c0/e556e4cd8b7dbf5df52408c9a9dd5ac6518c8c5267c8953f5b0564073c66ed5bf9503b14d876d0e9c7844d4db9725fb0dcf45d6e911e17e26ab363dc3965ae7b 1915 | languageName: node 1916 | linkType: hard 1917 | 1918 | "why-is-node-running@npm:^2.3.0": 1919 | version: 2.3.0 1920 | resolution: "why-is-node-running@npm:2.3.0" 1921 | dependencies: 1922 | siginfo: "npm:^2.0.0" 1923 | stackback: "npm:0.0.2" 1924 | bin: 1925 | why-is-node-running: cli.js 1926 | checksum: 10c0/1cde0b01b827d2cf4cb11db962f3958b9175d5d9e7ac7361d1a7b0e2dc6069a263e69118bd974c4f6d0a890ef4eedfe34cf3d5167ec14203dbc9a18620537054 1927 | languageName: node 1928 | linkType: hard 1929 | 1930 | "wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": 1931 | version: 7.0.0 1932 | resolution: "wrap-ansi@npm:7.0.0" 1933 | dependencies: 1934 | ansi-styles: "npm:^4.0.0" 1935 | string-width: "npm:^4.1.0" 1936 | strip-ansi: "npm:^6.0.0" 1937 | checksum: 10c0/d15fc12c11e4cbc4044a552129ebc75ee3f57aa9c1958373a4db0292d72282f54373b536103987a4a7594db1ef6a4f10acf92978f79b98c49306a4b58c77d4da 1938 | languageName: node 1939 | linkType: hard 1940 | 1941 | "wrap-ansi@npm:^8.1.0": 1942 | version: 8.1.0 1943 | resolution: "wrap-ansi@npm:8.1.0" 1944 | dependencies: 1945 | ansi-styles: "npm:^6.1.0" 1946 | string-width: "npm:^5.0.1" 1947 | strip-ansi: "npm:^7.0.1" 1948 | checksum: 10c0/138ff58a41d2f877eae87e3282c0630fc2789012fc1af4d6bd626eeb9a2f9a65ca92005e6e69a75c7b85a68479fe7443c7dbe1eb8fbaa681a4491364b7c55c60 1949 | languageName: node 1950 | linkType: hard 1951 | 1952 | "ws@npm:^8.18.3": 1953 | version: 8.18.3 1954 | resolution: "ws@npm:8.18.3" 1955 | peerDependencies: 1956 | bufferutil: ^4.0.1 1957 | utf-8-validate: ">=5.0.2" 1958 | peerDependenciesMeta: 1959 | bufferutil: 1960 | optional: true 1961 | utf-8-validate: 1962 | optional: true 1963 | checksum: 10c0/eac918213de265ef7cb3d4ca348b891a51a520d839aa51cdb8ca93d4fa7ff9f6ccb339ccee89e4075324097f0a55157c89fa3f7147bde9d8d7e90335dc087b53 1964 | languageName: node 1965 | linkType: hard 1966 | 1967 | "yallist@npm:^4.0.0": 1968 | version: 4.0.0 1969 | resolution: "yallist@npm:4.0.0" 1970 | checksum: 10c0/2286b5e8dbfe22204ab66e2ef5cc9bbb1e55dfc873bbe0d568aa943eb255d131890dfd5bf243637273d31119b870f49c18fcde2c6ffbb7a7a092b870dc90625a 1971 | languageName: node 1972 | linkType: hard 1973 | 1974 | "yallist@npm:^5.0.0": 1975 | version: 5.0.0 1976 | resolution: "yallist@npm:5.0.0" 1977 | checksum: 10c0/a499c81ce6d4a1d260d4ea0f6d49ab4da09681e32c3f0472dee16667ed69d01dae63a3b81745a24bd78476ec4fcf856114cb4896ace738e01da34b2c42235416 1978 | languageName: node 1979 | linkType: hard 1980 | --------------------------------------------------------------------------------