├── .gitattributes ├── .github ├── FUNDING.yml └── workflows │ ├── ci.yml │ ├── close-stale-issues.yml │ └── publish.yml ├── .gitignore ├── .husky └── pre-commit ├── .vscode ├── extensions.json └── settings.json ├── .yarnrc.yml ├── LICENSE ├── README.md ├── biome.json ├── package.json ├── packages └── react-fit │ ├── LICENSE │ ├── README.md │ ├── package.json │ ├── src │ ├── Fit.spec.tsx │ ├── Fit.tsx │ ├── __snapshots__ │ │ └── Fit.spec.tsx.snap │ └── index.ts │ ├── tsconfig.build.json │ ├── tsconfig.json │ ├── vitest.config.ts │ └── vitest.setup.ts ├── test ├── .gitignore ├── ElementWithPopover.tsx ├── Test.css ├── Test.tsx ├── index.html ├── index.tsx ├── package.json ├── tsconfig.json └── vite.config.ts └── yarn.lock /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto eol=lf 3 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: wojtekmaj 2 | -------------------------------------------------------------------------------- /.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@v4 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@v4 47 | with: 48 | node-version: '22' 49 | 50 | - name: Enable Corepack 51 | run: corepack enable 52 | 53 | - name: Install dependencies 54 | run: yarn --immutable 55 | 56 | - name: Build package 57 | run: yarn build 58 | 59 | - name: Run type checking 60 | run: yarn tsc 61 | 62 | format: 63 | name: Formatting 64 | runs-on: ubuntu-24.04-arm 65 | 66 | steps: 67 | - name: Checkout 68 | uses: actions/checkout@v4 69 | 70 | - name: Setup Biome 71 | uses: biomejs/setup-biome@v2 72 | 73 | - name: Run formatting 74 | run: biome format 75 | 76 | unit: 77 | name: Unit tests 78 | runs-on: ubuntu-24.04-arm 79 | 80 | steps: 81 | - name: Checkout 82 | uses: actions/checkout@v4 83 | 84 | - name: Cache Yarn cache 85 | uses: actions/cache@v4 86 | env: 87 | cache-name: yarn-cache 88 | with: 89 | path: ~/.yarn/berry/cache 90 | key: ${{ runner.os }}-${{ env.cache-name }}-${{ hashFiles('**/yarn.lock') }} 91 | restore-keys: | 92 | ${{ runner.os }}-${{ env.cache-name }} 93 | 94 | - name: Use Node.js 95 | uses: actions/setup-node@v4 96 | with: 97 | node-version: '22' 98 | 99 | - name: Enable Corepack 100 | run: corepack enable 101 | 102 | - name: Install dependencies 103 | run: yarn --immutable 104 | 105 | - name: Run tests 106 | run: yarn unit 107 | -------------------------------------------------------------------------------- /.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 | -------------------------------------------------------------------------------- /.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@v4 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@v4 34 | with: 35 | node-version: '22' 36 | registry-url: 'https://registry.npmjs.org' 37 | 38 | - name: Enable Corepack 39 | run: corepack enable 40 | 41 | - name: Install dependencies 42 | run: yarn --immutable 43 | 44 | - name: Publish with latest tag 45 | if: github.event.release.prelease == false 46 | run: yarn npm publish --tag latest --provenance 47 | working-directory: packages/react-fit 48 | env: 49 | YARN_NPM_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} 50 | 51 | - name: Publish with next tag 52 | if: github.event.release.prelease == true 53 | run: yarn npm publish --tag next --provenance 54 | working-directory: packages/react-fit 55 | env: 56 | YARN_NPM_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} 57 | -------------------------------------------------------------------------------- /.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 | coverage 22 | dist 23 | node_modules 24 | playwright-report 25 | test-results 26 | package.tgz 27 | 28 | # Logs 29 | npm-debug.log 30 | yarn-error.log 31 | 32 | # .env files 33 | **/.env 34 | **/.env.* 35 | !**/.env.example 36 | -------------------------------------------------------------------------------- /.husky/pre-commit: -------------------------------------------------------------------------------- 1 | yarn format --staged --no-errors-on-unmatched --write 2 | -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": ["biomejs.biome"], 3 | "unwantedRecommendations": ["dbaeumer.jshint", "dbaeumer.vscode-eslint", "esbenp.prettier-vscode"] 4 | } 5 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "editor.defaultFormatter": "biomejs.biome", 3 | "editor.formatOnSave": true, 4 | "search.exclude": { 5 | "**/.yarn": true 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /.yarnrc.yml: -------------------------------------------------------------------------------- 1 | logFilters: 2 | - code: YN0076 3 | level: discard 4 | 5 | nodeLinker: node-modules 6 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018–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 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | packages/react-fit/README.md -------------------------------------------------------------------------------- /biome.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://biomejs.dev/schemas/2.0.0/schema.json", 3 | "files": { 4 | "includes": [ 5 | "**", 6 | "!**/.tsimp", 7 | "!**/.yarn", 8 | "!**/coverage", 9 | "!**/dist", 10 | "!**/.pnp.cjs", 11 | "!**/.pnp.loader.mjs" 12 | ] 13 | }, 14 | "formatter": { 15 | "lineWidth": 100, 16 | "indentStyle": "space" 17 | }, 18 | "linter": { 19 | "rules": { 20 | "complexity": { 21 | "noUselessSwitchCase": "off" 22 | }, 23 | "correctness": { 24 | "noUnusedImports": "warn", 25 | "noUnusedVariables": { 26 | "level": "warn", 27 | "options": { 28 | "ignoreRestSiblings": true 29 | } 30 | } 31 | }, 32 | "suspicious": { 33 | "noConsole": "warn" 34 | } 35 | } 36 | }, 37 | "css": { 38 | "formatter": { 39 | "quoteStyle": "single" 40 | } 41 | }, 42 | "javascript": { 43 | "formatter": { 44 | "quoteStyle": "single" 45 | } 46 | }, 47 | "overrides": [ 48 | { 49 | "includes": ["**/vite.config.ts"], 50 | "linter": { 51 | "rules": { 52 | "suspicious": { 53 | "noConsole": "off" 54 | } 55 | } 56 | } 57 | } 58 | ] 59 | } 60 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "react-fit-monorepo", 3 | "version": "1.0.0", 4 | "description": "react-fit monorepo", 5 | "type": "module", 6 | "workspaces": [ 7 | "packages/*", 8 | "test" 9 | ], 10 | "scripts": { 11 | "build": "yarn workspace react-fit build", 12 | "dev": "yarn workspace react-fit watch & yarn workspace test dev", 13 | "format": "yarn workspaces foreach --all run format", 14 | "lint": "yarn workspaces foreach --all run lint", 15 | "postinstall": "husky", 16 | "test": "yarn workspaces foreach --all run test", 17 | "tsc": "yarn workspaces foreach --all run tsc", 18 | "unit": "yarn workspaces foreach --all run unit" 19 | }, 20 | "devDependencies": { 21 | "husky": "^9.0.0" 22 | }, 23 | "packageManager": "yarn@4.9.1" 24 | } 25 | -------------------------------------------------------------------------------- /packages/react-fit/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018–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 | -------------------------------------------------------------------------------- /packages/react-fit/README.md: -------------------------------------------------------------------------------- 1 | [![npm](https://img.shields.io/npm/v/react-fit.svg)](https://www.npmjs.com/package/react-fit) ![downloads](https://img.shields.io/npm/dt/react-fit.svg) [![CI](https://github.com/wojtekmaj/react-fit/actions/workflows/ci.yml/badge.svg)](https://github.com/wojtekmaj/react-fit/actions) 2 | 3 | # React-Fit 4 | 5 | A component that aligns its child relatively to its parent while being aware where it may and may not fit. 6 | 7 | ## tl;dr 8 | 9 | - Install by executing `npm install react-fit` or `yarn add react-fit`. 10 | - Import by adding `import Fit from 'react-fit'`. 11 | - Do stuff with it! 12 | ```tsx 13 | function ElementWithChild() { 14 | return ( 15 | 16 | 17 | 18 | 19 | 20 | ); 21 | } 22 | ``` 23 | 24 | ## Getting started 25 | 26 | ### Compatibility 27 | 28 | Your project needs to use React 16.8 or later. 29 | 30 | ### Installation 31 | 32 | Add React-Fit to your project by executing `npm install react-fit` or `yarn add react-fit`. 33 | 34 | ## How does it work? 35 | 36 | 1. By default, the element provided to `` as a child is displayed below its parent, aligned to the left. 37 | 2. If the element can't fit in this position and collides with bottom and/or right border of the container, `` checks if there's more space for the element on the other side(s) of the axis/axes the collision(s) has been detected on. If so, the element is moved above its parent and/or aligned to the right, depending on the collision axis. 38 | 3. If the element still can't fit where it's placed, `` decreases the element's size. If `min-width`/`min-height` are provided, they will be respected. 39 | 40 | ## Positioning the element 41 | 42 | ### Vertical axis (default) 43 | 44 | By default, the element is displayed below its parent, aligned to the left of its parent. 45 | 46 | ``` 47 | ┌────────────┐ 48 | │ Parent │ 49 | ├────────────┴────────────┐ 50 | │ │ 51 | │ Child │ 52 | │ │ 53 | └─────────────────────────┘ 54 | ``` 55 | 56 | - To display the element above: provide `invertAxis` flag. 57 | - To align the element to the right: provide `invertSecondaryAxis` flag. 58 | 59 | ### Horizontal axis (`mainAxis="x"`) 60 | 61 | By providing `mainAxis="x"` to ``, the element is displayed on the right of its parent, aligned to the top of its parent. 62 | 63 | ``` 64 | ┌────────────┬─────────────────────────┐ 65 | │ Parent │ │ 66 | └────────────┤ Child │ 67 | │ │ 68 | └─────────────────────────┘ 69 | ``` 70 | 71 | - To display the element on the left: provide `invertAxis` flag. 72 | - To align the element to the bottom: provide `invertSecondaryAxis` flag. 73 | 74 | ### Spacing 75 | 76 | By default, React-Fit leaves 8px of space between its child and the borders of the container. 77 | 78 | ``` 79 | ┌──────────────────────────────────────────┐ 80 | │ ┌────────────┐ │ 81 | │ │ Parent │ │ 82 | │ ├────────────┴────────────┐ │ 83 | │ │ │ │ 84 | │ │ Child │ │ 85 | │ │ │ │ 86 | │ └─────────────────────────┘ │ 87 | └──────────────────────────────────────────┘ 88 | ``` 89 | 90 | If you wish to change this spacing, you can provide `spacing` to ``. For example, if you wish for the child to touch the borders of the container, decrease the spacing by providing `spacing={0}` to ``. 91 | 92 | ``` 93 | ┌──────────────────────────────────────────┐ 94 | │ ┌────────────┐ │ 95 | │ │ Parent │ │ 96 | │ ├────────────┴────────────┐ │ 97 | │ │ │ │ 98 | │ │ Child │ │ 99 | │ │ (now higher) │ │ 100 | │ │ │ │ 101 | └─┴─────────────────────────┴──────────────┘ 102 | ``` 103 | 104 | You can also provide different spacing for each side by providing an object, for example `spacing={{ top: 10, bottom: 20, left: 30, right: 40 }}`, to ``. **Note:** Memoize the object or define it outside render function to avoid unnecessary re-renders. 105 | 106 | ## Styling 107 | 108 | To avoid unnecessary style recalculations that may be caused by React-Fit applying the styles needed to make it work properly, the element should have absolute position, and its parent element should have relative or absolute position. 109 | 110 | ## License 111 | 112 | The MIT License. 113 | 114 | ## Author 115 | 116 | 117 | 118 | 121 | 124 | 125 |
119 | Wojciech Maj 120 | 122 | Wojciech Maj 123 |
126 | -------------------------------------------------------------------------------- /packages/react-fit/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "react-fit", 3 | "version": "3.0.0", 4 | "description": "Fit a popover element on the screen.", 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 | "prepack": "yarn clean && yarn build", 20 | "test": "yarn lint && yarn tsc && yarn format && yarn unit", 21 | "tsc": "tsc", 22 | "unit": "vitest", 23 | "watch": "yarn build --watch" 24 | }, 25 | "keywords": [ 26 | "react", 27 | "collision", 28 | "collision-detection", 29 | "position" 30 | ], 31 | "author": { 32 | "name": "Wojciech Maj", 33 | "email": "kontakt@wojtekmaj.pl" 34 | }, 35 | "license": "MIT", 36 | "dependencies": { 37 | "detect-element-overflow": "^2.0.0", 38 | "warning": "^4.0.0" 39 | }, 40 | "devDependencies": { 41 | "@biomejs/biome": "2.0.0", 42 | "@testing-library/dom": "^10.0.0", 43 | "@testing-library/jest-dom": "^6.0.0", 44 | "@testing-library/react": "^16.0.0", 45 | "@types/react": "*", 46 | "@types/react-dom": "*", 47 | "@types/warning": "^3.0.0", 48 | "happy-dom": "^15.10.2", 49 | "react": "^18.2.0", 50 | "react-dom": "^18.2.0", 51 | "typescript": "^5.5.2", 52 | "vitest": "^3.2.3" 53 | }, 54 | "peerDependencies": { 55 | "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", 56 | "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", 57 | "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" 58 | }, 59 | "peerDependenciesMeta": { 60 | "@types/react": { 61 | "optional": true 62 | } 63 | }, 64 | "publishConfig": { 65 | "access": "public", 66 | "provenance": true 67 | }, 68 | "files": [ 69 | "dist", 70 | "src" 71 | ], 72 | "repository": { 73 | "type": "git", 74 | "url": "git+https://github.com/wojtekmaj/react-fit.git", 75 | "directory": "packages/react-fit" 76 | }, 77 | "funding": "https://github.com/wojtekmaj/react-fit?sponsor=1" 78 | } 79 | -------------------------------------------------------------------------------- /packages/react-fit/src/Fit.spec.tsx: -------------------------------------------------------------------------------- 1 | import { describe, expect, it } from 'vitest'; 2 | import { render } from '@testing-library/react'; 3 | 4 | import Fit from './Fit.js'; 5 | 6 | describe(' component', () => { 7 | it('renders properly', () => { 8 | const { container } = render( 9 | 10 | 11 | , 12 | ); 13 | 14 | expect(container).toMatchSnapshot(); 15 | }); 16 | 17 | it('renders properly given mainAxis = "x"', () => { 18 | const { container } = render( 19 | 20 | 21 | , 22 | ); 23 | 24 | expect(container).toMatchSnapshot(); 25 | }); 26 | 27 | it('renders properly given mainAxis = "y"', () => { 28 | const { container } = render( 29 | 30 | 31 | , 32 | ); 33 | 34 | expect(container).toMatchSnapshot(); 35 | }); 36 | 37 | it('renders properly given React component as child', () => { 38 | function Child() { 39 | return ; 40 | } 41 | 42 | const { container } = render( 43 | 44 | 45 | , 46 | ); 47 | 48 | expect(container).toMatchSnapshot(); 49 | }); 50 | 51 | it('renders properly given element with ref prop as child', () => { 52 | const { container } = render( 53 | 54 | { 56 | // Intentionally empty 57 | }} 58 | /> 59 | , 60 | ); 61 | 62 | expect(container).toMatchSnapshot(); 63 | }); 64 | }); 65 | -------------------------------------------------------------------------------- /packages/react-fit/src/Fit.tsx: -------------------------------------------------------------------------------- 1 | 'use client'; 2 | 3 | import { Children, useCallback, useEffect, useRef } from 'react'; 4 | import detectElementOverflow from 'detect-element-overflow'; 5 | import warning from 'warning'; 6 | 7 | type SpacingKeys = 'bottom' | 'left' | 'right' | 'top'; 8 | 9 | type Spacing = number | { [key in SpacingKeys]: number }; 10 | 11 | type AlignAxisOptions = { 12 | axis: 'x' | 'y'; 13 | container: HTMLElement; 14 | element: HTMLElement; 15 | invertAxis?: boolean; 16 | scrollContainer: HTMLElement; 17 | secondary?: boolean; 18 | spacing: Spacing; 19 | }; 20 | 21 | type AlignBothAxisOptions = AlignAxisOptions & { 22 | invertSecondaryAxis?: boolean; 23 | }; 24 | 25 | type SizeProperty = 'width' | 'height'; 26 | type StartProperty = 'left' | 'top'; 27 | type EndProperty = 'right' | 'bottom'; 28 | 29 | type ClientSizeProperty = 'clientWidth' | 'clientHeight'; 30 | type MinSizeProperty = 'min-width' | 'min-height'; 31 | type OffsetProperty = 'offsetWidth' | 'offsetHeight'; 32 | type OverflowProperty = 'overflowLeft' | 'overflowRight' | 'overflowTop' | 'overflowBottom'; 33 | type ScrollProperty = 'scrollLeft' | 'scrollTop'; 34 | 35 | const isBrowser = typeof window !== 'undefined'; 36 | 37 | const isMutationObserverSupported = isBrowser && 'MutationObserver' in window; 38 | 39 | function capitalize(string: T): Capitalize { 40 | return (string.charAt(0).toUpperCase() + string.slice(1)) as Capitalize; 41 | } 42 | 43 | function findScrollContainer(element: HTMLElement): HTMLElement { 44 | let parent = element.parentElement; 45 | while (parent) { 46 | const { overflow } = window.getComputedStyle(parent); 47 | if (overflow.split(' ').every((o) => o === 'auto' || o === 'scroll')) { 48 | return parent; 49 | } 50 | parent = parent.parentElement; 51 | } 52 | 53 | return document.documentElement; 54 | } 55 | 56 | function alignAxis({ 57 | axis, 58 | container, 59 | element, 60 | invertAxis, 61 | scrollContainer, 62 | secondary, 63 | spacing, 64 | }: AlignAxisOptions) { 65 | const style = window.getComputedStyle(element); 66 | 67 | const parent = container.parentElement; 68 | 69 | if (!parent) { 70 | return; 71 | } 72 | 73 | const scrollContainerCollisions = detectElementOverflow(parent, scrollContainer); 74 | const documentCollisions = detectElementOverflow(parent, document.documentElement); 75 | 76 | const isX = axis === 'x'; 77 | const startProperty: StartProperty = isX ? 'left' : 'top'; 78 | const endProperty: EndProperty = isX ? 'right' : 'bottom'; 79 | const sizeProperty: SizeProperty = isX ? 'width' : 'height'; 80 | const overflowStartProperty: OverflowProperty = `overflow${capitalize(startProperty)}` as const; 81 | const overflowEndProperty: OverflowProperty = `overflow${capitalize(endProperty)}` as const; 82 | const scrollProperty: ScrollProperty = `scroll${capitalize(startProperty)}` as const; 83 | const uppercasedSizeProperty = capitalize(sizeProperty); 84 | const offsetSizeProperty: OffsetProperty = `offset${uppercasedSizeProperty}`; 85 | const clientSizeProperty: ClientSizeProperty = `client${uppercasedSizeProperty}`; 86 | const minSizeProperty: MinSizeProperty = `min-${sizeProperty}`; 87 | 88 | const scrollbarWidth = scrollContainer[offsetSizeProperty] - scrollContainer[clientSizeProperty]; 89 | 90 | const startSpacing = typeof spacing === 'object' ? spacing[startProperty] : spacing; 91 | let availableStartSpace = 92 | -Math.max( 93 | scrollContainerCollisions[overflowStartProperty], 94 | documentCollisions[overflowStartProperty] + document.documentElement[scrollProperty], 95 | ) - startSpacing; 96 | 97 | const endSpacing = typeof spacing === 'object' ? spacing[endProperty] : spacing; 98 | let availableEndSpace = 99 | -Math.max( 100 | scrollContainerCollisions[overflowEndProperty], 101 | documentCollisions[overflowEndProperty] - document.documentElement[scrollProperty], 102 | ) - 103 | endSpacing - 104 | scrollbarWidth; 105 | 106 | if (secondary) { 107 | availableStartSpace += parent[clientSizeProperty]; 108 | availableEndSpace += parent[clientSizeProperty]; 109 | } 110 | 111 | const offsetSize = element[offsetSizeProperty]; 112 | 113 | function displayStart() { 114 | element.style[startProperty] = 'auto'; 115 | element.style[endProperty] = secondary ? '0' : '100%'; 116 | } 117 | 118 | function displayEnd() { 119 | element.style[startProperty] = secondary ? '0' : '100%'; 120 | element.style[endProperty] = 'auto'; 121 | } 122 | 123 | function displayIfFits(availableSpace: number, display: () => void) { 124 | const fits = offsetSize <= availableSpace; 125 | if (fits) { 126 | display(); 127 | } 128 | return fits; 129 | } 130 | 131 | function displayStartIfFits() { 132 | return displayIfFits(availableStartSpace, displayStart); 133 | } 134 | 135 | function displayEndIfFits() { 136 | return displayIfFits(availableEndSpace, displayEnd); 137 | } 138 | 139 | function displayWhereverShrinkedFits() { 140 | const moreSpaceStart = availableStartSpace > availableEndSpace; 141 | 142 | const rawMinSize = style.getPropertyValue(minSizeProperty); 143 | const minSize = rawMinSize ? Number.parseInt(rawMinSize, 10) : null; 144 | 145 | function shrinkToSize(size: number) { 146 | warning( 147 | !minSize || size >= minSize, 148 | `'s child will not fit anywhere with its current ${minSizeProperty} of ${minSize}px.`, 149 | ); 150 | 151 | const newSize = Math.max(size, minSize || 0); 152 | warning( 153 | false, 154 | `'s child needed to have its ${sizeProperty} decreased to ${newSize}px.`, 155 | ); 156 | element.style[sizeProperty] = `${newSize}px`; 157 | } 158 | 159 | if (moreSpaceStart) { 160 | shrinkToSize(availableStartSpace); 161 | displayStart(); 162 | } else { 163 | shrinkToSize(availableEndSpace); 164 | displayEnd(); 165 | } 166 | } 167 | 168 | let fits: boolean; 169 | 170 | if (invertAxis) { 171 | fits = displayStartIfFits() || displayEndIfFits(); 172 | } else { 173 | fits = displayEndIfFits() || displayStartIfFits(); 174 | } 175 | 176 | if (!fits) { 177 | displayWhereverShrinkedFits(); 178 | } 179 | } 180 | 181 | function alignMainAxis(args: AlignAxisOptions) { 182 | alignAxis(args); 183 | } 184 | 185 | function alignSecondaryAxis(args: AlignAxisOptions) { 186 | alignAxis({ 187 | ...args, 188 | axis: args.axis === 'x' ? 'y' : 'x', 189 | secondary: true, 190 | }); 191 | } 192 | 193 | function alignBothAxis(args: AlignBothAxisOptions) { 194 | const { invertAxis, invertSecondaryAxis, ...commonArgs } = args; 195 | 196 | alignMainAxis({ 197 | ...commonArgs, 198 | invertAxis, 199 | }); 200 | 201 | alignSecondaryAxis({ 202 | ...commonArgs, 203 | invertAxis: invertSecondaryAxis, 204 | }); 205 | } 206 | 207 | export type FitProps = { 208 | children: React.ReactElement; 209 | invertAxis?: boolean; 210 | invertSecondaryAxis?: boolean; 211 | mainAxis?: 'x' | 'y'; 212 | spacing?: number | Spacing; 213 | }; 214 | 215 | export default function Fit({ 216 | children, 217 | invertAxis, 218 | invertSecondaryAxis, 219 | mainAxis = 'y', 220 | spacing = 8, 221 | }: FitProps): React.ReactElement { 222 | const container = useRef(undefined); 223 | const element = useRef(undefined); 224 | const elementWidth = useRef(undefined); 225 | const elementHeight = useRef(undefined); 226 | const scrollContainer = useRef(undefined); 227 | 228 | const fit = useCallback(() => { 229 | if (!scrollContainer.current || !container.current || !element.current) { 230 | return; 231 | } 232 | 233 | const currentElementWidth = element.current.clientWidth; 234 | const currentElementHeight = element.current.clientHeight; 235 | 236 | // No need to recalculate - already did that for current dimensions 237 | if ( 238 | elementWidth.current === currentElementWidth && 239 | elementHeight.current === currentElementHeight 240 | ) { 241 | return; 242 | } 243 | 244 | // Save the dimensions so that we know we don't need to repeat the function if unchanged 245 | elementWidth.current = currentElementWidth; 246 | elementHeight.current = currentElementHeight; 247 | 248 | const parent = container.current.parentElement; 249 | 250 | // Container was unmounted 251 | if (!parent) { 252 | return; 253 | } 254 | 255 | /** 256 | * We need to ensure that 's child has a absolute position. Otherwise, 257 | * we wouldn't be able to place the child in the correct position. 258 | */ 259 | const style = window.getComputedStyle(element.current); 260 | const { position } = style; 261 | 262 | if (position !== 'absolute') { 263 | element.current.style.position = 'absolute'; 264 | } 265 | 266 | /** 267 | * We need to ensure that 's parent has a relative or absolute position. Otherwise, 268 | * we wouldn't be able to place the child in the correct position. 269 | */ 270 | const parentStyle = window.getComputedStyle(parent); 271 | const { position: parentPosition } = parentStyle; 272 | 273 | if (parentPosition !== 'relative' && parentPosition !== 'absolute') { 274 | parent.style.position = 'relative'; 275 | } 276 | 277 | alignBothAxis({ 278 | axis: mainAxis, 279 | container: container.current, 280 | element: element.current, 281 | invertAxis, 282 | invertSecondaryAxis, 283 | scrollContainer: scrollContainer.current, 284 | spacing, 285 | }); 286 | }, [invertAxis, invertSecondaryAxis, mainAxis, spacing]); 287 | 288 | const child = Children.only(children); 289 | 290 | useEffect(() => { 291 | // biome-ignore lint/suspicious/noFocusedTests: False positive, see https://github.com/biomejs/biome/issues/6380 292 | fit(); 293 | 294 | function onMutation() { 295 | // biome-ignore lint/suspicious/noFocusedTests: False positive, see https://github.com/biomejs/biome/issues/6380 296 | fit(); 297 | } 298 | 299 | if (isMutationObserverSupported && element.current) { 300 | const mutationObserver = new MutationObserver(onMutation); 301 | 302 | mutationObserver.observe(element.current, { 303 | attributes: true, 304 | attributeFilter: ['class', 'style'], 305 | }); 306 | } 307 | }, [fit]); 308 | 309 | function assignRefs(domElement: Element | null) { 310 | if (!domElement || !(domElement instanceof HTMLElement)) { 311 | return; 312 | } 313 | 314 | element.current = domElement; 315 | scrollContainer.current = findScrollContainer(domElement); 316 | } 317 | 318 | return ( 319 | { 321 | if (!domContainer) { 322 | return; 323 | } 324 | 325 | container.current = domContainer; 326 | const domElement = domContainer?.firstElementChild; 327 | 328 | assignRefs(domElement); 329 | }} 330 | style={{ display: 'contents' }} 331 | > 332 | {child} 333 | 334 | ); 335 | } 336 | -------------------------------------------------------------------------------- /packages/react-fit/src/__snapshots__/Fit.spec.tsx.snap: -------------------------------------------------------------------------------- 1 | // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html 2 | 3 | exports[` component > renders properly 1`] = ` 4 |
7 | 10 | 13 | 14 |
15 | `; 16 | 17 | exports[` component > renders properly given React component as child 1`] = ` 18 |
21 | 24 | 27 | 28 |
29 | `; 30 | 31 | exports[` component > renders properly given element with ref prop as child 1`] = ` 32 |
35 | 38 | 41 | 42 |
43 | `; 44 | 45 | exports[` component > renders properly given mainAxis = "x" 1`] = ` 46 |
49 | 52 | 55 | 56 |
57 | `; 58 | 59 | exports[` component > renders properly given mainAxis = "y" 1`] = ` 60 |
63 | 66 | 69 | 70 |
71 | `; 72 | -------------------------------------------------------------------------------- /packages/react-fit/src/index.ts: -------------------------------------------------------------------------------- 1 | import Fit from './Fit.js'; 2 | 3 | export type { FitProps } from './Fit.js'; 4 | 5 | export { Fit }; 6 | 7 | export default Fit; 8 | -------------------------------------------------------------------------------- /packages/react-fit/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", "src/**/*.spec.tsx"] 10 | } 11 | -------------------------------------------------------------------------------- /packages/react-fit/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "declaration": true, 4 | "esModuleInterop": true, 5 | "isolatedDeclarations": true, 6 | "isolatedModules": true, 7 | "jsx": "react-jsx", 8 | "module": "nodenext", 9 | "moduleDetection": "force", 10 | "noEmit": true, 11 | "noUncheckedIndexedAccess": true, 12 | "outDir": "dist", 13 | "skipLibCheck": true, 14 | "strict": true, 15 | "target": "es2015", 16 | "verbatimModuleSyntax": true 17 | }, 18 | "exclude": ["dist"] 19 | } 20 | -------------------------------------------------------------------------------- /packages/react-fit/vitest.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vitest/config'; 2 | 3 | export default defineConfig({ 4 | test: { 5 | environment: 'happy-dom', 6 | setupFiles: 'vitest.setup.ts', 7 | watch: false, 8 | }, 9 | }); 10 | -------------------------------------------------------------------------------- /packages/react-fit/vitest.setup.ts: -------------------------------------------------------------------------------- 1 | import { afterEach } from 'vitest'; 2 | import { cleanup } from '@testing-library/react'; 3 | import '@testing-library/jest-dom/vitest'; 4 | 5 | afterEach(() => { 6 | cleanup(); 7 | }); 8 | -------------------------------------------------------------------------------- /test/.gitignore: -------------------------------------------------------------------------------- 1 | dist 2 | node_modules 3 | -------------------------------------------------------------------------------- /test/ElementWithPopover.tsx: -------------------------------------------------------------------------------- 1 | import { useId, useState } from 'react'; 2 | import clsx from 'clsx'; 3 | 4 | import Fit from 'react-fit'; 5 | 6 | type ElementWithPopoverProps = { 7 | label?: React.ReactNode; 8 | spacing?: number; 9 | } & Omit, 'children'>; 10 | 11 | export default function ElementWithPopover({ 12 | label, 13 | spacing = 10, 14 | ...otherProps 15 | }: ElementWithPopoverProps) { 16 | const propsId = useId(); 17 | const styleId = useId(); 18 | const [isOpen, setIsOpen] = useState(null); 19 | 20 | function togglePopover() { 21 | setIsOpen((prevIsOpen) => !prevIsOpen); 22 | } 23 | 24 | function renderLabel() { 25 | return ( 26 | 29 | ); 30 | } 31 | 32 | function renderPopover() { 33 | if (isOpen === null) { 34 | return null; 35 | } 36 | 37 | return ( 38 | 39 |
{ 45 | if (!ref) { 46 | return; 47 | } 48 | 49 | requestAnimationFrame(() => { 50 | const style: Record = {}; 51 | for (const prop of ['top', 'bottom', 'left', 'right'] as const) { 52 | if (ref.style[prop]) { 53 | style[prop] = ref.style[prop]; 54 | } 55 | } 56 | 57 | const el = ref.querySelector(`#${styleId}`) as HTMLElement; 58 | el.innerHTML = JSON.stringify(style, null, ' '); 59 | }); 60 | }} 61 | > 62 |
{JSON.stringify(otherProps, null, '  ')}
63 |
64 |         
65 |
66 | ); 67 | } 68 | 69 | return ( 70 |
71 | {renderLabel()} 72 | {renderPopover()} 73 |
74 | ); 75 | } 76 | -------------------------------------------------------------------------------- /test/Test.css: -------------------------------------------------------------------------------- 1 | *, 2 | *:before, 3 | *:after { 4 | box-sizing: border-box; 5 | } 6 | body { 7 | margin: 0; 8 | font-family: 'Segoe UI', Tahoma, sans-serif; 9 | } 10 | 11 | .Test { 12 | display: flex; 13 | flex-direction: column; 14 | width: 100vw; 15 | height: 100vh; 16 | } 17 | 18 | .Test input, 19 | .Test button { 20 | font: inherit; 21 | } 22 | 23 | .Test header { 24 | flex-shrink: 0; 25 | background-color: #323639; 26 | box-shadow: 0 0 8px rgba(0, 0, 0, 0.5); 27 | padding: 20px; 28 | color: white; 29 | position: relative; 30 | z-index: 1; 31 | } 32 | 33 | .Test header h1 { 34 | font-size: inherit; 35 | margin: 0; 36 | } 37 | 38 | .Test__container { 39 | flex-grow: 1; 40 | padding: 10px; 41 | overflow-y: scroll; 42 | } 43 | 44 | .Test__container__content { 45 | height: 100%; 46 | position: relative; 47 | } 48 | 49 | .Test__container .ElementWithPopover { 50 | width: 130px; 51 | height: 42px; 52 | } 53 | 54 | .Test__container .ElementWithPopover button { 55 | width: 130px; 56 | height: 42px; 57 | font-size: 12px; 58 | } 59 | 60 | .Test__container .ElementWithPopover__popover { 61 | display: none; 62 | width: 290px; 63 | height: 270px; 64 | min-width: 280px; 65 | min-height: 104px; 66 | padding: 10px; 67 | border: thin solid black; 68 | background: white; 69 | z-index: 2; 70 | overflow: auto; 71 | } 72 | 73 | .Test__container .ElementWithPopover__popover--isOpen { 74 | display: block; 75 | } 76 | 77 | .Test__elementWrapper { 78 | position: absolute; 79 | } 80 | -------------------------------------------------------------------------------- /test/Test.tsx: -------------------------------------------------------------------------------- 1 | import './Test.css'; 2 | 3 | import ElementWithPopover from './ElementWithPopover.js'; 4 | 5 | const BUTTON_WIDTH = 130; 6 | const BUTTON_HEIGHT = 42; 7 | const MARGIN = 10; 8 | 9 | const BEGIN = { x: 'left', y: 'top' }; 10 | const END = { x: 'right', y: 'bottom' }; 11 | 12 | const corners: [boolean, boolean][] = Array.from(new Array(4), (_el, index) => [ 13 | index > 1, 14 | Boolean(index % 2), 15 | ]); 16 | 17 | export default function Test() { 18 | const mainAxis = 'y'; 19 | 20 | function renderElement({ 21 | description, 22 | displayAbove, 23 | displayAlignRight, 24 | style, 25 | }: { 26 | description: string; 27 | displayAbove: boolean; 28 | displayAlignRight: boolean; 29 | style: React.CSSProperties; 30 | }) { 31 | const secondAxis = ({ x: 'y', y: 'x' } as const)[mainAxis]; 32 | const MAIN_BEGIN = BEGIN[mainAxis]; 33 | const MAIN_END = END[mainAxis]; 34 | const SECOND_BEGIN = END[secondAxis]; 35 | const SECOND_END = BEGIN[secondAxis]; 36 | const first = displayAbove ? MAIN_BEGIN : MAIN_END; 37 | const second = `align-${displayAlignRight ? SECOND_BEGIN : SECOND_END}`; 38 | 39 | return ( 40 |
41 | 47 |
48 | ); 49 | } 50 | 51 | function renderElements({ 52 | collideMainAxis, 53 | collideSecondaryAxis, 54 | description, 55 | }: { 56 | collideMainAxis?: boolean; 57 | collideSecondaryAxis?: boolean; 58 | description: string; 59 | }) { 60 | return corners.map(([invertAxis, invertSecondaryAxis]) => { 61 | const displayAbove = collideSecondaryAxis ? !invertAxis : invertAxis; 62 | const displayAlignRight = collideMainAxis ? !invertSecondaryAxis : invertSecondaryAxis; 63 | const style: React.CSSProperties = {}; 64 | style[invertAxis ? 'bottom' : 'top'] = 65 | MARGIN + (collideMainAxis ? MARGIN + BUTTON_HEIGHT : 0); 66 | style[invertSecondaryAxis ? 'right' : 'left'] = 67 | MARGIN + (collideSecondaryAxis ? MARGIN + BUTTON_WIDTH : 0); 68 | 69 | return renderElement({ 70 | description, 71 | displayAbove, 72 | displayAlignRight, 73 | style, 74 | }); 75 | }); 76 | } 77 | 78 | function renderNoCollisionsElements() { 79 | return renderElements({ description: 'no collisions' }); 80 | } 81 | 82 | function renderMainCollisionElements() { 83 | return renderElements({ 84 | collideMainAxis: true, 85 | description: `${mainAxis === 'y' ? 'horizontal' : 'vertical'} collision`, 86 | }); 87 | } 88 | 89 | function renderSecondaryCollisionElements() { 90 | return renderElements({ 91 | collideSecondaryAxis: true, 92 | description: `${mainAxis === 'y' ? 'vertical' : 'horizontal'} collision`, 93 | }); 94 | } 95 | 96 | function renderBothCollisionElements() { 97 | return renderElements({ 98 | collideMainAxis: true, 99 | collideSecondaryAxis: true, 100 | description: 'both collisions', 101 | }); 102 | } 103 | 104 | return ( 105 |
106 |
107 |

react-fit test page

108 |
109 |
110 |
111 | {renderNoCollisionsElements()} 112 | {renderMainCollisionElements()} 113 | {renderSecondaryCollisionElements()} 114 | {renderBothCollisionElements()} 115 |
116 |
117 |
118 | ); 119 | } 120 | -------------------------------------------------------------------------------- /test/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | react-fit test page 7 | 8 | 9 |
10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /test/index.tsx: -------------------------------------------------------------------------------- 1 | import { StrictMode } from 'react'; 2 | import { createRoot } from 'react-dom/client'; 3 | 4 | import Test from './Test.js'; 5 | 6 | const root = document.getElementById('root'); 7 | 8 | if (!root) { 9 | throw new Error('Could not find root element'); 10 | } 11 | 12 | createRoot(root).render( 13 | 14 | 15 | , 16 | ); 17 | -------------------------------------------------------------------------------- /test/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "test", 3 | "version": "1.0.0", 4 | "description": "A test page for React-Fit.", 5 | "private": true, 6 | "type": "module", 7 | "scripts": { 8 | "build": "vite build", 9 | "dev": "vite", 10 | "format": "biome format", 11 | "lint": "biome lint", 12 | "preview": "vite preview", 13 | "test": "yarn lint && yarn tsc && yarn format", 14 | "tsc": "tsc" 15 | }, 16 | "author": { 17 | "name": "Wojciech Maj", 18 | "email": "kontakt@wojtekmaj.pl" 19 | }, 20 | "license": "MIT", 21 | "dependencies": { 22 | "clsx": "^2.0.0", 23 | "react": "^18.2.0", 24 | "react-dom": "^18.2.0", 25 | "react-fit": "workspace:packages/react-fit" 26 | }, 27 | "devDependencies": { 28 | "@biomejs/biome": "2.0.0", 29 | "@types/react": "*", 30 | "@vitejs/plugin-react": "^4.6.0", 31 | "typescript": "^5.5.2", 32 | "vite": "^7.0.0" 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /test/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "isolatedModules": true, 4 | "jsx": "react-jsx", 5 | "module": "preserve", 6 | "moduleDetection": "force", 7 | "noEmit": true, 8 | "noUncheckedIndexedAccess": true, 9 | "skipLibCheck": true, 10 | "strict": true, 11 | "target": "esnext", 12 | "verbatimModuleSyntax": true 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /test/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite'; 2 | import react from '@vitejs/plugin-react'; 3 | 4 | export default defineConfig({ 5 | base: './', 6 | plugins: [react()], 7 | }); 8 | -------------------------------------------------------------------------------- /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 | "@adobe/css-tools@npm:^4.3.1": 9 | version: 4.3.2 10 | resolution: "@adobe/css-tools@npm:4.3.2" 11 | checksum: 10c0/296a03dd29f227c60500d2da8c7f64991fecf1d8b456ce2b4adb8cec7363d9c08b5b03f1463673fc8cbfe54b538745588e7a13c736d2dd14a80c01a20f127f39 12 | languageName: node 13 | linkType: hard 14 | 15 | "@ampproject/remapping@npm:^2.2.0": 16 | version: 2.3.0 17 | resolution: "@ampproject/remapping@npm:2.3.0" 18 | dependencies: 19 | "@jridgewell/gen-mapping": "npm:^0.3.5" 20 | "@jridgewell/trace-mapping": "npm:^0.3.24" 21 | checksum: 10c0/81d63cca5443e0f0c72ae18b544cc28c7c0ec2cea46e7cb888bb0e0f411a1191d0d6b7af798d54e30777d8d1488b2ec0732aac2be342d3d7d3ffd271c6f489ed 22 | languageName: node 23 | linkType: hard 24 | 25 | "@babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.27.1": 26 | version: 7.27.1 27 | resolution: "@babel/code-frame@npm:7.27.1" 28 | dependencies: 29 | "@babel/helper-validator-identifier": "npm:^7.27.1" 30 | js-tokens: "npm:^4.0.0" 31 | picocolors: "npm:^1.1.1" 32 | checksum: 10c0/5dd9a18baa5fce4741ba729acc3a3272c49c25cb8736c4b18e113099520e7ef7b545a4096a26d600e4416157e63e87d66db46aa3fbf0a5f2286da2705c12da00 33 | languageName: node 34 | linkType: hard 35 | 36 | "@babel/compat-data@npm:^7.27.2": 37 | version: 7.27.5 38 | resolution: "@babel/compat-data@npm:7.27.5" 39 | checksum: 10c0/da2751fcd0b58eea958f2b2f7ff7d6de1280712b709fa1ad054b73dc7d31f589e353bb50479b9dc96007935f3ed3cada68ac5b45ce93086b7122ddc32e60dc00 40 | languageName: node 41 | linkType: hard 42 | 43 | "@babel/core@npm:^7.27.4": 44 | version: 7.27.4 45 | resolution: "@babel/core@npm:7.27.4" 46 | dependencies: 47 | "@ampproject/remapping": "npm:^2.2.0" 48 | "@babel/code-frame": "npm:^7.27.1" 49 | "@babel/generator": "npm:^7.27.3" 50 | "@babel/helper-compilation-targets": "npm:^7.27.2" 51 | "@babel/helper-module-transforms": "npm:^7.27.3" 52 | "@babel/helpers": "npm:^7.27.4" 53 | "@babel/parser": "npm:^7.27.4" 54 | "@babel/template": "npm:^7.27.2" 55 | "@babel/traverse": "npm:^7.27.4" 56 | "@babel/types": "npm:^7.27.3" 57 | convert-source-map: "npm:^2.0.0" 58 | debug: "npm:^4.1.0" 59 | gensync: "npm:^1.0.0-beta.2" 60 | json5: "npm:^2.2.3" 61 | semver: "npm:^6.3.1" 62 | checksum: 10c0/d2d17b106a8d91d3eda754bb3f26b53a12eb7646df73c2b2d2e9b08d90529186bc69e3823f70a96ec6e5719dc2372fb54e14ad499da47ceeb172d2f7008787b5 63 | languageName: node 64 | linkType: hard 65 | 66 | "@babel/generator@npm:^7.27.3": 67 | version: 7.27.5 68 | resolution: "@babel/generator@npm:7.27.5" 69 | dependencies: 70 | "@babel/parser": "npm:^7.27.5" 71 | "@babel/types": "npm:^7.27.3" 72 | "@jridgewell/gen-mapping": "npm:^0.3.5" 73 | "@jridgewell/trace-mapping": "npm:^0.3.25" 74 | jsesc: "npm:^3.0.2" 75 | checksum: 10c0/8f649ef4cd81765c832bb11de4d6064b035ffebdecde668ba7abee68a7b0bce5c9feabb5dc5bb8aeba5bd9e5c2afa3899d852d2bd9ca77a711ba8c8379f416f0 76 | languageName: node 77 | linkType: hard 78 | 79 | "@babel/helper-compilation-targets@npm:^7.27.2": 80 | version: 7.27.2 81 | resolution: "@babel/helper-compilation-targets@npm:7.27.2" 82 | dependencies: 83 | "@babel/compat-data": "npm:^7.27.2" 84 | "@babel/helper-validator-option": "npm:^7.27.1" 85 | browserslist: "npm:^4.24.0" 86 | lru-cache: "npm:^5.1.1" 87 | semver: "npm:^6.3.1" 88 | checksum: 10c0/f338fa00dcfea931804a7c55d1a1c81b6f0a09787e528ec580d5c21b3ecb3913f6cb0f361368973ce953b824d910d3ac3e8a8ee15192710d3563826447193ad1 89 | languageName: node 90 | linkType: hard 91 | 92 | "@babel/helper-module-imports@npm:^7.27.1": 93 | version: 7.27.1 94 | resolution: "@babel/helper-module-imports@npm:7.27.1" 95 | dependencies: 96 | "@babel/traverse": "npm:^7.27.1" 97 | "@babel/types": "npm:^7.27.1" 98 | checksum: 10c0/e00aace096e4e29290ff8648455c2bc4ed982f0d61dbf2db1b5e750b9b98f318bf5788d75a4f974c151bd318fd549e81dbcab595f46b14b81c12eda3023f51e8 99 | languageName: node 100 | linkType: hard 101 | 102 | "@babel/helper-module-transforms@npm:^7.27.3": 103 | version: 7.27.3 104 | resolution: "@babel/helper-module-transforms@npm:7.27.3" 105 | dependencies: 106 | "@babel/helper-module-imports": "npm:^7.27.1" 107 | "@babel/helper-validator-identifier": "npm:^7.27.1" 108 | "@babel/traverse": "npm:^7.27.3" 109 | peerDependencies: 110 | "@babel/core": ^7.0.0 111 | checksum: 10c0/fccb4f512a13b4c069af51e1b56b20f54024bcf1591e31e978a30f3502567f34f90a80da6a19a6148c249216292a8074a0121f9e52602510ef0f32dbce95ca01 112 | languageName: node 113 | linkType: hard 114 | 115 | "@babel/helper-plugin-utils@npm:^7.27.1": 116 | version: 7.27.1 117 | resolution: "@babel/helper-plugin-utils@npm:7.27.1" 118 | checksum: 10c0/94cf22c81a0c11a09b197b41ab488d416ff62254ce13c57e62912c85700dc2e99e555225787a4099ff6bae7a1812d622c80fbaeda824b79baa10a6c5ac4cf69b 119 | languageName: node 120 | linkType: hard 121 | 122 | "@babel/helper-string-parser@npm:^7.27.1": 123 | version: 7.27.1 124 | resolution: "@babel/helper-string-parser@npm:7.27.1" 125 | checksum: 10c0/8bda3448e07b5583727c103560bcf9c4c24b3c1051a4c516d4050ef69df37bb9a4734a585fe12725b8c2763de0a265aa1e909b485a4e3270b7cfd3e4dbe4b602 126 | languageName: node 127 | linkType: hard 128 | 129 | "@babel/helper-validator-identifier@npm:^7.27.1": 130 | version: 7.27.1 131 | resolution: "@babel/helper-validator-identifier@npm:7.27.1" 132 | checksum: 10c0/c558f11c4871d526498e49d07a84752d1800bf72ac0d3dad100309a2eaba24efbf56ea59af5137ff15e3a00280ebe588560534b0e894a4750f8b1411d8f78b84 133 | languageName: node 134 | linkType: hard 135 | 136 | "@babel/helper-validator-option@npm:^7.27.1": 137 | version: 7.27.1 138 | resolution: "@babel/helper-validator-option@npm:7.27.1" 139 | checksum: 10c0/6fec5f006eba40001a20f26b1ef5dbbda377b7b68c8ad518c05baa9af3f396e780bdfded24c4eef95d14bb7b8fd56192a6ed38d5d439b97d10efc5f1a191d148 140 | languageName: node 141 | linkType: hard 142 | 143 | "@babel/helpers@npm:^7.27.4": 144 | version: 7.27.6 145 | resolution: "@babel/helpers@npm:7.27.6" 146 | dependencies: 147 | "@babel/template": "npm:^7.27.2" 148 | "@babel/types": "npm:^7.27.6" 149 | checksum: 10c0/448bac96ef8b0f21f2294a826df9de6bf4026fd023f8a6bb6c782fe3e61946801ca24381490b8e58d861fee75cd695a1882921afbf1f53b0275ee68c938bd6d3 150 | languageName: node 151 | linkType: hard 152 | 153 | "@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.27.2, @babel/parser@npm:^7.27.4, @babel/parser@npm:^7.27.5": 154 | version: 7.27.5 155 | resolution: "@babel/parser@npm:7.27.5" 156 | dependencies: 157 | "@babel/types": "npm:^7.27.3" 158 | bin: 159 | parser: ./bin/babel-parser.js 160 | checksum: 10c0/f7faaebf21cc1f25d9ca8ac02c447ed38ef3460ea95be7ea760916dcf529476340d72a5a6010c6641d9ed9d12ad827c8424840277ec2295c5b082ba0f291220a 161 | languageName: node 162 | linkType: hard 163 | 164 | "@babel/plugin-transform-react-jsx-self@npm:^7.27.1": 165 | version: 7.27.1 166 | resolution: "@babel/plugin-transform-react-jsx-self@npm:7.27.1" 167 | dependencies: 168 | "@babel/helper-plugin-utils": "npm:^7.27.1" 169 | peerDependencies: 170 | "@babel/core": ^7.0.0-0 171 | checksum: 10c0/00a4f917b70a608f9aca2fb39aabe04a60aa33165a7e0105fd44b3a8531630eb85bf5572e9f242f51e6ad2fa38c2e7e780902176c863556c58b5ba6f6e164031 172 | languageName: node 173 | linkType: hard 174 | 175 | "@babel/plugin-transform-react-jsx-source@npm:^7.27.1": 176 | version: 7.27.1 177 | resolution: "@babel/plugin-transform-react-jsx-source@npm:7.27.1" 178 | dependencies: 179 | "@babel/helper-plugin-utils": "npm:^7.27.1" 180 | peerDependencies: 181 | "@babel/core": ^7.0.0-0 182 | checksum: 10c0/5e67b56c39c4d03e59e03ba80692b24c5a921472079b63af711b1d250fc37c1733a17069b63537f750f3e937ec44a42b1ee6a46cd23b1a0df5163b17f741f7f2 183 | languageName: node 184 | linkType: hard 185 | 186 | "@babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.9.2": 187 | version: 7.27.6 188 | resolution: "@babel/runtime@npm:7.27.6" 189 | checksum: 10c0/89726be83f356f511dcdb74d3ea4d873a5f0cf0017d4530cb53aa27380c01ca102d573eff8b8b77815e624b1f8c24e7f0311834ad4fb632c90a770fda00bd4c8 190 | languageName: node 191 | linkType: hard 192 | 193 | "@babel/template@npm:^7.27.2": 194 | version: 7.27.2 195 | resolution: "@babel/template@npm:7.27.2" 196 | dependencies: 197 | "@babel/code-frame": "npm:^7.27.1" 198 | "@babel/parser": "npm:^7.27.2" 199 | "@babel/types": "npm:^7.27.1" 200 | checksum: 10c0/ed9e9022651e463cc5f2cc21942f0e74544f1754d231add6348ff1b472985a3b3502041c0be62dc99ed2d12cfae0c51394bf827452b98a2f8769c03b87aadc81 201 | languageName: node 202 | linkType: hard 203 | 204 | "@babel/traverse@npm:^7.27.1, @babel/traverse@npm:^7.27.3, @babel/traverse@npm:^7.27.4": 205 | version: 7.27.4 206 | resolution: "@babel/traverse@npm:7.27.4" 207 | dependencies: 208 | "@babel/code-frame": "npm:^7.27.1" 209 | "@babel/generator": "npm:^7.27.3" 210 | "@babel/parser": "npm:^7.27.4" 211 | "@babel/template": "npm:^7.27.2" 212 | "@babel/types": "npm:^7.27.3" 213 | debug: "npm:^4.3.1" 214 | globals: "npm:^11.1.0" 215 | checksum: 10c0/6de8aa2a0637a6ee6d205bf48b9e923928a02415771fdec60085ed754dcdf605e450bb3315c2552fa51c31a4662275b45d5ae4ad527ce55a7db9acebdbbbb8ed 216 | languageName: node 217 | linkType: hard 218 | 219 | "@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.27.1, @babel/types@npm:^7.27.3, @babel/types@npm:^7.27.6": 220 | version: 7.27.6 221 | resolution: "@babel/types@npm:7.27.6" 222 | dependencies: 223 | "@babel/helper-string-parser": "npm:^7.27.1" 224 | "@babel/helper-validator-identifier": "npm:^7.27.1" 225 | checksum: 10c0/39d556be114f2a6d874ea25ad39826a9e3a0e98de0233ae6d932f6d09a4b222923a90a7274c635ed61f1ba49bbd345329226678800900ad1c8d11afabd573aaf 226 | languageName: node 227 | linkType: hard 228 | 229 | "@biomejs/biome@npm:2.0.0": 230 | version: 2.0.0 231 | resolution: "@biomejs/biome@npm:2.0.0" 232 | dependencies: 233 | "@biomejs/cli-darwin-arm64": "npm:2.0.0" 234 | "@biomejs/cli-darwin-x64": "npm:2.0.0" 235 | "@biomejs/cli-linux-arm64": "npm:2.0.0" 236 | "@biomejs/cli-linux-arm64-musl": "npm:2.0.0" 237 | "@biomejs/cli-linux-x64": "npm:2.0.0" 238 | "@biomejs/cli-linux-x64-musl": "npm:2.0.0" 239 | "@biomejs/cli-win32-arm64": "npm:2.0.0" 240 | "@biomejs/cli-win32-x64": "npm:2.0.0" 241 | dependenciesMeta: 242 | "@biomejs/cli-darwin-arm64": 243 | optional: true 244 | "@biomejs/cli-darwin-x64": 245 | optional: true 246 | "@biomejs/cli-linux-arm64": 247 | optional: true 248 | "@biomejs/cli-linux-arm64-musl": 249 | optional: true 250 | "@biomejs/cli-linux-x64": 251 | optional: true 252 | "@biomejs/cli-linux-x64-musl": 253 | optional: true 254 | "@biomejs/cli-win32-arm64": 255 | optional: true 256 | "@biomejs/cli-win32-x64": 257 | optional: true 258 | bin: 259 | biome: bin/biome 260 | checksum: 10c0/a255d2e84e303c6b1bd841877463f358415a35fb39dc4051dec80d9dd44e4f2f546e7e13804f7cd9f0932ca11664600f819e0b0dd75c55c2c0571ed771d86cb5 261 | languageName: node 262 | linkType: hard 263 | 264 | "@biomejs/cli-darwin-arm64@npm:2.0.0": 265 | version: 2.0.0 266 | resolution: "@biomejs/cli-darwin-arm64@npm:2.0.0" 267 | conditions: os=darwin & cpu=arm64 268 | languageName: node 269 | linkType: hard 270 | 271 | "@biomejs/cli-darwin-x64@npm:2.0.0": 272 | version: 2.0.0 273 | resolution: "@biomejs/cli-darwin-x64@npm:2.0.0" 274 | conditions: os=darwin & cpu=x64 275 | languageName: node 276 | linkType: hard 277 | 278 | "@biomejs/cli-linux-arm64-musl@npm:2.0.0": 279 | version: 2.0.0 280 | resolution: "@biomejs/cli-linux-arm64-musl@npm:2.0.0" 281 | conditions: os=linux & cpu=arm64 & libc=musl 282 | languageName: node 283 | linkType: hard 284 | 285 | "@biomejs/cli-linux-arm64@npm:2.0.0": 286 | version: 2.0.0 287 | resolution: "@biomejs/cli-linux-arm64@npm:2.0.0" 288 | conditions: os=linux & cpu=arm64 & libc=glibc 289 | languageName: node 290 | linkType: hard 291 | 292 | "@biomejs/cli-linux-x64-musl@npm:2.0.0": 293 | version: 2.0.0 294 | resolution: "@biomejs/cli-linux-x64-musl@npm:2.0.0" 295 | conditions: os=linux & cpu=x64 & libc=musl 296 | languageName: node 297 | linkType: hard 298 | 299 | "@biomejs/cli-linux-x64@npm:2.0.0": 300 | version: 2.0.0 301 | resolution: "@biomejs/cli-linux-x64@npm:2.0.0" 302 | conditions: os=linux & cpu=x64 & libc=glibc 303 | languageName: node 304 | linkType: hard 305 | 306 | "@biomejs/cli-win32-arm64@npm:2.0.0": 307 | version: 2.0.0 308 | resolution: "@biomejs/cli-win32-arm64@npm:2.0.0" 309 | conditions: os=win32 & cpu=arm64 310 | languageName: node 311 | linkType: hard 312 | 313 | "@biomejs/cli-win32-x64@npm:2.0.0": 314 | version: 2.0.0 315 | resolution: "@biomejs/cli-win32-x64@npm:2.0.0" 316 | conditions: os=win32 & cpu=x64 317 | languageName: node 318 | linkType: hard 319 | 320 | "@esbuild/aix-ppc64@npm:0.25.0": 321 | version: 0.25.0 322 | resolution: "@esbuild/aix-ppc64@npm:0.25.0" 323 | conditions: os=aix & cpu=ppc64 324 | languageName: node 325 | linkType: hard 326 | 327 | "@esbuild/android-arm64@npm:0.25.0": 328 | version: 0.25.0 329 | resolution: "@esbuild/android-arm64@npm:0.25.0" 330 | conditions: os=android & cpu=arm64 331 | languageName: node 332 | linkType: hard 333 | 334 | "@esbuild/android-arm@npm:0.25.0": 335 | version: 0.25.0 336 | resolution: "@esbuild/android-arm@npm:0.25.0" 337 | conditions: os=android & cpu=arm 338 | languageName: node 339 | linkType: hard 340 | 341 | "@esbuild/android-x64@npm:0.25.0": 342 | version: 0.25.0 343 | resolution: "@esbuild/android-x64@npm:0.25.0" 344 | conditions: os=android & cpu=x64 345 | languageName: node 346 | linkType: hard 347 | 348 | "@esbuild/darwin-arm64@npm:0.25.0": 349 | version: 0.25.0 350 | resolution: "@esbuild/darwin-arm64@npm:0.25.0" 351 | conditions: os=darwin & cpu=arm64 352 | languageName: node 353 | linkType: hard 354 | 355 | "@esbuild/darwin-x64@npm:0.25.0": 356 | version: 0.25.0 357 | resolution: "@esbuild/darwin-x64@npm:0.25.0" 358 | conditions: os=darwin & cpu=x64 359 | languageName: node 360 | linkType: hard 361 | 362 | "@esbuild/freebsd-arm64@npm:0.25.0": 363 | version: 0.25.0 364 | resolution: "@esbuild/freebsd-arm64@npm:0.25.0" 365 | conditions: os=freebsd & cpu=arm64 366 | languageName: node 367 | linkType: hard 368 | 369 | "@esbuild/freebsd-x64@npm:0.25.0": 370 | version: 0.25.0 371 | resolution: "@esbuild/freebsd-x64@npm:0.25.0" 372 | conditions: os=freebsd & cpu=x64 373 | languageName: node 374 | linkType: hard 375 | 376 | "@esbuild/linux-arm64@npm:0.25.0": 377 | version: 0.25.0 378 | resolution: "@esbuild/linux-arm64@npm:0.25.0" 379 | conditions: os=linux & cpu=arm64 380 | languageName: node 381 | linkType: hard 382 | 383 | "@esbuild/linux-arm@npm:0.25.0": 384 | version: 0.25.0 385 | resolution: "@esbuild/linux-arm@npm:0.25.0" 386 | conditions: os=linux & cpu=arm 387 | languageName: node 388 | linkType: hard 389 | 390 | "@esbuild/linux-ia32@npm:0.25.0": 391 | version: 0.25.0 392 | resolution: "@esbuild/linux-ia32@npm:0.25.0" 393 | conditions: os=linux & cpu=ia32 394 | languageName: node 395 | linkType: hard 396 | 397 | "@esbuild/linux-loong64@npm:0.25.0": 398 | version: 0.25.0 399 | resolution: "@esbuild/linux-loong64@npm:0.25.0" 400 | conditions: os=linux & cpu=loong64 401 | languageName: node 402 | linkType: hard 403 | 404 | "@esbuild/linux-mips64el@npm:0.25.0": 405 | version: 0.25.0 406 | resolution: "@esbuild/linux-mips64el@npm:0.25.0" 407 | conditions: os=linux & cpu=mips64el 408 | languageName: node 409 | linkType: hard 410 | 411 | "@esbuild/linux-ppc64@npm:0.25.0": 412 | version: 0.25.0 413 | resolution: "@esbuild/linux-ppc64@npm:0.25.0" 414 | conditions: os=linux & cpu=ppc64 415 | languageName: node 416 | linkType: hard 417 | 418 | "@esbuild/linux-riscv64@npm:0.25.0": 419 | version: 0.25.0 420 | resolution: "@esbuild/linux-riscv64@npm:0.25.0" 421 | conditions: os=linux & cpu=riscv64 422 | languageName: node 423 | linkType: hard 424 | 425 | "@esbuild/linux-s390x@npm:0.25.0": 426 | version: 0.25.0 427 | resolution: "@esbuild/linux-s390x@npm:0.25.0" 428 | conditions: os=linux & cpu=s390x 429 | languageName: node 430 | linkType: hard 431 | 432 | "@esbuild/linux-x64@npm:0.25.0": 433 | version: 0.25.0 434 | resolution: "@esbuild/linux-x64@npm:0.25.0" 435 | conditions: os=linux & cpu=x64 436 | languageName: node 437 | linkType: hard 438 | 439 | "@esbuild/netbsd-arm64@npm:0.25.0": 440 | version: 0.25.0 441 | resolution: "@esbuild/netbsd-arm64@npm:0.25.0" 442 | conditions: os=netbsd & cpu=arm64 443 | languageName: node 444 | linkType: hard 445 | 446 | "@esbuild/netbsd-x64@npm:0.25.0": 447 | version: 0.25.0 448 | resolution: "@esbuild/netbsd-x64@npm:0.25.0" 449 | conditions: os=netbsd & cpu=x64 450 | languageName: node 451 | linkType: hard 452 | 453 | "@esbuild/openbsd-arm64@npm:0.25.0": 454 | version: 0.25.0 455 | resolution: "@esbuild/openbsd-arm64@npm:0.25.0" 456 | conditions: os=openbsd & cpu=arm64 457 | languageName: node 458 | linkType: hard 459 | 460 | "@esbuild/openbsd-x64@npm:0.25.0": 461 | version: 0.25.0 462 | resolution: "@esbuild/openbsd-x64@npm:0.25.0" 463 | conditions: os=openbsd & cpu=x64 464 | languageName: node 465 | linkType: hard 466 | 467 | "@esbuild/sunos-x64@npm:0.25.0": 468 | version: 0.25.0 469 | resolution: "@esbuild/sunos-x64@npm:0.25.0" 470 | conditions: os=sunos & cpu=x64 471 | languageName: node 472 | linkType: hard 473 | 474 | "@esbuild/win32-arm64@npm:0.25.0": 475 | version: 0.25.0 476 | resolution: "@esbuild/win32-arm64@npm:0.25.0" 477 | conditions: os=win32 & cpu=arm64 478 | languageName: node 479 | linkType: hard 480 | 481 | "@esbuild/win32-ia32@npm:0.25.0": 482 | version: 0.25.0 483 | resolution: "@esbuild/win32-ia32@npm:0.25.0" 484 | conditions: os=win32 & cpu=ia32 485 | languageName: node 486 | linkType: hard 487 | 488 | "@esbuild/win32-x64@npm:0.25.0": 489 | version: 0.25.0 490 | resolution: "@esbuild/win32-x64@npm:0.25.0" 491 | conditions: os=win32 & cpu=x64 492 | languageName: node 493 | linkType: hard 494 | 495 | "@isaacs/cliui@npm:^8.0.2": 496 | version: 8.0.2 497 | resolution: "@isaacs/cliui@npm:8.0.2" 498 | dependencies: 499 | string-width: "npm:^5.1.2" 500 | string-width-cjs: "npm:string-width@^4.2.0" 501 | strip-ansi: "npm:^7.0.1" 502 | strip-ansi-cjs: "npm:strip-ansi@^6.0.1" 503 | wrap-ansi: "npm:^8.1.0" 504 | wrap-ansi-cjs: "npm:wrap-ansi@^7.0.0" 505 | checksum: 10c0/b1bf42535d49f11dc137f18d5e4e63a28c5569de438a221c369483731e9dac9fb797af554e8bf02b6192d1e5eba6e6402cf93900c3d0ac86391d00d04876789e 506 | languageName: node 507 | linkType: hard 508 | 509 | "@isaacs/fs-minipass@npm:^4.0.0": 510 | version: 4.0.1 511 | resolution: "@isaacs/fs-minipass@npm:4.0.1" 512 | dependencies: 513 | minipass: "npm:^7.0.4" 514 | checksum: 10c0/c25b6dc1598790d5b55c0947a9b7d111cfa92594db5296c3b907e2f533c033666f692a3939eadac17b1c7c40d362d0b0635dc874cbfe3e70db7c2b07cc97a5d2 515 | languageName: node 516 | linkType: hard 517 | 518 | "@jridgewell/gen-mapping@npm:^0.3.5": 519 | version: 0.3.5 520 | resolution: "@jridgewell/gen-mapping@npm:0.3.5" 521 | dependencies: 522 | "@jridgewell/set-array": "npm:^1.2.1" 523 | "@jridgewell/sourcemap-codec": "npm:^1.4.10" 524 | "@jridgewell/trace-mapping": "npm:^0.3.24" 525 | checksum: 10c0/1be4fd4a6b0f41337c4f5fdf4afc3bd19e39c3691924817108b82ffcb9c9e609c273f936932b9fba4b3a298ce2eb06d9bff4eb1cc3bd81c4f4ee1b4917e25feb 526 | languageName: node 527 | linkType: hard 528 | 529 | "@jridgewell/resolve-uri@npm:^3.1.0": 530 | version: 3.1.2 531 | resolution: "@jridgewell/resolve-uri@npm:3.1.2" 532 | checksum: 10c0/d502e6fb516b35032331406d4e962c21fe77cdf1cbdb49c6142bcbd9e30507094b18972778a6e27cbad756209cfe34b1a27729e6fa08a2eb92b33943f680cf1e 533 | languageName: node 534 | linkType: hard 535 | 536 | "@jridgewell/set-array@npm:^1.2.1": 537 | version: 1.2.1 538 | resolution: "@jridgewell/set-array@npm:1.2.1" 539 | checksum: 10c0/2a5aa7b4b5c3464c895c802d8ae3f3d2b92fcbe84ad12f8d0bfbb1f5ad006717e7577ee1fd2eac00c088abe486c7adb27976f45d2941ff6b0b92b2c3302c60f4 540 | languageName: node 541 | linkType: hard 542 | 543 | "@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.14, @jridgewell/sourcemap-codec@npm:^1.5.0": 544 | version: 1.5.0 545 | resolution: "@jridgewell/sourcemap-codec@npm:1.5.0" 546 | checksum: 10c0/2eb864f276eb1096c3c11da3e9bb518f6d9fc0023c78344cdc037abadc725172c70314bdb360f2d4b7bffec7f5d657ce006816bc5d4ecb35e61b66132db00c18 547 | languageName: node 548 | linkType: hard 549 | 550 | "@jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25": 551 | version: 0.3.25 552 | resolution: "@jridgewell/trace-mapping@npm:0.3.25" 553 | dependencies: 554 | "@jridgewell/resolve-uri": "npm:^3.1.0" 555 | "@jridgewell/sourcemap-codec": "npm:^1.4.14" 556 | checksum: 10c0/3d1ce6ebc69df9682a5a8896b414c6537e428a1d68b02fcc8363b04284a8ca0df04d0ee3013132252ab14f2527bc13bea6526a912ecb5658f0e39fd2860b4df4 557 | languageName: node 558 | linkType: hard 559 | 560 | "@npmcli/agent@npm:^3.0.0": 561 | version: 3.0.0 562 | resolution: "@npmcli/agent@npm:3.0.0" 563 | dependencies: 564 | agent-base: "npm:^7.1.0" 565 | http-proxy-agent: "npm:^7.0.0" 566 | https-proxy-agent: "npm:^7.0.1" 567 | lru-cache: "npm:^10.0.1" 568 | socks-proxy-agent: "npm:^8.0.3" 569 | checksum: 10c0/efe37b982f30740ee77696a80c196912c274ecd2cb243bc6ae7053a50c733ce0f6c09fda085145f33ecf453be19654acca74b69e81eaad4c90f00ccffe2f9271 570 | languageName: node 571 | linkType: hard 572 | 573 | "@npmcli/fs@npm:^4.0.0": 574 | version: 4.0.0 575 | resolution: "@npmcli/fs@npm:4.0.0" 576 | dependencies: 577 | semver: "npm:^7.3.5" 578 | checksum: 10c0/c90935d5ce670c87b6b14fab04a965a3b8137e585f8b2a6257263bd7f97756dd736cb165bb470e5156a9e718ecd99413dccc54b1138c1a46d6ec7cf325982fe5 579 | languageName: node 580 | linkType: hard 581 | 582 | "@pkgjs/parseargs@npm:^0.11.0": 583 | version: 0.11.0 584 | resolution: "@pkgjs/parseargs@npm:0.11.0" 585 | checksum: 10c0/5bd7576bb1b38a47a7fc7b51ac9f38748e772beebc56200450c4a817d712232b8f1d3ef70532c80840243c657d491cf6a6be1e3a214cff907645819fdc34aadd 586 | languageName: node 587 | linkType: hard 588 | 589 | "@rolldown/pluginutils@npm:1.0.0-beta.19": 590 | version: 1.0.0-beta.19 591 | resolution: "@rolldown/pluginutils@npm:1.0.0-beta.19" 592 | checksum: 10c0/e4205df56e6231a347ac601d044af365639741d51b5bea4e91ecc37e19e9777cb79d1daa924b8709ddf1f743ed6922e4e68e2445126434c4d420d9f4416f4feb 593 | languageName: node 594 | linkType: hard 595 | 596 | "@rollup/rollup-android-arm-eabi@npm:4.44.0": 597 | version: 4.44.0 598 | resolution: "@rollup/rollup-android-arm-eabi@npm:4.44.0" 599 | conditions: os=android & cpu=arm 600 | languageName: node 601 | linkType: hard 602 | 603 | "@rollup/rollup-android-arm64@npm:4.44.0": 604 | version: 4.44.0 605 | resolution: "@rollup/rollup-android-arm64@npm:4.44.0" 606 | conditions: os=android & cpu=arm64 607 | languageName: node 608 | linkType: hard 609 | 610 | "@rollup/rollup-darwin-arm64@npm:4.44.0": 611 | version: 4.44.0 612 | resolution: "@rollup/rollup-darwin-arm64@npm:4.44.0" 613 | conditions: os=darwin & cpu=arm64 614 | languageName: node 615 | linkType: hard 616 | 617 | "@rollup/rollup-darwin-x64@npm:4.44.0": 618 | version: 4.44.0 619 | resolution: "@rollup/rollup-darwin-x64@npm:4.44.0" 620 | conditions: os=darwin & cpu=x64 621 | languageName: node 622 | linkType: hard 623 | 624 | "@rollup/rollup-freebsd-arm64@npm:4.44.0": 625 | version: 4.44.0 626 | resolution: "@rollup/rollup-freebsd-arm64@npm:4.44.0" 627 | conditions: os=freebsd & cpu=arm64 628 | languageName: node 629 | linkType: hard 630 | 631 | "@rollup/rollup-freebsd-x64@npm:4.44.0": 632 | version: 4.44.0 633 | resolution: "@rollup/rollup-freebsd-x64@npm:4.44.0" 634 | conditions: os=freebsd & cpu=x64 635 | languageName: node 636 | linkType: hard 637 | 638 | "@rollup/rollup-linux-arm-gnueabihf@npm:4.44.0": 639 | version: 4.44.0 640 | resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.44.0" 641 | conditions: os=linux & cpu=arm & libc=glibc 642 | languageName: node 643 | linkType: hard 644 | 645 | "@rollup/rollup-linux-arm-musleabihf@npm:4.44.0": 646 | version: 4.44.0 647 | resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.44.0" 648 | conditions: os=linux & cpu=arm & libc=musl 649 | languageName: node 650 | linkType: hard 651 | 652 | "@rollup/rollup-linux-arm64-gnu@npm:4.44.0": 653 | version: 4.44.0 654 | resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.44.0" 655 | conditions: os=linux & cpu=arm64 & libc=glibc 656 | languageName: node 657 | linkType: hard 658 | 659 | "@rollup/rollup-linux-arm64-musl@npm:4.44.0": 660 | version: 4.44.0 661 | resolution: "@rollup/rollup-linux-arm64-musl@npm:4.44.0" 662 | conditions: os=linux & cpu=arm64 & libc=musl 663 | languageName: node 664 | linkType: hard 665 | 666 | "@rollup/rollup-linux-loongarch64-gnu@npm:4.44.0": 667 | version: 4.44.0 668 | resolution: "@rollup/rollup-linux-loongarch64-gnu@npm:4.44.0" 669 | conditions: os=linux & cpu=loong64 & libc=glibc 670 | languageName: node 671 | linkType: hard 672 | 673 | "@rollup/rollup-linux-powerpc64le-gnu@npm:4.44.0": 674 | version: 4.44.0 675 | resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.44.0" 676 | conditions: os=linux & cpu=ppc64 & libc=glibc 677 | languageName: node 678 | linkType: hard 679 | 680 | "@rollup/rollup-linux-riscv64-gnu@npm:4.44.0": 681 | version: 4.44.0 682 | resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.44.0" 683 | conditions: os=linux & cpu=riscv64 & libc=glibc 684 | languageName: node 685 | linkType: hard 686 | 687 | "@rollup/rollup-linux-riscv64-musl@npm:4.44.0": 688 | version: 4.44.0 689 | resolution: "@rollup/rollup-linux-riscv64-musl@npm:4.44.0" 690 | conditions: os=linux & cpu=riscv64 & libc=musl 691 | languageName: node 692 | linkType: hard 693 | 694 | "@rollup/rollup-linux-s390x-gnu@npm:4.44.0": 695 | version: 4.44.0 696 | resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.44.0" 697 | conditions: os=linux & cpu=s390x & libc=glibc 698 | languageName: node 699 | linkType: hard 700 | 701 | "@rollup/rollup-linux-x64-gnu@npm:4.44.0": 702 | version: 4.44.0 703 | resolution: "@rollup/rollup-linux-x64-gnu@npm:4.44.0" 704 | conditions: os=linux & cpu=x64 & libc=glibc 705 | languageName: node 706 | linkType: hard 707 | 708 | "@rollup/rollup-linux-x64-musl@npm:4.44.0": 709 | version: 4.44.0 710 | resolution: "@rollup/rollup-linux-x64-musl@npm:4.44.0" 711 | conditions: os=linux & cpu=x64 & libc=musl 712 | languageName: node 713 | linkType: hard 714 | 715 | "@rollup/rollup-win32-arm64-msvc@npm:4.44.0": 716 | version: 4.44.0 717 | resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.44.0" 718 | conditions: os=win32 & cpu=arm64 719 | languageName: node 720 | linkType: hard 721 | 722 | "@rollup/rollup-win32-ia32-msvc@npm:4.44.0": 723 | version: 4.44.0 724 | resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.44.0" 725 | conditions: os=win32 & cpu=ia32 726 | languageName: node 727 | linkType: hard 728 | 729 | "@rollup/rollup-win32-x64-msvc@npm:4.44.0": 730 | version: 4.44.0 731 | resolution: "@rollup/rollup-win32-x64-msvc@npm:4.44.0" 732 | conditions: os=win32 & cpu=x64 733 | languageName: node 734 | linkType: hard 735 | 736 | "@testing-library/dom@npm:^10.0.0": 737 | version: 10.0.0 738 | resolution: "@testing-library/dom@npm:10.0.0" 739 | dependencies: 740 | "@babel/code-frame": "npm:^7.10.4" 741 | "@babel/runtime": "npm:^7.12.5" 742 | "@types/aria-query": "npm:^5.0.1" 743 | aria-query: "npm:5.3.0" 744 | chalk: "npm:^4.1.0" 745 | dom-accessibility-api: "npm:^0.5.9" 746 | lz-string: "npm:^1.5.0" 747 | pretty-format: "npm:^27.0.2" 748 | checksum: 10c0/2d12d2a6018a6f1d15e91834180bc068932c699ff1fcbfb80aa21aba519a4f5329c861dfa852e06ee5615bcb92ef2a0f0e755e32684ea3dada63bc34248382ab 749 | languageName: node 750 | linkType: hard 751 | 752 | "@testing-library/jest-dom@npm:^6.0.0": 753 | version: 6.1.4 754 | resolution: "@testing-library/jest-dom@npm:6.1.4" 755 | dependencies: 756 | "@adobe/css-tools": "npm:^4.3.1" 757 | "@babel/runtime": "npm:^7.9.2" 758 | aria-query: "npm:^5.0.0" 759 | chalk: "npm:^3.0.0" 760 | css.escape: "npm:^1.5.1" 761 | dom-accessibility-api: "npm:^0.5.6" 762 | lodash: "npm:^4.17.15" 763 | redent: "npm:^3.0.0" 764 | peerDependencies: 765 | "@jest/globals": ">= 28" 766 | "@types/jest": ">= 28" 767 | jest: ">= 28" 768 | vitest: ">= 0.32" 769 | peerDependenciesMeta: 770 | "@jest/globals": 771 | optional: true 772 | "@types/jest": 773 | optional: true 774 | jest: 775 | optional: true 776 | vitest: 777 | optional: true 778 | checksum: 10c0/2e23f120613fd8ae6d5169bbc94f1a2e4c82b07182057dc94db8ec54ebf32555833442e6c43a187e59715d83704ffb5df49ba88a71f6f32d2683f3d95ba721c7 779 | languageName: node 780 | linkType: hard 781 | 782 | "@testing-library/react@npm:^16.0.0": 783 | version: 16.0.0 784 | resolution: "@testing-library/react@npm:16.0.0" 785 | dependencies: 786 | "@babel/runtime": "npm:^7.12.5" 787 | peerDependencies: 788 | "@testing-library/dom": ^10.0.0 789 | "@types/react": ^18.0.0 790 | "@types/react-dom": ^18.0.0 791 | react: ^18.0.0 792 | react-dom: ^18.0.0 793 | peerDependenciesMeta: 794 | "@types/react": 795 | optional: true 796 | "@types/react-dom": 797 | optional: true 798 | checksum: 10c0/297f97bf4722dad05f11d9cafd47d387dbdb096fea4b79b876c7466460f0f2e345b55b81b3e37fc81ed8185c528cb53dd8455ca1b6b019b229edf6c796f11c9f 799 | languageName: node 800 | linkType: hard 801 | 802 | "@types/aria-query@npm:^5.0.1": 803 | version: 5.0.1 804 | resolution: "@types/aria-query@npm:5.0.1" 805 | checksum: 10c0/bc9e40ce37bd3a1654948778c7829bd55aea1bc5f2cd06fcf6cd650b07bb388995799e9aab6e2d93a6cf55dcba3b85c155f7ba93adefcc7c2e152fc6057061b5 806 | languageName: node 807 | linkType: hard 808 | 809 | "@types/babel__core@npm:^7.20.5": 810 | version: 7.20.5 811 | resolution: "@types/babel__core@npm:7.20.5" 812 | dependencies: 813 | "@babel/parser": "npm:^7.20.7" 814 | "@babel/types": "npm:^7.20.7" 815 | "@types/babel__generator": "npm:*" 816 | "@types/babel__template": "npm:*" 817 | "@types/babel__traverse": "npm:*" 818 | checksum: 10c0/bdee3bb69951e833a4b811b8ee9356b69a61ed5b7a23e1a081ec9249769117fa83aaaf023bb06562a038eb5845155ff663e2d5c75dd95c1d5ccc91db012868ff 819 | languageName: node 820 | linkType: hard 821 | 822 | "@types/babel__generator@npm:*": 823 | version: 7.6.4 824 | resolution: "@types/babel__generator@npm:7.6.4" 825 | dependencies: 826 | "@babel/types": "npm:^7.0.0" 827 | checksum: 10c0/e0051b450e4ba2df0a7e386f08df902a4e920f6f8d6f185d69ddbe9b0e2e2d3ae434bb51e437bc0fca2a9a0f5dc4ca44d3a1941ef75e74371e8be5bf64416fe4 828 | languageName: node 829 | linkType: hard 830 | 831 | "@types/babel__template@npm:*": 832 | version: 7.4.1 833 | resolution: "@types/babel__template@npm:7.4.1" 834 | dependencies: 835 | "@babel/parser": "npm:^7.1.0" 836 | "@babel/types": "npm:^7.0.0" 837 | checksum: 10c0/6f180e96c39765487f27e861d43eebed341ec7a2fc06cdf5a52c22872fae67f474ca165d149c708f4fd9d5482beb66c0a92f77411b234bb30262ed2303e50b1a 838 | languageName: node 839 | linkType: hard 840 | 841 | "@types/babel__traverse@npm:*": 842 | version: 7.20.1 843 | resolution: "@types/babel__traverse@npm:7.20.1" 844 | dependencies: 845 | "@babel/types": "npm:^7.20.7" 846 | checksum: 10c0/5a6a3a26be090573309527184a31f1b82ef55f3d73d811c15f181d323e471305f2390651a04d49d4cd4ca41bbeabb53c9f7862a8e09eab5a0f8910a6aec6e867 847 | languageName: node 848 | linkType: hard 849 | 850 | "@types/chai@npm:^5.2.2": 851 | version: 5.2.2 852 | resolution: "@types/chai@npm:5.2.2" 853 | dependencies: 854 | "@types/deep-eql": "npm:*" 855 | checksum: 10c0/49282bf0e8246800ebb36f17256f97bd3a8c4fb31f92ad3c0eaa7623518d7e87f1eaad4ad206960fcaf7175854bdff4cb167e4fe96811e0081b4ada83dd533ec 856 | languageName: node 857 | linkType: hard 858 | 859 | "@types/deep-eql@npm:*": 860 | version: 4.0.2 861 | resolution: "@types/deep-eql@npm:4.0.2" 862 | checksum: 10c0/bf3f811843117900d7084b9d0c852da9a044d12eb40e6de73b552598a6843c21291a8a381b0532644574beecd5e3491c5ff3a0365ab86b15d59862c025384844 863 | languageName: node 864 | linkType: hard 865 | 866 | "@types/estree@npm:1.0.8, @types/estree@npm:^1.0.0": 867 | version: 1.0.8 868 | resolution: "@types/estree@npm:1.0.8" 869 | checksum: 10c0/39d34d1afaa338ab9763f37ad6066e3f349444f9052b9676a7cc0252ef9485a41c6d81c9c4e0d26e9077993354edf25efc853f3224dd4b447175ef62bdcc86a5 870 | languageName: node 871 | linkType: hard 872 | 873 | "@types/prop-types@npm:*": 874 | version: 15.7.5 875 | resolution: "@types/prop-types@npm:15.7.5" 876 | checksum: 10c0/648aae41423821c61c83823ae36116c8d0f68258f8b609bdbc257752dcd616438d6343d554262aa9a7edaee5a19aca2e028a74fa2d0f40fffaf2816bc7056857 877 | languageName: node 878 | linkType: hard 879 | 880 | "@types/react-dom@npm:*": 881 | version: 18.0.11 882 | resolution: "@types/react-dom@npm:18.0.11" 883 | dependencies: 884 | "@types/react": "npm:*" 885 | checksum: 10c0/8bf1e3f710221a937613df4d192f3b9e5a30e5c3103cac52c5210fb56b79f7a8cc66137d3bc5c9d92d375165a97fae53284724191bc01cb9898564fa02595569 886 | languageName: node 887 | linkType: hard 888 | 889 | "@types/react@npm:*": 890 | version: 18.0.31 891 | resolution: "@types/react@npm:18.0.31" 892 | dependencies: 893 | "@types/prop-types": "npm:*" 894 | "@types/scheduler": "npm:*" 895 | csstype: "npm:^3.0.2" 896 | checksum: 10c0/608b7fe96cbbc16458a1874c79843da8e6732d79894eca60368ded6f28a5a659e935933f2ed99ec1b7331834ca23ac22be37aed2f49f6ad3081dfe00f34a7d80 897 | languageName: node 898 | linkType: hard 899 | 900 | "@types/scheduler@npm:*": 901 | version: 0.16.3 902 | resolution: "@types/scheduler@npm:0.16.3" 903 | checksum: 10c0/c249d4b96fa05165ac22c214f94a045ee0af8beedefdbc54b769febd0044cab3a874e55419841a0dcc76439e379a63e257f3253c87168e3261e7bc783d623302 904 | languageName: node 905 | linkType: hard 906 | 907 | "@types/warning@npm:^3.0.0": 908 | version: 3.0.3 909 | resolution: "@types/warning@npm:3.0.3" 910 | checksum: 10c0/82c1235bd05d7f6940f80012404844e225d589ad338aa4585b231a2c8deacc695b683f4168757c82c10047b81854cbeaaeefd60536dd67bb48f8a65e20410652 911 | languageName: node 912 | linkType: hard 913 | 914 | "@vitejs/plugin-react@npm:^4.6.0": 915 | version: 4.6.0 916 | resolution: "@vitejs/plugin-react@npm:4.6.0" 917 | dependencies: 918 | "@babel/core": "npm:^7.27.4" 919 | "@babel/plugin-transform-react-jsx-self": "npm:^7.27.1" 920 | "@babel/plugin-transform-react-jsx-source": "npm:^7.27.1" 921 | "@rolldown/pluginutils": "npm:1.0.0-beta.19" 922 | "@types/babel__core": "npm:^7.20.5" 923 | react-refresh: "npm:^0.17.0" 924 | peerDependencies: 925 | vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0 926 | checksum: 10c0/73b8f271978a0337debb255afd1667f49c2018c118962a8613120383375c4038255a5315cee2ef210dc7fd07cd30d5b12271077ad47db29980f8156b8a49be2c 927 | languageName: node 928 | linkType: hard 929 | 930 | "@vitest/expect@npm:3.2.3": 931 | version: 3.2.3 932 | resolution: "@vitest/expect@npm:3.2.3" 933 | dependencies: 934 | "@types/chai": "npm:^5.2.2" 935 | "@vitest/spy": "npm:3.2.3" 936 | "@vitest/utils": "npm:3.2.3" 937 | chai: "npm:^5.2.0" 938 | tinyrainbow: "npm:^2.0.0" 939 | checksum: 10c0/5eb6278be8f5294779472d1276e150a1b573274441a68c2681c447179abd22af451813fdfbe87e04f5909ca7a0926700f9b79022f227c9816e5d0fa8e0229e15 940 | languageName: node 941 | linkType: hard 942 | 943 | "@vitest/mocker@npm:3.2.3": 944 | version: 3.2.3 945 | resolution: "@vitest/mocker@npm:3.2.3" 946 | dependencies: 947 | "@vitest/spy": "npm:3.2.3" 948 | estree-walker: "npm:^3.0.3" 949 | magic-string: "npm:^0.30.17" 950 | peerDependencies: 951 | msw: ^2.4.9 952 | vite: ^5.0.0 || ^6.0.0 || ^7.0.0-0 953 | peerDependenciesMeta: 954 | msw: 955 | optional: true 956 | vite: 957 | optional: true 958 | checksum: 10c0/b670f229c3b1de5561de3cbbecb18f964d4888355d7f1cb8bbff4350b2cfbe477bef834cc2f66af7727ca7dc567540018885eb652f46e0be1cda4015491dc0a9 959 | languageName: node 960 | linkType: hard 961 | 962 | "@vitest/pretty-format@npm:3.2.3, @vitest/pretty-format@npm:^3.2.3": 963 | version: 3.2.3 964 | resolution: "@vitest/pretty-format@npm:3.2.3" 965 | dependencies: 966 | tinyrainbow: "npm:^2.0.0" 967 | checksum: 10c0/e8fa7b97822c58404bef07d19fa9a49d5b7edb6797dd355584ad7246585bbbe9c55dd1fb05d0c3939b9c15fba05c3e134e2b96ea0cb64ca79a2b9dab60087a6a 968 | languageName: node 969 | linkType: hard 970 | 971 | "@vitest/runner@npm:3.2.3": 972 | version: 3.2.3 973 | resolution: "@vitest/runner@npm:3.2.3" 974 | dependencies: 975 | "@vitest/utils": "npm:3.2.3" 976 | pathe: "npm:^2.0.3" 977 | strip-literal: "npm:^3.0.0" 978 | checksum: 10c0/c20cb6e2ac4fdfb3d4f5136714ea65f9063562d3afaa1574dc82f53d061444bc01583f9915346768ca75f5ea0658f02fb594752e21abbca5ab50290f58732147 979 | languageName: node 980 | linkType: hard 981 | 982 | "@vitest/snapshot@npm:3.2.3": 983 | version: 3.2.3 984 | resolution: "@vitest/snapshot@npm:3.2.3" 985 | dependencies: 986 | "@vitest/pretty-format": "npm:3.2.3" 987 | magic-string: "npm:^0.30.17" 988 | pathe: "npm:^2.0.3" 989 | checksum: 10c0/f6dd0248afb3f3cbcbbb9fd39c2c8273c4ec92176f65e6ba9d36a0c33552d3658013e3a02944e14c7637f51d6702a5c07963b59707ca459bd1ac31f39c81160c 990 | languageName: node 991 | linkType: hard 992 | 993 | "@vitest/spy@npm:3.2.3": 994 | version: 3.2.3 995 | resolution: "@vitest/spy@npm:3.2.3" 996 | dependencies: 997 | tinyspy: "npm:^4.0.3" 998 | checksum: 10c0/ce77d5934ac4741513993aad9d8ff44ff03ff5cf5a177e010c7ffcd8d3060087e56df1938c1100d49de712daf952cd2c72dd83e1684d043e698bd2afe0025f5e 999 | languageName: node 1000 | linkType: hard 1001 | 1002 | "@vitest/utils@npm:3.2.3": 1003 | version: 3.2.3 1004 | resolution: "@vitest/utils@npm:3.2.3" 1005 | dependencies: 1006 | "@vitest/pretty-format": "npm:3.2.3" 1007 | loupe: "npm:^3.1.3" 1008 | tinyrainbow: "npm:^2.0.0" 1009 | checksum: 10c0/c7a785a73bc0d7c0202ced0d9912639b9deb6f05dd6c25700a13d97e13320ccec57660f11ad1f9225419ac485339fdf7af28c8d77456bcb9558e6c7d73ad538a 1010 | languageName: node 1011 | linkType: hard 1012 | 1013 | "abbrev@npm:^3.0.0": 1014 | version: 3.0.0 1015 | resolution: "abbrev@npm:3.0.0" 1016 | checksum: 10c0/049704186396f571650eb7b22ed3627b77a5aedf98bb83caf2eac81ca2a3e25e795394b0464cfb2d6076df3db6a5312139eac5b6a126ca296ac53c5008069c28 1017 | languageName: node 1018 | linkType: hard 1019 | 1020 | "agent-base@npm:^7.0.2, agent-base@npm:^7.1.0, agent-base@npm:^7.1.2": 1021 | version: 7.1.3 1022 | resolution: "agent-base@npm:7.1.3" 1023 | checksum: 10c0/6192b580c5b1d8fb399b9c62bf8343d76654c2dd62afcb9a52b2cf44a8b6ace1e3b704d3fe3547d91555c857d3df02603341ff2cb961b9cfe2b12f9f3c38ee11 1024 | languageName: node 1025 | linkType: hard 1026 | 1027 | "ansi-regex@npm:^5.0.1": 1028 | version: 5.0.1 1029 | resolution: "ansi-regex@npm:5.0.1" 1030 | checksum: 10c0/9a64bb8627b434ba9327b60c027742e5d17ac69277960d041898596271d992d4d52ba7267a63ca10232e29f6107fc8a835f6ce8d719b88c5f8493f8254813737 1031 | languageName: node 1032 | linkType: hard 1033 | 1034 | "ansi-regex@npm:^6.0.1": 1035 | version: 6.0.1 1036 | resolution: "ansi-regex@npm:6.0.1" 1037 | checksum: 10c0/cbe16dbd2c6b2735d1df7976a7070dd277326434f0212f43abf6d87674095d247968209babdaad31bb00882fa68807256ba9be340eec2f1004de14ca75f52a08 1038 | languageName: node 1039 | linkType: hard 1040 | 1041 | "ansi-styles@npm:^4.0.0, ansi-styles@npm:^4.1.0": 1042 | version: 4.3.0 1043 | resolution: "ansi-styles@npm:4.3.0" 1044 | dependencies: 1045 | color-convert: "npm:^2.0.1" 1046 | checksum: 10c0/895a23929da416f2bd3de7e9cb4eabd340949328ab85ddd6e484a637d8f6820d485f53933446f5291c3b760cbc488beb8e88573dd0f9c7daf83dccc8fe81b041 1047 | languageName: node 1048 | linkType: hard 1049 | 1050 | "ansi-styles@npm:^5.0.0": 1051 | version: 5.2.0 1052 | resolution: "ansi-styles@npm:5.2.0" 1053 | checksum: 10c0/9c4ca80eb3c2fb7b33841c210d2f20807f40865d27008d7c3f707b7f95cab7d67462a565e2388ac3285b71cb3d9bb2173de8da37c57692a362885ec34d6e27df 1054 | languageName: node 1055 | linkType: hard 1056 | 1057 | "ansi-styles@npm:^6.1.0": 1058 | version: 6.2.1 1059 | resolution: "ansi-styles@npm:6.2.1" 1060 | checksum: 10c0/5d1ec38c123984bcedd996eac680d548f31828bd679a66db2bdf11844634dde55fec3efa9c6bb1d89056a5e79c1ac540c4c784d592ea1d25028a92227d2f2d5c 1061 | languageName: node 1062 | linkType: hard 1063 | 1064 | "aria-query@npm:5.3.0, aria-query@npm:^5.0.0": 1065 | version: 5.3.0 1066 | resolution: "aria-query@npm:5.3.0" 1067 | dependencies: 1068 | dequal: "npm:^2.0.3" 1069 | checksum: 10c0/2bff0d4eba5852a9dd578ecf47eaef0e82cc52569b48469b0aac2db5145db0b17b7a58d9e01237706d1e14b7a1b0ac9b78e9c97027ad97679dd8f91b85da1469 1070 | languageName: node 1071 | linkType: hard 1072 | 1073 | "assertion-error@npm:^2.0.1": 1074 | version: 2.0.1 1075 | resolution: "assertion-error@npm:2.0.1" 1076 | checksum: 10c0/bbbcb117ac6480138f8c93cf7f535614282dea9dc828f540cdece85e3c665e8f78958b96afac52f29ff883c72638e6a87d469ecc9fe5bc902df03ed24a55dba8 1077 | languageName: node 1078 | linkType: hard 1079 | 1080 | "balanced-match@npm:^1.0.0": 1081 | version: 1.0.2 1082 | resolution: "balanced-match@npm:1.0.2" 1083 | checksum: 10c0/9308baf0a7e4838a82bbfd11e01b1cb0f0cf2893bc1676c27c2a8c0e70cbae1c59120c3268517a8ae7fb6376b4639ef81ca22582611dbee4ed28df945134aaee 1084 | languageName: node 1085 | linkType: hard 1086 | 1087 | "brace-expansion@npm:^2.0.1": 1088 | version: 2.0.2 1089 | resolution: "brace-expansion@npm:2.0.2" 1090 | dependencies: 1091 | balanced-match: "npm:^1.0.0" 1092 | checksum: 10c0/6d117a4c793488af86b83172deb6af143e94c17bc53b0b3cec259733923b4ca84679d506ac261f4ba3c7ed37c46018e2ff442f9ce453af8643ecd64f4a54e6cf 1093 | languageName: node 1094 | linkType: hard 1095 | 1096 | "browserslist@npm:^4.24.0": 1097 | version: 4.24.3 1098 | resolution: "browserslist@npm:4.24.3" 1099 | dependencies: 1100 | caniuse-lite: "npm:^1.0.30001688" 1101 | electron-to-chromium: "npm:^1.5.73" 1102 | node-releases: "npm:^2.0.19" 1103 | update-browserslist-db: "npm:^1.1.1" 1104 | bin: 1105 | browserslist: cli.js 1106 | checksum: 10c0/bab261ef7b6e1656a719a9fa31240ae7ce4d5ba68e479f6b11e348d819346ab4c0ff6f4821f43adcc9c193a734b186775a83b37979e70a69d182965909fe569a 1107 | languageName: node 1108 | linkType: hard 1109 | 1110 | "cac@npm:^6.7.14": 1111 | version: 6.7.14 1112 | resolution: "cac@npm:6.7.14" 1113 | checksum: 10c0/4ee06aaa7bab8981f0d54e5f5f9d4adcd64058e9697563ce336d8a3878ed018ee18ebe5359b2430eceae87e0758e62ea2019c3f52ae6e211b1bd2e133856cd10 1114 | languageName: node 1115 | linkType: hard 1116 | 1117 | "cacache@npm:^19.0.1": 1118 | version: 19.0.1 1119 | resolution: "cacache@npm:19.0.1" 1120 | dependencies: 1121 | "@npmcli/fs": "npm:^4.0.0" 1122 | fs-minipass: "npm:^3.0.0" 1123 | glob: "npm:^10.2.2" 1124 | lru-cache: "npm:^10.0.1" 1125 | minipass: "npm:^7.0.3" 1126 | minipass-collect: "npm:^2.0.1" 1127 | minipass-flush: "npm:^1.0.5" 1128 | minipass-pipeline: "npm:^1.2.4" 1129 | p-map: "npm:^7.0.2" 1130 | ssri: "npm:^12.0.0" 1131 | tar: "npm:^7.4.3" 1132 | unique-filename: "npm:^4.0.0" 1133 | checksum: 10c0/01f2134e1bd7d3ab68be851df96c8d63b492b1853b67f2eecb2c37bb682d37cb70bb858a16f2f0554d3c0071be6dfe21456a1ff6fa4b7eed996570d6a25ffe9c 1134 | languageName: node 1135 | linkType: hard 1136 | 1137 | "caniuse-lite@npm:^1.0.30001688": 1138 | version: 1.0.30001690 1139 | resolution: "caniuse-lite@npm:1.0.30001690" 1140 | checksum: 10c0/646bd469032afa90400a84dec30a2b00a6eda62c03ead358117e3f884cda8aacec02ec058a6dbee5eaf9714f83e483b9b0eb4fb42febb8076569f5ca40f1d347 1141 | languageName: node 1142 | linkType: hard 1143 | 1144 | "chai@npm:^5.2.0": 1145 | version: 5.2.0 1146 | resolution: "chai@npm:5.2.0" 1147 | dependencies: 1148 | assertion-error: "npm:^2.0.1" 1149 | check-error: "npm:^2.1.1" 1150 | deep-eql: "npm:^5.0.1" 1151 | loupe: "npm:^3.1.0" 1152 | pathval: "npm:^2.0.0" 1153 | checksum: 10c0/dfd1cb719c7cebb051b727672d382a35338af1470065cb12adb01f4ee451bbf528e0e0f9ab2016af5fc1eea4df6e7f4504dc8443f8f00bd8fb87ad32dc516f7d 1154 | languageName: node 1155 | linkType: hard 1156 | 1157 | "chalk@npm:^3.0.0": 1158 | version: 3.0.0 1159 | resolution: "chalk@npm:3.0.0" 1160 | dependencies: 1161 | ansi-styles: "npm:^4.1.0" 1162 | supports-color: "npm:^7.1.0" 1163 | checksum: 10c0/ee650b0a065b3d7a6fda258e75d3a86fc8e4effa55871da730a9e42ccb035bf5fd203525e5a1ef45ec2582ecc4f65b47eb11357c526b84dd29a14fb162c414d2 1164 | languageName: node 1165 | linkType: hard 1166 | 1167 | "chalk@npm:^4.1.0": 1168 | version: 4.1.2 1169 | resolution: "chalk@npm:4.1.2" 1170 | dependencies: 1171 | ansi-styles: "npm:^4.1.0" 1172 | supports-color: "npm:^7.1.0" 1173 | checksum: 10c0/4a3fef5cc34975c898ffe77141450f679721df9dde00f6c304353fa9c8b571929123b26a0e4617bde5018977eb655b31970c297b91b63ee83bb82aeb04666880 1174 | languageName: node 1175 | linkType: hard 1176 | 1177 | "check-error@npm:^2.1.1": 1178 | version: 2.1.1 1179 | resolution: "check-error@npm:2.1.1" 1180 | checksum: 10c0/979f13eccab306cf1785fa10941a590b4e7ea9916ea2a4f8c87f0316fc3eab07eabefb6e587424ef0f88cbcd3805791f172ea739863ca3d7ce2afc54641c7f0e 1181 | languageName: node 1182 | linkType: hard 1183 | 1184 | "chownr@npm:^3.0.0": 1185 | version: 3.0.0 1186 | resolution: "chownr@npm:3.0.0" 1187 | checksum: 10c0/43925b87700f7e3893296c8e9c56cc58f926411cce3a6e5898136daaf08f08b9a8eb76d37d3267e707d0dcc17aed2e2ebdf5848c0c3ce95cf910a919935c1b10 1188 | languageName: node 1189 | linkType: hard 1190 | 1191 | "clsx@npm:^2.0.0": 1192 | version: 2.0.0 1193 | resolution: "clsx@npm:2.0.0" 1194 | checksum: 10c0/c09f43b3144a0b7826b6b11b6a111b2c7440831004eecc02d333533c5e58ef0aa5f2dce071d3b25fbb8c8ea97b45df96c74bcc1d51c8c2027eb981931107b0cd 1195 | languageName: node 1196 | linkType: hard 1197 | 1198 | "color-convert@npm:^2.0.1": 1199 | version: 2.0.1 1200 | resolution: "color-convert@npm:2.0.1" 1201 | dependencies: 1202 | color-name: "npm:~1.1.4" 1203 | checksum: 10c0/37e1150172f2e311fe1b2df62c6293a342ee7380da7b9cfdba67ea539909afbd74da27033208d01d6d5cfc65ee7868a22e18d7e7648e004425441c0f8a15a7d7 1204 | languageName: node 1205 | linkType: hard 1206 | 1207 | "color-name@npm:~1.1.4": 1208 | version: 1.1.4 1209 | resolution: "color-name@npm:1.1.4" 1210 | checksum: 10c0/a1a3f914156960902f46f7f56bc62effc6c94e84b2cae157a526b1c1f74b677a47ec602bf68a61abfa2b42d15b7c5651c6dbe72a43af720bc588dff885b10f95 1211 | languageName: node 1212 | linkType: hard 1213 | 1214 | "convert-source-map@npm:^2.0.0": 1215 | version: 2.0.0 1216 | resolution: "convert-source-map@npm:2.0.0" 1217 | checksum: 10c0/8f2f7a27a1a011cc6cc88cc4da2d7d0cfa5ee0369508baae3d98c260bb3ac520691464e5bbe4ae7cdf09860c1d69ecc6f70c63c6e7c7f7e3f18ec08484dc7d9b 1218 | languageName: node 1219 | linkType: hard 1220 | 1221 | "cross-spawn@npm:^7.0.0": 1222 | version: 7.0.6 1223 | resolution: "cross-spawn@npm:7.0.6" 1224 | dependencies: 1225 | path-key: "npm:^3.1.0" 1226 | shebang-command: "npm:^2.0.0" 1227 | which: "npm:^2.0.1" 1228 | checksum: 10c0/053ea8b2135caff68a9e81470e845613e374e7309a47731e81639de3eaeb90c3d01af0e0b44d2ab9d50b43467223b88567dfeb3262db942dc063b9976718ffc1 1229 | languageName: node 1230 | linkType: hard 1231 | 1232 | "css.escape@npm:^1.5.1": 1233 | version: 1.5.1 1234 | resolution: "css.escape@npm:1.5.1" 1235 | checksum: 10c0/5e09035e5bf6c2c422b40c6df2eb1529657a17df37fda5d0433d722609527ab98090baf25b13970ca754079a0f3161dd3dfc0e743563ded8cfa0749d861c1525 1236 | languageName: node 1237 | linkType: hard 1238 | 1239 | "csstype@npm:^3.0.2": 1240 | version: 3.1.1 1241 | resolution: "csstype@npm:3.1.1" 1242 | checksum: 10c0/7c8b8c5923049d84132581c13bae6e1faf999746fe3998ba5f3819a8e1cdc7512ace87b7d0a4a69f0f4b8ba11daf835d4f1390af23e09fc4f0baad52c084753a 1243 | languageName: node 1244 | linkType: hard 1245 | 1246 | "debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.3.1, debug@npm:^4.3.4, debug@npm:^4.4.1": 1247 | version: 4.4.1 1248 | resolution: "debug@npm:4.4.1" 1249 | dependencies: 1250 | ms: "npm:^2.1.3" 1251 | peerDependenciesMeta: 1252 | supports-color: 1253 | optional: true 1254 | checksum: 10c0/d2b44bc1afd912b49bb7ebb0d50a860dc93a4dd7d946e8de94abc957bb63726b7dd5aa48c18c2386c379ec024c46692e15ed3ed97d481729f929201e671fcd55 1255 | languageName: node 1256 | linkType: hard 1257 | 1258 | "deep-eql@npm:^5.0.1": 1259 | version: 5.0.2 1260 | resolution: "deep-eql@npm:5.0.2" 1261 | checksum: 10c0/7102cf3b7bb719c6b9c0db2e19bf0aa9318d141581befe8c7ce8ccd39af9eaa4346e5e05adef7f9bd7015da0f13a3a25dcfe306ef79dc8668aedbecb658dd247 1262 | languageName: node 1263 | linkType: hard 1264 | 1265 | "dequal@npm:^2.0.3": 1266 | version: 2.0.3 1267 | resolution: "dequal@npm:2.0.3" 1268 | checksum: 10c0/f98860cdf58b64991ae10205137c0e97d384c3a4edc7f807603887b7c4b850af1224a33d88012009f150861cbee4fa2d322c4cc04b9313bee312e47f6ecaa888 1269 | languageName: node 1270 | linkType: hard 1271 | 1272 | "detect-element-overflow@npm:^2.0.0": 1273 | version: 2.0.0 1274 | resolution: "detect-element-overflow@npm:2.0.0" 1275 | checksum: 10c0/43d764fd84a3bd54bca5aca30069cf573036f95380746c6d405c73f36b3cd14f357c5c04684fcbccfee272c60f1f67d5eeb76aa0a08df58f329be4f61a5fdb38 1276 | languageName: node 1277 | linkType: hard 1278 | 1279 | "dom-accessibility-api@npm:^0.5.6, dom-accessibility-api@npm:^0.5.9": 1280 | version: 0.5.16 1281 | resolution: "dom-accessibility-api@npm:0.5.16" 1282 | checksum: 10c0/b2c2eda4fae568977cdac27a9f0c001edf4f95a6a6191dfa611e3721db2478d1badc01db5bb4fa8a848aeee13e442a6c2a4386d65ec65a1436f24715a2f8d053 1283 | languageName: node 1284 | linkType: hard 1285 | 1286 | "eastasianwidth@npm:^0.2.0": 1287 | version: 0.2.0 1288 | resolution: "eastasianwidth@npm:0.2.0" 1289 | checksum: 10c0/26f364ebcdb6395f95124fda411f63137a4bfb5d3a06453f7f23dfe52502905bd84e0488172e0f9ec295fdc45f05c23d5d91baf16bd26f0fe9acd777a188dc39 1290 | languageName: node 1291 | linkType: hard 1292 | 1293 | "electron-to-chromium@npm:^1.5.73": 1294 | version: 1.5.75 1295 | resolution: "electron-to-chromium@npm:1.5.75" 1296 | checksum: 10c0/df769b7a5e9895a8ba8eb7f31b9525a0e00b8aef6e3ecab3faebe90756fc9ac008dddb8d9a2a78d2079cbaebd27da6e1379f77e910163f405bb1a3d622ec4276 1297 | languageName: node 1298 | linkType: hard 1299 | 1300 | "emoji-regex@npm:^8.0.0": 1301 | version: 8.0.0 1302 | resolution: "emoji-regex@npm:8.0.0" 1303 | checksum: 10c0/b6053ad39951c4cf338f9092d7bfba448cdfd46fe6a2a034700b149ac9ffbc137e361cbd3c442297f86bed2e5f7576c1b54cc0a6bf8ef5106cc62f496af35010 1304 | languageName: node 1305 | linkType: hard 1306 | 1307 | "emoji-regex@npm:^9.2.2": 1308 | version: 9.2.2 1309 | resolution: "emoji-regex@npm:9.2.2" 1310 | checksum: 10c0/af014e759a72064cf66e6e694a7fc6b0ed3d8db680427b021a89727689671cefe9d04151b2cad51dbaf85d5ba790d061cd167f1cf32eb7b281f6368b3c181639 1311 | languageName: node 1312 | linkType: hard 1313 | 1314 | "encoding@npm:^0.1.13": 1315 | version: 0.1.13 1316 | resolution: "encoding@npm:0.1.13" 1317 | dependencies: 1318 | iconv-lite: "npm:^0.6.2" 1319 | checksum: 10c0/36d938712ff00fe1f4bac88b43bcffb5930c1efa57bbcdca9d67e1d9d6c57cfb1200fb01efe0f3109b2ce99b231f90779532814a81370a1bd3274a0f58585039 1320 | languageName: node 1321 | linkType: hard 1322 | 1323 | "entities@npm:^4.5.0": 1324 | version: 4.5.0 1325 | resolution: "entities@npm:4.5.0" 1326 | checksum: 10c0/5b039739f7621f5d1ad996715e53d964035f75ad3b9a4d38c6b3804bb226e282ffeae2443624d8fdd9c47d8e926ae9ac009c54671243f0c3294c26af7cc85250 1327 | languageName: node 1328 | linkType: hard 1329 | 1330 | "env-paths@npm:^2.2.0": 1331 | version: 2.2.1 1332 | resolution: "env-paths@npm:2.2.1" 1333 | checksum: 10c0/285325677bf00e30845e330eec32894f5105529db97496ee3f598478e50f008c5352a41a30e5e72ec9de8a542b5a570b85699cd63bd2bc646dbcb9f311d83bc4 1334 | languageName: node 1335 | linkType: hard 1336 | 1337 | "err-code@npm:^2.0.2": 1338 | version: 2.0.3 1339 | resolution: "err-code@npm:2.0.3" 1340 | checksum: 10c0/b642f7b4dd4a376e954947550a3065a9ece6733ab8e51ad80db727aaae0817c2e99b02a97a3d6cecc648a97848305e728289cf312d09af395403a90c9d4d8a66 1341 | languageName: node 1342 | linkType: hard 1343 | 1344 | "es-module-lexer@npm:^1.7.0": 1345 | version: 1.7.0 1346 | resolution: "es-module-lexer@npm:1.7.0" 1347 | checksum: 10c0/4c935affcbfeba7fb4533e1da10fa8568043df1e3574b869385980de9e2d475ddc36769891936dbb07036edb3c3786a8b78ccf44964cd130dedc1f2c984b6c7b 1348 | languageName: node 1349 | linkType: hard 1350 | 1351 | "esbuild@npm:^0.25.0": 1352 | version: 0.25.0 1353 | resolution: "esbuild@npm:0.25.0" 1354 | dependencies: 1355 | "@esbuild/aix-ppc64": "npm:0.25.0" 1356 | "@esbuild/android-arm": "npm:0.25.0" 1357 | "@esbuild/android-arm64": "npm:0.25.0" 1358 | "@esbuild/android-x64": "npm:0.25.0" 1359 | "@esbuild/darwin-arm64": "npm:0.25.0" 1360 | "@esbuild/darwin-x64": "npm:0.25.0" 1361 | "@esbuild/freebsd-arm64": "npm:0.25.0" 1362 | "@esbuild/freebsd-x64": "npm:0.25.0" 1363 | "@esbuild/linux-arm": "npm:0.25.0" 1364 | "@esbuild/linux-arm64": "npm:0.25.0" 1365 | "@esbuild/linux-ia32": "npm:0.25.0" 1366 | "@esbuild/linux-loong64": "npm:0.25.0" 1367 | "@esbuild/linux-mips64el": "npm:0.25.0" 1368 | "@esbuild/linux-ppc64": "npm:0.25.0" 1369 | "@esbuild/linux-riscv64": "npm:0.25.0" 1370 | "@esbuild/linux-s390x": "npm:0.25.0" 1371 | "@esbuild/linux-x64": "npm:0.25.0" 1372 | "@esbuild/netbsd-arm64": "npm:0.25.0" 1373 | "@esbuild/netbsd-x64": "npm:0.25.0" 1374 | "@esbuild/openbsd-arm64": "npm:0.25.0" 1375 | "@esbuild/openbsd-x64": "npm:0.25.0" 1376 | "@esbuild/sunos-x64": "npm:0.25.0" 1377 | "@esbuild/win32-arm64": "npm:0.25.0" 1378 | "@esbuild/win32-ia32": "npm:0.25.0" 1379 | "@esbuild/win32-x64": "npm:0.25.0" 1380 | dependenciesMeta: 1381 | "@esbuild/aix-ppc64": 1382 | optional: true 1383 | "@esbuild/android-arm": 1384 | optional: true 1385 | "@esbuild/android-arm64": 1386 | optional: true 1387 | "@esbuild/android-x64": 1388 | optional: true 1389 | "@esbuild/darwin-arm64": 1390 | optional: true 1391 | "@esbuild/darwin-x64": 1392 | optional: true 1393 | "@esbuild/freebsd-arm64": 1394 | optional: true 1395 | "@esbuild/freebsd-x64": 1396 | optional: true 1397 | "@esbuild/linux-arm": 1398 | optional: true 1399 | "@esbuild/linux-arm64": 1400 | optional: true 1401 | "@esbuild/linux-ia32": 1402 | optional: true 1403 | "@esbuild/linux-loong64": 1404 | optional: true 1405 | "@esbuild/linux-mips64el": 1406 | optional: true 1407 | "@esbuild/linux-ppc64": 1408 | optional: true 1409 | "@esbuild/linux-riscv64": 1410 | optional: true 1411 | "@esbuild/linux-s390x": 1412 | optional: true 1413 | "@esbuild/linux-x64": 1414 | optional: true 1415 | "@esbuild/netbsd-arm64": 1416 | optional: true 1417 | "@esbuild/netbsd-x64": 1418 | optional: true 1419 | "@esbuild/openbsd-arm64": 1420 | optional: true 1421 | "@esbuild/openbsd-x64": 1422 | optional: true 1423 | "@esbuild/sunos-x64": 1424 | optional: true 1425 | "@esbuild/win32-arm64": 1426 | optional: true 1427 | "@esbuild/win32-ia32": 1428 | optional: true 1429 | "@esbuild/win32-x64": 1430 | optional: true 1431 | bin: 1432 | esbuild: bin/esbuild 1433 | checksum: 10c0/5767b72da46da3cfec51661647ec850ddbf8a8d0662771139f10ef0692a8831396a0004b2be7966cecdb08264fb16bdc16290dcecd92396fac5f12d722fa013d 1434 | languageName: node 1435 | linkType: hard 1436 | 1437 | "escalade@npm:^3.2.0": 1438 | version: 3.2.0 1439 | resolution: "escalade@npm:3.2.0" 1440 | checksum: 10c0/ced4dd3a78e15897ed3be74e635110bbf3b08877b0a41be50dcb325ee0e0b5f65fc2d50e9845194d7c4633f327e2e1c6cce00a71b617c5673df0374201d67f65 1441 | languageName: node 1442 | linkType: hard 1443 | 1444 | "estree-walker@npm:^3.0.3": 1445 | version: 3.0.3 1446 | resolution: "estree-walker@npm:3.0.3" 1447 | dependencies: 1448 | "@types/estree": "npm:^1.0.0" 1449 | checksum: 10c0/c12e3c2b2642d2bcae7d5aa495c60fa2f299160946535763969a1c83fc74518ffa9c2cd3a8b69ac56aea547df6a8aac25f729a342992ef0bbac5f1c73e78995d 1450 | languageName: node 1451 | linkType: hard 1452 | 1453 | "expect-type@npm:^1.2.1": 1454 | version: 1.2.1 1455 | resolution: "expect-type@npm:1.2.1" 1456 | checksum: 10c0/b775c9adab3c190dd0d398c722531726cdd6022849b4adba19dceab58dda7e000a7c6c872408cd73d665baa20d381eca36af4f7b393a4ba60dd10232d1fb8898 1457 | languageName: node 1458 | linkType: hard 1459 | 1460 | "exponential-backoff@npm:^3.1.1": 1461 | version: 3.1.1 1462 | resolution: "exponential-backoff@npm:3.1.1" 1463 | checksum: 10c0/160456d2d647e6019640bd07111634d8c353038d9fa40176afb7cd49b0548bdae83b56d05e907c2cce2300b81cae35d800ef92fefb9d0208e190fa3b7d6bb579 1464 | languageName: node 1465 | linkType: hard 1466 | 1467 | "fdir@npm:^6.4.4, fdir@npm:^6.4.6": 1468 | version: 6.4.6 1469 | resolution: "fdir@npm:6.4.6" 1470 | peerDependencies: 1471 | picomatch: ^3 || ^4 1472 | peerDependenciesMeta: 1473 | picomatch: 1474 | optional: true 1475 | checksum: 10c0/45b559cff889934ebb8bc498351e5acba40750ada7e7d6bde197768d2fa67c149be8ae7f8ff34d03f4e1eb20f2764116e56440aaa2f6689e9a4aa7ef06acafe9 1476 | languageName: node 1477 | linkType: hard 1478 | 1479 | "foreground-child@npm:^3.1.0": 1480 | version: 3.1.1 1481 | resolution: "foreground-child@npm:3.1.1" 1482 | dependencies: 1483 | cross-spawn: "npm:^7.0.0" 1484 | signal-exit: "npm:^4.0.1" 1485 | checksum: 10c0/9700a0285628abaeb37007c9a4d92bd49f67210f09067638774338e146c8e9c825c5c877f072b2f75f41dc6a2d0be8664f79ffc03f6576649f54a84fb9b47de0 1486 | languageName: node 1487 | linkType: hard 1488 | 1489 | "fs-minipass@npm:^3.0.0": 1490 | version: 3.0.3 1491 | resolution: "fs-minipass@npm:3.0.3" 1492 | dependencies: 1493 | minipass: "npm:^7.0.3" 1494 | checksum: 10c0/63e80da2ff9b621e2cb1596abcb9207f1cf82b968b116ccd7b959e3323144cce7fb141462200971c38bbf2ecca51695069db45265705bed09a7cd93ae5b89f94 1495 | languageName: node 1496 | linkType: hard 1497 | 1498 | "fsevents@npm:~2.3.2, fsevents@npm:~2.3.3": 1499 | version: 2.3.3 1500 | resolution: "fsevents@npm:2.3.3" 1501 | dependencies: 1502 | node-gyp: "npm:latest" 1503 | checksum: 10c0/a1f0c44595123ed717febbc478aa952e47adfc28e2092be66b8ab1635147254ca6cfe1df792a8997f22716d4cbafc73309899ff7bfac2ac3ad8cf2e4ecc3ec60 1504 | conditions: os=darwin 1505 | languageName: node 1506 | linkType: hard 1507 | 1508 | "fsevents@patch:fsevents@npm%3A~2.3.2#optional!builtin, fsevents@patch:fsevents@npm%3A~2.3.3#optional!builtin": 1509 | version: 2.3.3 1510 | resolution: "fsevents@patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1" 1511 | dependencies: 1512 | node-gyp: "npm:latest" 1513 | conditions: os=darwin 1514 | languageName: node 1515 | linkType: hard 1516 | 1517 | "gensync@npm:^1.0.0-beta.2": 1518 | version: 1.0.0-beta.2 1519 | resolution: "gensync@npm:1.0.0-beta.2" 1520 | checksum: 10c0/782aba6cba65b1bb5af3b095d96249d20edbe8df32dbf4696fd49be2583faf676173bf4809386588828e4dd76a3354fcbeb577bab1c833ccd9fc4577f26103f8 1521 | languageName: node 1522 | linkType: hard 1523 | 1524 | "glob@npm:^10.2.2, glob@npm:^10.3.10": 1525 | version: 10.3.10 1526 | resolution: "glob@npm:10.3.10" 1527 | dependencies: 1528 | foreground-child: "npm:^3.1.0" 1529 | jackspeak: "npm:^2.3.5" 1530 | minimatch: "npm:^9.0.1" 1531 | minipass: "npm:^5.0.0 || ^6.0.2 || ^7.0.0" 1532 | path-scurry: "npm:^1.10.1" 1533 | bin: 1534 | glob: dist/esm/bin.mjs 1535 | checksum: 10c0/13d8a1feb7eac7945f8c8480e11cd4a44b24d26503d99a8d8ac8d5aefbf3e9802a2b6087318a829fad04cb4e829f25c5f4f1110c68966c498720dd261c7e344d 1536 | languageName: node 1537 | linkType: hard 1538 | 1539 | "globals@npm:^11.1.0": 1540 | version: 11.12.0 1541 | resolution: "globals@npm:11.12.0" 1542 | checksum: 10c0/758f9f258e7b19226bd8d4af5d3b0dcf7038780fb23d82e6f98932c44e239f884847f1766e8fa9cc5635ccb3204f7fa7314d4408dd4002a5e8ea827b4018f0a1 1543 | languageName: node 1544 | linkType: hard 1545 | 1546 | "graceful-fs@npm:^4.2.6": 1547 | version: 4.2.11 1548 | resolution: "graceful-fs@npm:4.2.11" 1549 | checksum: 10c0/386d011a553e02bc594ac2ca0bd6d9e4c22d7fa8cfbfc448a6d148c59ea881b092db9dbe3547ae4b88e55f1b01f7c4a2ecc53b310c042793e63aa44cf6c257f2 1550 | languageName: node 1551 | linkType: hard 1552 | 1553 | "happy-dom@npm:^15.10.2": 1554 | version: 15.10.2 1555 | resolution: "happy-dom@npm:15.10.2" 1556 | dependencies: 1557 | entities: "npm:^4.5.0" 1558 | webidl-conversions: "npm:^7.0.0" 1559 | whatwg-mimetype: "npm:^3.0.0" 1560 | checksum: 10c0/b0403c4c53021da25989b320f2a6c0ab760cc538f10e403df9d2f14b0a7d20b1be961192c95322b335dc71fa27941e7e8b883b2d79d7c9c51215a97b3e3097a6 1561 | languageName: node 1562 | linkType: hard 1563 | 1564 | "has-flag@npm:^4.0.0": 1565 | version: 4.0.0 1566 | resolution: "has-flag@npm:4.0.0" 1567 | checksum: 10c0/2e789c61b7888d66993e14e8331449e525ef42aac53c627cc53d1c3334e768bcb6abdc4f5f0de1478a25beec6f0bd62c7549058b7ac53e924040d4f301f02fd1 1568 | languageName: node 1569 | linkType: hard 1570 | 1571 | "http-cache-semantics@npm:^4.1.1": 1572 | version: 4.1.1 1573 | resolution: "http-cache-semantics@npm:4.1.1" 1574 | checksum: 10c0/ce1319b8a382eb3cbb4a37c19f6bfe14e5bb5be3d09079e885e8c513ab2d3cd9214902f8a31c9dc4e37022633ceabfc2d697405deeaf1b8f3552bb4ed996fdfc 1575 | languageName: node 1576 | linkType: hard 1577 | 1578 | "http-proxy-agent@npm:^7.0.0": 1579 | version: 7.0.0 1580 | resolution: "http-proxy-agent@npm:7.0.0" 1581 | dependencies: 1582 | agent-base: "npm:^7.1.0" 1583 | debug: "npm:^4.3.4" 1584 | checksum: 10c0/a11574ff39436cee3c7bc67f259444097b09474605846ddd8edf0bf4ad8644be8533db1aa463426e376865047d05dc22755e638632819317c0c2f1b2196657c8 1585 | languageName: node 1586 | linkType: hard 1587 | 1588 | "https-proxy-agent@npm:^7.0.1": 1589 | version: 7.0.2 1590 | resolution: "https-proxy-agent@npm:7.0.2" 1591 | dependencies: 1592 | agent-base: "npm:^7.0.2" 1593 | debug: "npm:4" 1594 | checksum: 10c0/7735eb90073db087e7e79312e3d97c8c04baf7ea7ca7b013382b6a45abbaa61b281041a98f4e13c8c80d88f843785bcc84ba189165b4b4087b1e3496ba656d77 1595 | languageName: node 1596 | linkType: hard 1597 | 1598 | "husky@npm:^9.0.0": 1599 | version: 9.0.7 1600 | resolution: "husky@npm:9.0.7" 1601 | bin: 1602 | husky: bin.js 1603 | checksum: 10c0/ac36838bc230b42ca878eeb6993cba5499b858700581fa9e8b579227af9ad47bdbf4c050f4145f51f33f77c16d359f329622b7050150c78a7c52be26cc24174e 1604 | languageName: node 1605 | linkType: hard 1606 | 1607 | "iconv-lite@npm:^0.6.2": 1608 | version: 0.6.3 1609 | resolution: "iconv-lite@npm:0.6.3" 1610 | dependencies: 1611 | safer-buffer: "npm:>= 2.1.2 < 3.0.0" 1612 | checksum: 10c0/98102bc66b33fcf5ac044099d1257ba0b7ad5e3ccd3221f34dd508ab4070edff183276221684e1e0555b145fce0850c9f7d2b60a9fcac50fbb4ea0d6e845a3b1 1613 | languageName: node 1614 | linkType: hard 1615 | 1616 | "imurmurhash@npm:^0.1.4": 1617 | version: 0.1.4 1618 | resolution: "imurmurhash@npm:0.1.4" 1619 | checksum: 10c0/8b51313850dd33605c6c9d3fd9638b714f4c4c40250cff658209f30d40da60f78992fb2df5dabee4acf589a6a82bbc79ad5486550754bd9ec4e3fc0d4a57d6a6 1620 | languageName: node 1621 | linkType: hard 1622 | 1623 | "indent-string@npm:^4.0.0": 1624 | version: 4.0.0 1625 | resolution: "indent-string@npm:4.0.0" 1626 | checksum: 10c0/1e1904ddb0cb3d6cce7cd09e27a90184908b7a5d5c21b92e232c93579d314f0b83c246ffb035493d0504b1e9147ba2c9b21df0030f48673fba0496ecd698161f 1627 | languageName: node 1628 | linkType: hard 1629 | 1630 | "ip-address@npm:^9.0.5": 1631 | version: 9.0.5 1632 | resolution: "ip-address@npm:9.0.5" 1633 | dependencies: 1634 | jsbn: "npm:1.1.0" 1635 | sprintf-js: "npm:^1.1.3" 1636 | checksum: 10c0/331cd07fafcb3b24100613e4b53e1a2b4feab11e671e655d46dc09ee233da5011284d09ca40c4ecbdfe1d0004f462958675c224a804259f2f78d2465a87824bc 1637 | languageName: node 1638 | linkType: hard 1639 | 1640 | "is-fullwidth-code-point@npm:^3.0.0": 1641 | version: 3.0.0 1642 | resolution: "is-fullwidth-code-point@npm:3.0.0" 1643 | checksum: 10c0/bb11d825e049f38e04c06373a8d72782eee0205bda9d908cc550ccb3c59b99d750ff9537982e01733c1c94a58e35400661f57042158ff5e8f3e90cf936daf0fc 1644 | languageName: node 1645 | linkType: hard 1646 | 1647 | "isexe@npm:^2.0.0": 1648 | version: 2.0.0 1649 | resolution: "isexe@npm:2.0.0" 1650 | checksum: 10c0/228cfa503fadc2c31596ab06ed6aa82c9976eec2bfd83397e7eaf06d0ccf42cd1dfd6743bf9aeb01aebd4156d009994c5f76ea898d2832c1fe342da923ca457d 1651 | languageName: node 1652 | linkType: hard 1653 | 1654 | "isexe@npm:^3.1.1": 1655 | version: 3.1.1 1656 | resolution: "isexe@npm:3.1.1" 1657 | checksum: 10c0/9ec257654093443eb0a528a9c8cbba9c0ca7616ccb40abd6dde7202734d96bb86e4ac0d764f0f8cd965856aacbff2f4ce23e730dc19dfb41e3b0d865ca6fdcc7 1658 | languageName: node 1659 | linkType: hard 1660 | 1661 | "jackspeak@npm:^2.3.5": 1662 | version: 2.3.6 1663 | resolution: "jackspeak@npm:2.3.6" 1664 | dependencies: 1665 | "@isaacs/cliui": "npm:^8.0.2" 1666 | "@pkgjs/parseargs": "npm:^0.11.0" 1667 | dependenciesMeta: 1668 | "@pkgjs/parseargs": 1669 | optional: true 1670 | checksum: 10c0/f01d8f972d894cd7638bc338e9ef5ddb86f7b208ce177a36d718eac96ec86638a6efa17d0221b10073e64b45edc2ce15340db9380b1f5d5c5d000cbc517dc111 1671 | languageName: node 1672 | linkType: hard 1673 | 1674 | "js-tokens@npm:^3.0.0 || ^4.0.0, js-tokens@npm:^4.0.0": 1675 | version: 4.0.0 1676 | resolution: "js-tokens@npm:4.0.0" 1677 | checksum: 10c0/e248708d377aa058eacf2037b07ded847790e6de892bbad3dac0abba2e759cb9f121b00099a65195616badcb6eca8d14d975cb3e89eb1cfda644756402c8aeed 1678 | languageName: node 1679 | linkType: hard 1680 | 1681 | "js-tokens@npm:^9.0.1": 1682 | version: 9.0.1 1683 | resolution: "js-tokens@npm:9.0.1" 1684 | checksum: 10c0/68dcab8f233dde211a6b5fd98079783cbcd04b53617c1250e3553ee16ab3e6134f5e65478e41d82f6d351a052a63d71024553933808570f04dbf828d7921e80e 1685 | languageName: node 1686 | linkType: hard 1687 | 1688 | "jsbn@npm:1.1.0": 1689 | version: 1.1.0 1690 | resolution: "jsbn@npm:1.1.0" 1691 | checksum: 10c0/4f907fb78d7b712e11dea8c165fe0921f81a657d3443dde75359ed52eb2b5d33ce6773d97985a089f09a65edd80b11cb75c767b57ba47391fee4c969f7215c96 1692 | languageName: node 1693 | linkType: hard 1694 | 1695 | "jsesc@npm:^3.0.2": 1696 | version: 3.1.0 1697 | resolution: "jsesc@npm:3.1.0" 1698 | bin: 1699 | jsesc: bin/jsesc 1700 | checksum: 10c0/531779df5ec94f47e462da26b4cbf05eb88a83d9f08aac2ba04206508fc598527a153d08bd462bae82fc78b3eaa1a908e1a4a79f886e9238641c4cdefaf118b1 1701 | languageName: node 1702 | linkType: hard 1703 | 1704 | "json5@npm:^2.2.3": 1705 | version: 2.2.3 1706 | resolution: "json5@npm:2.2.3" 1707 | bin: 1708 | json5: lib/cli.js 1709 | checksum: 10c0/5a04eed94810fa55c5ea138b2f7a5c12b97c3750bc63d11e511dcecbfef758003861522a070c2272764ee0f4e3e323862f386945aeb5b85b87ee43f084ba586c 1710 | languageName: node 1711 | linkType: hard 1712 | 1713 | "lodash@npm:^4.17.15": 1714 | version: 4.17.21 1715 | resolution: "lodash@npm:4.17.21" 1716 | checksum: 10c0/d8cbea072bb08655bb4c989da418994b073a608dffa608b09ac04b43a791b12aeae7cd7ad919aa4c925f33b48490b5cfe6c1f71d827956071dae2e7bb3a6b74c 1717 | languageName: node 1718 | linkType: hard 1719 | 1720 | "loose-envify@npm:^1.0.0, loose-envify@npm:^1.1.0": 1721 | version: 1.4.0 1722 | resolution: "loose-envify@npm:1.4.0" 1723 | dependencies: 1724 | js-tokens: "npm:^3.0.0 || ^4.0.0" 1725 | bin: 1726 | loose-envify: cli.js 1727 | checksum: 10c0/655d110220983c1a4b9c0c679a2e8016d4b67f6e9c7b5435ff5979ecdb20d0813f4dec0a08674fcbdd4846a3f07edbb50a36811fd37930b94aaa0d9daceb017e 1728 | languageName: node 1729 | linkType: hard 1730 | 1731 | "loupe@npm:^3.1.0, loupe@npm:^3.1.3": 1732 | version: 3.1.3 1733 | resolution: "loupe@npm:3.1.3" 1734 | checksum: 10c0/f5dab4144254677de83a35285be1b8aba58b3861439ce4ba65875d0d5f3445a4a496daef63100ccf02b2dbc25bf58c6db84c9cb0b96d6435331e9d0a33b48541 1735 | languageName: node 1736 | linkType: hard 1737 | 1738 | "lru-cache@npm:^10.0.1, lru-cache@npm:^9.1.1 || ^10.0.0": 1739 | version: 10.2.0 1740 | resolution: "lru-cache@npm:10.2.0" 1741 | checksum: 10c0/c9847612aa2daaef102d30542a8d6d9b2c2bb36581c1bf0dc3ebf5e5f3352c772a749e604afae2e46873b930a9e9523743faac4e5b937c576ab29196774712ee 1742 | languageName: node 1743 | linkType: hard 1744 | 1745 | "lru-cache@npm:^5.1.1": 1746 | version: 5.1.1 1747 | resolution: "lru-cache@npm:5.1.1" 1748 | dependencies: 1749 | yallist: "npm:^3.0.2" 1750 | checksum: 10c0/89b2ef2ef45f543011e38737b8a8622a2f8998cddf0e5437174ef8f1f70a8b9d14a918ab3e232cb3ba343b7abddffa667f0b59075b2b80e6b4d63c3de6127482 1751 | languageName: node 1752 | linkType: hard 1753 | 1754 | "lz-string@npm:^1.5.0": 1755 | version: 1.5.0 1756 | resolution: "lz-string@npm:1.5.0" 1757 | bin: 1758 | lz-string: bin/bin.js 1759 | checksum: 10c0/36128e4de34791838abe979b19927c26e67201ca5acf00880377af7d765b38d1c60847e01c5ec61b1a260c48029084ab3893a3925fd6e48a04011364b089991b 1760 | languageName: node 1761 | linkType: hard 1762 | 1763 | "magic-string@npm:^0.30.17": 1764 | version: 0.30.17 1765 | resolution: "magic-string@npm:0.30.17" 1766 | dependencies: 1767 | "@jridgewell/sourcemap-codec": "npm:^1.5.0" 1768 | checksum: 10c0/16826e415d04b88378f200fe022b53e638e3838b9e496edda6c0e086d7753a44a6ed187adc72d19f3623810589bf139af1a315541cd6a26ae0771a0193eaf7b8 1769 | languageName: node 1770 | linkType: hard 1771 | 1772 | "make-fetch-happen@npm:^14.0.3": 1773 | version: 14.0.3 1774 | resolution: "make-fetch-happen@npm:14.0.3" 1775 | dependencies: 1776 | "@npmcli/agent": "npm:^3.0.0" 1777 | cacache: "npm:^19.0.1" 1778 | http-cache-semantics: "npm:^4.1.1" 1779 | minipass: "npm:^7.0.2" 1780 | minipass-fetch: "npm:^4.0.0" 1781 | minipass-flush: "npm:^1.0.5" 1782 | minipass-pipeline: "npm:^1.2.4" 1783 | negotiator: "npm:^1.0.0" 1784 | proc-log: "npm:^5.0.0" 1785 | promise-retry: "npm:^2.0.1" 1786 | ssri: "npm:^12.0.0" 1787 | checksum: 10c0/c40efb5e5296e7feb8e37155bde8eb70bc57d731b1f7d90e35a092fde403d7697c56fb49334d92d330d6f1ca29a98142036d6480a12681133a0a1453164cb2f0 1788 | languageName: node 1789 | linkType: hard 1790 | 1791 | "min-indent@npm:^1.0.0": 1792 | version: 1.0.1 1793 | resolution: "min-indent@npm:1.0.1" 1794 | checksum: 10c0/7e207bd5c20401b292de291f02913230cb1163abca162044f7db1d951fa245b174dc00869d40dd9a9f32a885ad6a5f3e767ee104cf278f399cb4e92d3f582d5c 1795 | languageName: node 1796 | linkType: hard 1797 | 1798 | "minimatch@npm:^9.0.1": 1799 | version: 9.0.3 1800 | resolution: "minimatch@npm:9.0.3" 1801 | dependencies: 1802 | brace-expansion: "npm:^2.0.1" 1803 | checksum: 10c0/85f407dcd38ac3e180f425e86553911d101455ca3ad5544d6a7cec16286657e4f8a9aa6695803025c55e31e35a91a2252b5dc8e7d527211278b8b65b4dbd5eac 1804 | languageName: node 1805 | linkType: hard 1806 | 1807 | "minipass-collect@npm:^2.0.1": 1808 | version: 2.0.1 1809 | resolution: "minipass-collect@npm:2.0.1" 1810 | dependencies: 1811 | minipass: "npm:^7.0.3" 1812 | checksum: 10c0/5167e73f62bb74cc5019594709c77e6a742051a647fe9499abf03c71dca75515b7959d67a764bdc4f8b361cf897fbf25e2d9869ee039203ed45240f48b9aa06e 1813 | languageName: node 1814 | linkType: hard 1815 | 1816 | "minipass-fetch@npm:^4.0.0": 1817 | version: 4.0.0 1818 | resolution: "minipass-fetch@npm:4.0.0" 1819 | dependencies: 1820 | encoding: "npm:^0.1.13" 1821 | minipass: "npm:^7.0.3" 1822 | minipass-sized: "npm:^1.0.3" 1823 | minizlib: "npm:^3.0.1" 1824 | dependenciesMeta: 1825 | encoding: 1826 | optional: true 1827 | checksum: 10c0/7fa30ce7c373fb6f94c086b374fff1589fd7e78451855d2d06c2e2d9df936d131e73e952163063016592ed3081444bd8d1ea608533313b0149156ce23311da4b 1828 | languageName: node 1829 | linkType: hard 1830 | 1831 | "minipass-flush@npm:^1.0.5": 1832 | version: 1.0.5 1833 | resolution: "minipass-flush@npm:1.0.5" 1834 | dependencies: 1835 | minipass: "npm:^3.0.0" 1836 | checksum: 10c0/2a51b63feb799d2bb34669205eee7c0eaf9dce01883261a5b77410c9408aa447e478efd191b4de6fc1101e796ff5892f8443ef20d9544385819093dbb32d36bd 1837 | languageName: node 1838 | linkType: hard 1839 | 1840 | "minipass-pipeline@npm:^1.2.4": 1841 | version: 1.2.4 1842 | resolution: "minipass-pipeline@npm:1.2.4" 1843 | dependencies: 1844 | minipass: "npm:^3.0.0" 1845 | checksum: 10c0/cbda57cea20b140b797505dc2cac71581a70b3247b84480c1fed5ca5ba46c25ecc25f68bfc9e6dcb1a6e9017dab5c7ada5eab73ad4f0a49d84e35093e0c643f2 1846 | languageName: node 1847 | linkType: hard 1848 | 1849 | "minipass-sized@npm:^1.0.3": 1850 | version: 1.0.3 1851 | resolution: "minipass-sized@npm:1.0.3" 1852 | dependencies: 1853 | minipass: "npm:^3.0.0" 1854 | checksum: 10c0/298f124753efdc745cfe0f2bdfdd81ba25b9f4e753ca4a2066eb17c821f25d48acea607dfc997633ee5bf7b6dfffb4eee4f2051eb168663f0b99fad2fa4829cb 1855 | languageName: node 1856 | linkType: hard 1857 | 1858 | "minipass@npm:^3.0.0": 1859 | version: 3.3.6 1860 | resolution: "minipass@npm:3.3.6" 1861 | dependencies: 1862 | yallist: "npm:^4.0.0" 1863 | checksum: 10c0/a114746943afa1dbbca8249e706d1d38b85ed1298b530f5808ce51f8e9e941962e2a5ad2e00eae7dd21d8a4aae6586a66d4216d1a259385e9d0358f0c1eba16c 1864 | languageName: node 1865 | linkType: hard 1866 | 1867 | "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": 1868 | version: 7.1.2 1869 | resolution: "minipass@npm:7.1.2" 1870 | checksum: 10c0/b0fd20bb9fb56e5fa9a8bfac539e8915ae07430a619e4b86ff71f5fc757ef3924b23b2c4230393af1eda647ed3d75739e4e0acb250a6b1eb277cf7f8fe449557 1871 | languageName: node 1872 | linkType: hard 1873 | 1874 | "minizlib@npm:^3.0.1": 1875 | version: 3.0.2 1876 | resolution: "minizlib@npm:3.0.2" 1877 | dependencies: 1878 | minipass: "npm:^7.1.2" 1879 | checksum: 10c0/9f3bd35e41d40d02469cb30470c55ccc21cae0db40e08d1d0b1dff01cc8cc89a6f78e9c5d2b7c844e485ec0a8abc2238111213fdc5b2038e6d1012eacf316f78 1880 | languageName: node 1881 | linkType: hard 1882 | 1883 | "mkdirp@npm:^3.0.1": 1884 | version: 3.0.1 1885 | resolution: "mkdirp@npm:3.0.1" 1886 | bin: 1887 | mkdirp: dist/cjs/src/bin.js 1888 | checksum: 10c0/9f2b975e9246351f5e3a40dcfac99fcd0baa31fbfab615fe059fb11e51f10e4803c63de1f384c54d656e4db31d000e4767e9ef076a22e12a641357602e31d57d 1889 | languageName: node 1890 | linkType: hard 1891 | 1892 | "ms@npm:^2.1.3": 1893 | version: 2.1.3 1894 | resolution: "ms@npm:2.1.3" 1895 | checksum: 10c0/d924b57e7312b3b63ad21fc5b3dc0af5e78d61a1fc7cfb5457edaf26326bf62be5307cc87ffb6862ef1c2b33b0233cdb5d4f01c4c958cc0d660948b65a287a48 1896 | languageName: node 1897 | linkType: hard 1898 | 1899 | "nanoid@npm:^3.3.11": 1900 | version: 3.3.11 1901 | resolution: "nanoid@npm:3.3.11" 1902 | bin: 1903 | nanoid: bin/nanoid.cjs 1904 | checksum: 10c0/40e7f70b3d15f725ca072dfc4f74e81fcf1fbb02e491cf58ac0c79093adc9b0a73b152bcde57df4b79cd097e13023d7504acb38404a4da7bc1cd8e887b82fe0b 1905 | languageName: node 1906 | linkType: hard 1907 | 1908 | "negotiator@npm:^1.0.0": 1909 | version: 1.0.0 1910 | resolution: "negotiator@npm:1.0.0" 1911 | checksum: 10c0/4c559dd52669ea48e1914f9d634227c561221dd54734070791f999c52ed0ff36e437b2e07d5c1f6e32909fc625fe46491c16e4a8f0572567d4dd15c3a4fda04b 1912 | languageName: node 1913 | linkType: hard 1914 | 1915 | "node-gyp@npm:latest": 1916 | version: 11.0.0 1917 | resolution: "node-gyp@npm:11.0.0" 1918 | dependencies: 1919 | env-paths: "npm:^2.2.0" 1920 | exponential-backoff: "npm:^3.1.1" 1921 | glob: "npm:^10.3.10" 1922 | graceful-fs: "npm:^4.2.6" 1923 | make-fetch-happen: "npm:^14.0.3" 1924 | nopt: "npm:^8.0.0" 1925 | proc-log: "npm:^5.0.0" 1926 | semver: "npm:^7.3.5" 1927 | tar: "npm:^7.4.3" 1928 | which: "npm:^5.0.0" 1929 | bin: 1930 | node-gyp: bin/node-gyp.js 1931 | checksum: 10c0/a3b885bbee2d271f1def32ba2e30ffcf4562a3db33af06b8b365e053153e2dd2051b9945783c3c8e852d26a0f20f65b251c7e83361623383a99635c0280ee573 1932 | languageName: node 1933 | linkType: hard 1934 | 1935 | "node-releases@npm:^2.0.19": 1936 | version: 2.0.19 1937 | resolution: "node-releases@npm:2.0.19" 1938 | checksum: 10c0/52a0dbd25ccf545892670d1551690fe0facb6a471e15f2cfa1b20142a5b255b3aa254af5f59d6ecb69c2bec7390bc643c43aa63b13bf5e64b6075952e716b1aa 1939 | languageName: node 1940 | linkType: hard 1941 | 1942 | "nopt@npm:^8.0.0": 1943 | version: 8.1.0 1944 | resolution: "nopt@npm:8.1.0" 1945 | dependencies: 1946 | abbrev: "npm:^3.0.0" 1947 | bin: 1948 | nopt: bin/nopt.js 1949 | checksum: 10c0/62e9ea70c7a3eb91d162d2c706b6606c041e4e7b547cbbb48f8b3695af457dd6479904d7ace600856bf923dd8d1ed0696f06195c8c20f02ac87c1da0e1d315ef 1950 | languageName: node 1951 | linkType: hard 1952 | 1953 | "p-map@npm:^7.0.2": 1954 | version: 7.0.3 1955 | resolution: "p-map@npm:7.0.3" 1956 | checksum: 10c0/46091610da2b38ce47bcd1d8b4835a6fa4e832848a6682cf1652bc93915770f4617afc844c10a77d1b3e56d2472bb2d5622353fa3ead01a7f42b04fc8e744a5c 1957 | languageName: node 1958 | linkType: hard 1959 | 1960 | "path-key@npm:^3.1.0": 1961 | version: 3.1.1 1962 | resolution: "path-key@npm:3.1.1" 1963 | checksum: 10c0/748c43efd5a569c039d7a00a03b58eecd1d75f3999f5a28303d75f521288df4823bc057d8784eb72358b2895a05f29a070bc9f1f17d28226cc4e62494cc58c4c 1964 | languageName: node 1965 | linkType: hard 1966 | 1967 | "path-scurry@npm:^1.10.1": 1968 | version: 1.10.1 1969 | resolution: "path-scurry@npm:1.10.1" 1970 | dependencies: 1971 | lru-cache: "npm:^9.1.1 || ^10.0.0" 1972 | minipass: "npm:^5.0.0 || ^6.0.2 || ^7.0.0" 1973 | checksum: 10c0/e5dc78a7348d25eec61ab166317e9e9c7b46818aa2c2b9006c507a6ff48c672d011292d9662527213e558f5652ce0afcc788663a061d8b59ab495681840c0c1e 1974 | languageName: node 1975 | linkType: hard 1976 | 1977 | "pathe@npm:^2.0.3": 1978 | version: 2.0.3 1979 | resolution: "pathe@npm:2.0.3" 1980 | checksum: 10c0/c118dc5a8b5c4166011b2b70608762e260085180bb9e33e80a50dcdb1e78c010b1624f4280c492c92b05fc276715a4c357d1f9edc570f8f1b3d90b6839ebaca1 1981 | languageName: node 1982 | linkType: hard 1983 | 1984 | "pathval@npm:^2.0.0": 1985 | version: 2.0.0 1986 | resolution: "pathval@npm:2.0.0" 1987 | checksum: 10c0/602e4ee347fba8a599115af2ccd8179836a63c925c23e04bd056d0674a64b39e3a081b643cc7bc0b84390517df2d800a46fcc5598d42c155fe4977095c2f77c5 1988 | languageName: node 1989 | linkType: hard 1990 | 1991 | "picocolors@npm:^1.1.0, picocolors@npm:^1.1.1": 1992 | version: 1.1.1 1993 | resolution: "picocolors@npm:1.1.1" 1994 | checksum: 10c0/e2e3e8170ab9d7c7421969adaa7e1b31434f789afb9b3f115f6b96d91945041ac3ceb02e9ec6fe6510ff036bcc0bf91e69a1772edc0b707e12b19c0f2d6bcf58 1995 | languageName: node 1996 | linkType: hard 1997 | 1998 | "picomatch@npm:^4.0.2": 1999 | version: 4.0.2 2000 | resolution: "picomatch@npm:4.0.2" 2001 | checksum: 10c0/7c51f3ad2bb42c776f49ebf964c644958158be30d0a510efd5a395e8d49cb5acfed5b82c0c5b365523ce18e6ab85013c9ebe574f60305892ec3fa8eee8304ccc 2002 | languageName: node 2003 | linkType: hard 2004 | 2005 | "postcss@npm:^8.5.6": 2006 | version: 8.5.6 2007 | resolution: "postcss@npm:8.5.6" 2008 | dependencies: 2009 | nanoid: "npm:^3.3.11" 2010 | picocolors: "npm:^1.1.1" 2011 | source-map-js: "npm:^1.2.1" 2012 | checksum: 10c0/5127cc7c91ed7a133a1b7318012d8bfa112da9ef092dddf369ae699a1f10ebbd89b1b9f25f3228795b84585c72aabd5ced5fc11f2ba467eedf7b081a66fad024 2013 | languageName: node 2014 | linkType: hard 2015 | 2016 | "pretty-format@npm:^27.0.2": 2017 | version: 27.5.1 2018 | resolution: "pretty-format@npm:27.5.1" 2019 | dependencies: 2020 | ansi-regex: "npm:^5.0.1" 2021 | ansi-styles: "npm:^5.0.0" 2022 | react-is: "npm:^17.0.1" 2023 | checksum: 10c0/0cbda1031aa30c659e10921fa94e0dd3f903ecbbbe7184a729ad66f2b6e7f17891e8c7d7654c458fa4ccb1a411ffb695b4f17bbcd3fe075fabe181027c4040ed 2024 | languageName: node 2025 | linkType: hard 2026 | 2027 | "proc-log@npm:^5.0.0": 2028 | version: 5.0.0 2029 | resolution: "proc-log@npm:5.0.0" 2030 | checksum: 10c0/bbe5edb944b0ad63387a1d5b1911ae93e05ce8d0f60de1035b218cdcceedfe39dbd2c697853355b70f1a090f8f58fe90da487c85216bf9671f9499d1a897e9e3 2031 | languageName: node 2032 | linkType: hard 2033 | 2034 | "promise-retry@npm:^2.0.1": 2035 | version: 2.0.1 2036 | resolution: "promise-retry@npm:2.0.1" 2037 | dependencies: 2038 | err-code: "npm:^2.0.2" 2039 | retry: "npm:^0.12.0" 2040 | checksum: 10c0/9c7045a1a2928094b5b9b15336dcd2a7b1c052f674550df63cc3f36cd44028e5080448175b6f6ca32b642de81150f5e7b1a98b728f15cb069f2dd60ac2616b96 2041 | languageName: node 2042 | linkType: hard 2043 | 2044 | "react-dom@npm:^18.2.0": 2045 | version: 18.2.0 2046 | resolution: "react-dom@npm:18.2.0" 2047 | dependencies: 2048 | loose-envify: "npm:^1.1.0" 2049 | scheduler: "npm:^0.23.0" 2050 | peerDependencies: 2051 | react: ^18.2.0 2052 | checksum: 10c0/66dfc5f93e13d0674e78ef41f92ed21dfb80f9c4ac4ac25a4b51046d41d4d2186abc915b897f69d3d0ebbffe6184e7c5876f2af26bfa956f179225d921be713a 2053 | languageName: node 2054 | linkType: hard 2055 | 2056 | "react-fit-monorepo@workspace:.": 2057 | version: 0.0.0-use.local 2058 | resolution: "react-fit-monorepo@workspace:." 2059 | dependencies: 2060 | husky: "npm:^9.0.0" 2061 | languageName: unknown 2062 | linkType: soft 2063 | 2064 | "react-fit@workspace:packages/react-fit": 2065 | version: 0.0.0-use.local 2066 | resolution: "react-fit@workspace:packages/react-fit" 2067 | dependencies: 2068 | "@biomejs/biome": "npm:2.0.0" 2069 | "@testing-library/dom": "npm:^10.0.0" 2070 | "@testing-library/jest-dom": "npm:^6.0.0" 2071 | "@testing-library/react": "npm:^16.0.0" 2072 | "@types/react": "npm:*" 2073 | "@types/react-dom": "npm:*" 2074 | "@types/warning": "npm:^3.0.0" 2075 | detect-element-overflow: "npm:^2.0.0" 2076 | happy-dom: "npm:^15.10.2" 2077 | react: "npm:^18.2.0" 2078 | react-dom: "npm:^18.2.0" 2079 | typescript: "npm:^5.5.2" 2080 | vitest: "npm:^3.2.3" 2081 | warning: "npm:^4.0.0" 2082 | peerDependencies: 2083 | "@types/react": ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 2084 | react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 2085 | react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 2086 | peerDependenciesMeta: 2087 | "@types/react": 2088 | optional: true 2089 | languageName: unknown 2090 | linkType: soft 2091 | 2092 | "react-is@npm:^17.0.1": 2093 | version: 17.0.2 2094 | resolution: "react-is@npm:17.0.2" 2095 | checksum: 10c0/2bdb6b93fbb1820b024b496042cce405c57e2f85e777c9aabd55f9b26d145408f9f74f5934676ffdc46f3dcff656d78413a6e43968e7b3f92eea35b3052e9053 2096 | languageName: node 2097 | linkType: hard 2098 | 2099 | "react-refresh@npm:^0.17.0": 2100 | version: 0.17.0 2101 | resolution: "react-refresh@npm:0.17.0" 2102 | checksum: 10c0/002cba940384c9930008c0bce26cac97a9d5682bc623112c2268ba0c155127d9c178a9a5cc2212d560088d60dfd503edd808669a25f9b377f316a32361d0b23c 2103 | languageName: node 2104 | linkType: hard 2105 | 2106 | "react@npm:^18.2.0": 2107 | version: 18.2.0 2108 | resolution: "react@npm:18.2.0" 2109 | dependencies: 2110 | loose-envify: "npm:^1.1.0" 2111 | checksum: 10c0/b562d9b569b0cb315e44b48099f7712283d93df36b19a39a67c254c6686479d3980b7f013dc931f4a5a3ae7645eae6386b4aa5eea933baa54ecd0f9acb0902b8 2112 | languageName: node 2113 | linkType: hard 2114 | 2115 | "redent@npm:^3.0.0": 2116 | version: 3.0.0 2117 | resolution: "redent@npm:3.0.0" 2118 | dependencies: 2119 | indent-string: "npm:^4.0.0" 2120 | strip-indent: "npm:^3.0.0" 2121 | checksum: 10c0/d64a6b5c0b50eb3ddce3ab770f866658a2b9998c678f797919ceb1b586bab9259b311407280bd80b804e2a7c7539b19238ae6a2a20c843f1a7fcff21d48c2eae 2122 | languageName: node 2123 | linkType: hard 2124 | 2125 | "retry@npm:^0.12.0": 2126 | version: 0.12.0 2127 | resolution: "retry@npm:0.12.0" 2128 | checksum: 10c0/59933e8501727ba13ad73ef4a04d5280b3717fd650408460c987392efe9d7be2040778ed8ebe933c5cbd63da3dcc37919c141ef8af0a54a6e4fca5a2af177bfe 2129 | languageName: node 2130 | linkType: hard 2131 | 2132 | "rollup@npm:^4.40.0": 2133 | version: 4.44.0 2134 | resolution: "rollup@npm:4.44.0" 2135 | dependencies: 2136 | "@rollup/rollup-android-arm-eabi": "npm:4.44.0" 2137 | "@rollup/rollup-android-arm64": "npm:4.44.0" 2138 | "@rollup/rollup-darwin-arm64": "npm:4.44.0" 2139 | "@rollup/rollup-darwin-x64": "npm:4.44.0" 2140 | "@rollup/rollup-freebsd-arm64": "npm:4.44.0" 2141 | "@rollup/rollup-freebsd-x64": "npm:4.44.0" 2142 | "@rollup/rollup-linux-arm-gnueabihf": "npm:4.44.0" 2143 | "@rollup/rollup-linux-arm-musleabihf": "npm:4.44.0" 2144 | "@rollup/rollup-linux-arm64-gnu": "npm:4.44.0" 2145 | "@rollup/rollup-linux-arm64-musl": "npm:4.44.0" 2146 | "@rollup/rollup-linux-loongarch64-gnu": "npm:4.44.0" 2147 | "@rollup/rollup-linux-powerpc64le-gnu": "npm:4.44.0" 2148 | "@rollup/rollup-linux-riscv64-gnu": "npm:4.44.0" 2149 | "@rollup/rollup-linux-riscv64-musl": "npm:4.44.0" 2150 | "@rollup/rollup-linux-s390x-gnu": "npm:4.44.0" 2151 | "@rollup/rollup-linux-x64-gnu": "npm:4.44.0" 2152 | "@rollup/rollup-linux-x64-musl": "npm:4.44.0" 2153 | "@rollup/rollup-win32-arm64-msvc": "npm:4.44.0" 2154 | "@rollup/rollup-win32-ia32-msvc": "npm:4.44.0" 2155 | "@rollup/rollup-win32-x64-msvc": "npm:4.44.0" 2156 | "@types/estree": "npm:1.0.8" 2157 | fsevents: "npm:~2.3.2" 2158 | dependenciesMeta: 2159 | "@rollup/rollup-android-arm-eabi": 2160 | optional: true 2161 | "@rollup/rollup-android-arm64": 2162 | optional: true 2163 | "@rollup/rollup-darwin-arm64": 2164 | optional: true 2165 | "@rollup/rollup-darwin-x64": 2166 | optional: true 2167 | "@rollup/rollup-freebsd-arm64": 2168 | optional: true 2169 | "@rollup/rollup-freebsd-x64": 2170 | optional: true 2171 | "@rollup/rollup-linux-arm-gnueabihf": 2172 | optional: true 2173 | "@rollup/rollup-linux-arm-musleabihf": 2174 | optional: true 2175 | "@rollup/rollup-linux-arm64-gnu": 2176 | optional: true 2177 | "@rollup/rollup-linux-arm64-musl": 2178 | optional: true 2179 | "@rollup/rollup-linux-loongarch64-gnu": 2180 | optional: true 2181 | "@rollup/rollup-linux-powerpc64le-gnu": 2182 | optional: true 2183 | "@rollup/rollup-linux-riscv64-gnu": 2184 | optional: true 2185 | "@rollup/rollup-linux-riscv64-musl": 2186 | optional: true 2187 | "@rollup/rollup-linux-s390x-gnu": 2188 | optional: true 2189 | "@rollup/rollup-linux-x64-gnu": 2190 | optional: true 2191 | "@rollup/rollup-linux-x64-musl": 2192 | optional: true 2193 | "@rollup/rollup-win32-arm64-msvc": 2194 | optional: true 2195 | "@rollup/rollup-win32-ia32-msvc": 2196 | optional: true 2197 | "@rollup/rollup-win32-x64-msvc": 2198 | optional: true 2199 | fsevents: 2200 | optional: true 2201 | bin: 2202 | rollup: dist/bin/rollup 2203 | checksum: 10c0/ff3e0741f2fc7b7b183079628cf50fcfc9163bef86ecfbc9f4e4023adfdee375b7075940963514e2bc4969764688d38d67095bce038b0ad5d572207f114afff5 2204 | languageName: node 2205 | linkType: hard 2206 | 2207 | "safer-buffer@npm:>= 2.1.2 < 3.0.0": 2208 | version: 2.1.2 2209 | resolution: "safer-buffer@npm:2.1.2" 2210 | checksum: 10c0/7e3c8b2e88a1841c9671094bbaeebd94448111dd90a81a1f606f3f67708a6ec57763b3b47f06da09fc6054193e0e6709e77325415dc8422b04497a8070fa02d4 2211 | languageName: node 2212 | linkType: hard 2213 | 2214 | "scheduler@npm:^0.23.0": 2215 | version: 0.23.0 2216 | resolution: "scheduler@npm:0.23.0" 2217 | dependencies: 2218 | loose-envify: "npm:^1.1.0" 2219 | checksum: 10c0/b777f7ca0115e6d93e126ac490dbd82642d14983b3079f58f35519d992fa46260be7d6e6cede433a92db70306310c6f5f06e144f0e40c484199e09c1f7be53dd 2220 | languageName: node 2221 | linkType: hard 2222 | 2223 | "semver@npm:^6.3.1": 2224 | version: 6.3.1 2225 | resolution: "semver@npm:6.3.1" 2226 | bin: 2227 | semver: bin/semver.js 2228 | checksum: 10c0/e3d79b609071caa78bcb6ce2ad81c7966a46a7431d9d58b8800cfa9cb6a63699b3899a0e4bcce36167a284578212d9ae6942b6929ba4aa5015c079a67751d42d 2229 | languageName: node 2230 | linkType: hard 2231 | 2232 | "semver@npm:^7.3.5": 2233 | version: 7.6.3 2234 | resolution: "semver@npm:7.6.3" 2235 | bin: 2236 | semver: bin/semver.js 2237 | checksum: 10c0/88f33e148b210c153873cb08cfe1e281d518aaa9a666d4d148add6560db5cd3c582f3a08ccb91f38d5f379ead256da9931234ed122057f40bb5766e65e58adaf 2238 | languageName: node 2239 | linkType: hard 2240 | 2241 | "shebang-command@npm:^2.0.0": 2242 | version: 2.0.0 2243 | resolution: "shebang-command@npm:2.0.0" 2244 | dependencies: 2245 | shebang-regex: "npm:^3.0.0" 2246 | checksum: 10c0/a41692e7d89a553ef21d324a5cceb5f686d1f3c040759c50aab69688634688c5c327f26f3ecf7001ebfd78c01f3c7c0a11a7c8bfd0a8bc9f6240d4f40b224e4e 2247 | languageName: node 2248 | linkType: hard 2249 | 2250 | "shebang-regex@npm:^3.0.0": 2251 | version: 3.0.0 2252 | resolution: "shebang-regex@npm:3.0.0" 2253 | checksum: 10c0/1dbed0726dd0e1152a92696c76c7f06084eb32a90f0528d11acd764043aacf76994b2fb30aa1291a21bd019d6699164d048286309a278855ee7bec06cf6fb690 2254 | languageName: node 2255 | linkType: hard 2256 | 2257 | "siginfo@npm:^2.0.0": 2258 | version: 2.0.0 2259 | resolution: "siginfo@npm:2.0.0" 2260 | checksum: 10c0/3def8f8e516fbb34cb6ae415b07ccc5d9c018d85b4b8611e3dc6f8be6d1899f693a4382913c9ed51a06babb5201639d76453ab297d1c54a456544acf5c892e34 2261 | languageName: node 2262 | linkType: hard 2263 | 2264 | "signal-exit@npm:^4.0.1": 2265 | version: 4.1.0 2266 | resolution: "signal-exit@npm:4.1.0" 2267 | checksum: 10c0/41602dce540e46d599edba9d9860193398d135f7ff72cab629db5171516cfae628d21e7bfccde1bbfdf11c48726bc2a6d1a8fb8701125852fbfda7cf19c6aa83 2268 | languageName: node 2269 | linkType: hard 2270 | 2271 | "smart-buffer@npm:^4.2.0": 2272 | version: 4.2.0 2273 | resolution: "smart-buffer@npm:4.2.0" 2274 | checksum: 10c0/a16775323e1404dd43fabafe7460be13a471e021637bc7889468eb45ce6a6b207261f454e4e530a19500cc962c4cc5348583520843b363f4193cee5c00e1e539 2275 | languageName: node 2276 | linkType: hard 2277 | 2278 | "socks-proxy-agent@npm:^8.0.3": 2279 | version: 8.0.5 2280 | resolution: "socks-proxy-agent@npm:8.0.5" 2281 | dependencies: 2282 | agent-base: "npm:^7.1.2" 2283 | debug: "npm:^4.3.4" 2284 | socks: "npm:^2.8.3" 2285 | checksum: 10c0/5d2c6cecba6821389aabf18728325730504bf9bb1d9e342e7987a5d13badd7a98838cc9a55b8ed3cb866ad37cc23e1086f09c4d72d93105ce9dfe76330e9d2a6 2286 | languageName: node 2287 | linkType: hard 2288 | 2289 | "socks@npm:^2.8.3": 2290 | version: 2.8.3 2291 | resolution: "socks@npm:2.8.3" 2292 | dependencies: 2293 | ip-address: "npm:^9.0.5" 2294 | smart-buffer: "npm:^4.2.0" 2295 | checksum: 10c0/d54a52bf9325165770b674a67241143a3d8b4e4c8884560c4e0e078aace2a728dffc7f70150660f51b85797c4e1a3b82f9b7aa25e0a0ceae1a243365da5c51a7 2296 | languageName: node 2297 | linkType: hard 2298 | 2299 | "source-map-js@npm:^1.2.1": 2300 | version: 1.2.1 2301 | resolution: "source-map-js@npm:1.2.1" 2302 | checksum: 10c0/7bda1fc4c197e3c6ff17de1b8b2c20e60af81b63a52cb32ec5a5d67a20a7d42651e2cb34ebe93833c5a2a084377e17455854fee3e21e7925c64a51b6a52b0faf 2303 | languageName: node 2304 | linkType: hard 2305 | 2306 | "sprintf-js@npm:^1.1.3": 2307 | version: 1.1.3 2308 | resolution: "sprintf-js@npm:1.1.3" 2309 | checksum: 10c0/09270dc4f30d479e666aee820eacd9e464215cdff53848b443964202bf4051490538e5dd1b42e1a65cf7296916ca17640aebf63dae9812749c7542ee5f288dec 2310 | languageName: node 2311 | linkType: hard 2312 | 2313 | "ssri@npm:^12.0.0": 2314 | version: 12.0.0 2315 | resolution: "ssri@npm:12.0.0" 2316 | dependencies: 2317 | minipass: "npm:^7.0.3" 2318 | checksum: 10c0/caddd5f544b2006e88fa6b0124d8d7b28208b83c72d7672d5ade44d794525d23b540f3396108c4eb9280dcb7c01f0bef50682f5b4b2c34291f7c5e211fd1417d 2319 | languageName: node 2320 | linkType: hard 2321 | 2322 | "stackback@npm:0.0.2": 2323 | version: 0.0.2 2324 | resolution: "stackback@npm:0.0.2" 2325 | checksum: 10c0/89a1416668f950236dd5ac9f9a6b2588e1b9b62b1b6ad8dff1bfc5d1a15dbf0aafc9b52d2226d00c28dffff212da464eaeebfc6b7578b9d180cef3e3782c5983 2326 | languageName: node 2327 | linkType: hard 2328 | 2329 | "std-env@npm:^3.9.0": 2330 | version: 3.9.0 2331 | resolution: "std-env@npm:3.9.0" 2332 | checksum: 10c0/4a6f9218aef3f41046c3c7ecf1f98df00b30a07f4f35c6d47b28329bc2531eef820828951c7d7b39a1c5eb19ad8a46e3ddfc7deb28f0a2f3ceebee11bab7ba50 2333 | languageName: node 2334 | linkType: hard 2335 | 2336 | "string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^4.1.0": 2337 | version: 4.2.3 2338 | resolution: "string-width@npm:4.2.3" 2339 | dependencies: 2340 | emoji-regex: "npm:^8.0.0" 2341 | is-fullwidth-code-point: "npm:^3.0.0" 2342 | strip-ansi: "npm:^6.0.1" 2343 | checksum: 10c0/1e525e92e5eae0afd7454086eed9c818ee84374bb80328fc41217ae72ff5f065ef1c9d7f72da41de40c75fa8bb3dee63d92373fd492c84260a552c636392a47b 2344 | languageName: node 2345 | linkType: hard 2346 | 2347 | "string-width@npm:^5.0.1, string-width@npm:^5.1.2": 2348 | version: 5.1.2 2349 | resolution: "string-width@npm:5.1.2" 2350 | dependencies: 2351 | eastasianwidth: "npm:^0.2.0" 2352 | emoji-regex: "npm:^9.2.2" 2353 | strip-ansi: "npm:^7.0.1" 2354 | checksum: 10c0/ab9c4264443d35b8b923cbdd513a089a60de339216d3b0ed3be3ba57d6880e1a192b70ae17225f764d7adbf5994e9bb8df253a944736c15a0240eff553c678ca 2355 | languageName: node 2356 | linkType: hard 2357 | 2358 | "strip-ansi-cjs@npm:strip-ansi@^6.0.1, strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1": 2359 | version: 6.0.1 2360 | resolution: "strip-ansi@npm:6.0.1" 2361 | dependencies: 2362 | ansi-regex: "npm:^5.0.1" 2363 | checksum: 10c0/1ae5f212a126fe5b167707f716942490e3933085a5ff6c008ab97ab2f272c8025d3aa218b7bd6ab25729ca20cc81cddb252102f8751e13482a5199e873680952 2364 | languageName: node 2365 | linkType: hard 2366 | 2367 | "strip-ansi@npm:^7.0.1": 2368 | version: 7.1.0 2369 | resolution: "strip-ansi@npm:7.1.0" 2370 | dependencies: 2371 | ansi-regex: "npm:^6.0.1" 2372 | checksum: 10c0/a198c3762e8832505328cbf9e8c8381de14a4fa50a4f9b2160138158ea88c0f5549fb50cb13c651c3088f47e63a108b34622ec18c0499b6c8c3a5ddf6b305ac4 2373 | languageName: node 2374 | linkType: hard 2375 | 2376 | "strip-indent@npm:^3.0.0": 2377 | version: 3.0.0 2378 | resolution: "strip-indent@npm:3.0.0" 2379 | dependencies: 2380 | min-indent: "npm:^1.0.0" 2381 | checksum: 10c0/ae0deaf41c8d1001c5d4fbe16cb553865c1863da4fae036683b474fa926af9fc121e155cb3fc57a68262b2ae7d5b8420aa752c97a6428c315d00efe2a3875679 2382 | languageName: node 2383 | linkType: hard 2384 | 2385 | "strip-literal@npm:^3.0.0": 2386 | version: 3.0.0 2387 | resolution: "strip-literal@npm:3.0.0" 2388 | dependencies: 2389 | js-tokens: "npm:^9.0.1" 2390 | checksum: 10c0/d81657f84aba42d4bbaf2a677f7e7f34c1f3de5a6726db8bc1797f9c0b303ba54d4660383a74bde43df401cf37cce1dff2c842c55b077a4ceee11f9e31fba828 2391 | languageName: node 2392 | linkType: hard 2393 | 2394 | "supports-color@npm:^7.1.0": 2395 | version: 7.2.0 2396 | resolution: "supports-color@npm:7.2.0" 2397 | dependencies: 2398 | has-flag: "npm:^4.0.0" 2399 | checksum: 10c0/afb4c88521b8b136b5f5f95160c98dee7243dc79d5432db7efc27efb219385bbc7d9427398e43dd6cc730a0f87d5085ce1652af7efbe391327bc0a7d0f7fc124 2400 | languageName: node 2401 | linkType: hard 2402 | 2403 | "tar@npm:^7.4.3": 2404 | version: 7.4.3 2405 | resolution: "tar@npm:7.4.3" 2406 | dependencies: 2407 | "@isaacs/fs-minipass": "npm:^4.0.0" 2408 | chownr: "npm:^3.0.0" 2409 | minipass: "npm:^7.1.2" 2410 | minizlib: "npm:^3.0.1" 2411 | mkdirp: "npm:^3.0.1" 2412 | yallist: "npm:^5.0.0" 2413 | checksum: 10c0/d4679609bb2a9b48eeaf84632b6d844128d2412b95b6de07d53d8ee8baf4ca0857c9331dfa510390a0727b550fd543d4d1a10995ad86cdf078423fbb8d99831d 2414 | languageName: node 2415 | linkType: hard 2416 | 2417 | "test@workspace:test": 2418 | version: 0.0.0-use.local 2419 | resolution: "test@workspace:test" 2420 | dependencies: 2421 | "@biomejs/biome": "npm:2.0.0" 2422 | "@types/react": "npm:*" 2423 | "@vitejs/plugin-react": "npm:^4.6.0" 2424 | clsx: "npm:^2.0.0" 2425 | react: "npm:^18.2.0" 2426 | react-dom: "npm:^18.2.0" 2427 | react-fit: "workspace:packages/react-fit" 2428 | typescript: "npm:^5.5.2" 2429 | vite: "npm:^7.0.0" 2430 | languageName: unknown 2431 | linkType: soft 2432 | 2433 | "tinybench@npm:^2.9.0": 2434 | version: 2.9.0 2435 | resolution: "tinybench@npm:2.9.0" 2436 | checksum: 10c0/c3500b0f60d2eb8db65250afe750b66d51623057ee88720b7f064894a6cb7eb93360ca824a60a31ab16dab30c7b1f06efe0795b352e37914a9d4bad86386a20c 2437 | languageName: node 2438 | linkType: hard 2439 | 2440 | "tinyexec@npm:^0.3.2": 2441 | version: 0.3.2 2442 | resolution: "tinyexec@npm:0.3.2" 2443 | checksum: 10c0/3efbf791a911be0bf0821eab37a3445c2ba07acc1522b1fa84ae1e55f10425076f1290f680286345ed919549ad67527d07281f1c19d584df3b74326909eb1f90 2444 | languageName: node 2445 | linkType: hard 2446 | 2447 | "tinyglobby@npm:^0.2.14": 2448 | version: 0.2.14 2449 | resolution: "tinyglobby@npm:0.2.14" 2450 | dependencies: 2451 | fdir: "npm:^6.4.4" 2452 | picomatch: "npm:^4.0.2" 2453 | checksum: 10c0/f789ed6c924287a9b7d3612056ed0cda67306cd2c80c249fd280cf1504742b12583a2089b61f4abbd24605f390809017240e250241f09938054c9b363e51c0a6 2454 | languageName: node 2455 | linkType: hard 2456 | 2457 | "tinypool@npm:^1.1.0": 2458 | version: 1.1.0 2459 | resolution: "tinypool@npm:1.1.0" 2460 | checksum: 10c0/deb6bde5e3d85d4ba043806c66f43fb5b649716312a47b52761a83668ffc71cd0ea4e24254c1b02a3702e5c27e02605f0189a1460f6284a5930a08bd0c06435c 2461 | languageName: node 2462 | linkType: hard 2463 | 2464 | "tinyrainbow@npm:^2.0.0": 2465 | version: 2.0.0 2466 | resolution: "tinyrainbow@npm:2.0.0" 2467 | checksum: 10c0/c83c52bef4e0ae7fb8ec6a722f70b5b6fa8d8be1c85792e829f56c0e1be94ab70b293c032dc5048d4d37cfe678f1f5babb04bdc65fd123098800148ca989184f 2468 | languageName: node 2469 | linkType: hard 2470 | 2471 | "tinyspy@npm:^4.0.3": 2472 | version: 4.0.3 2473 | resolution: "tinyspy@npm:4.0.3" 2474 | checksum: 10c0/0a92a18b5350945cc8a1da3a22c9ad9f4e2945df80aaa0c43e1b3a3cfb64d8501e607ebf0305e048e3c3d3e0e7f8eb10cea27dc17c21effb73e66c4a3be36373 2475 | languageName: node 2476 | linkType: hard 2477 | 2478 | "typescript@npm:^5.5.2": 2479 | version: 5.5.2 2480 | resolution: "typescript@npm:5.5.2" 2481 | bin: 2482 | tsc: bin/tsc 2483 | tsserver: bin/tsserver 2484 | checksum: 10c0/8ca39b27b5f9bd7f32db795045933ab5247897660627251e8254180b792a395bf061ea7231947d5d7ffa5cb4cc771970fd4ef543275f9b559f08c9325cccfce3 2485 | languageName: node 2486 | linkType: hard 2487 | 2488 | "typescript@patch:typescript@npm%3A^5.5.2#optional!builtin": 2489 | version: 5.5.2 2490 | resolution: "typescript@patch:typescript@npm%3A5.5.2#optional!builtin::version=5.5.2&hash=379a07" 2491 | bin: 2492 | tsc: bin/tsc 2493 | tsserver: bin/tsserver 2494 | checksum: 10c0/a7b7ede75dc7fc32a76d0d0af6b91f5fbd8620890d84c906f663d8783bf3de6d7bd50f0430b8bb55eac88a38934af847ff709e7156e5138b95ae94cbd5f73e5b 2495 | languageName: node 2496 | linkType: hard 2497 | 2498 | "unique-filename@npm:^4.0.0": 2499 | version: 4.0.0 2500 | resolution: "unique-filename@npm:4.0.0" 2501 | dependencies: 2502 | unique-slug: "npm:^5.0.0" 2503 | checksum: 10c0/38ae681cceb1408ea0587b6b01e29b00eee3c84baee1e41fd5c16b9ed443b80fba90c40e0ba69627e30855570a34ba8b06702d4a35035d4b5e198bf5a64c9ddc 2504 | languageName: node 2505 | linkType: hard 2506 | 2507 | "unique-slug@npm:^5.0.0": 2508 | version: 5.0.0 2509 | resolution: "unique-slug@npm:5.0.0" 2510 | dependencies: 2511 | imurmurhash: "npm:^0.1.4" 2512 | checksum: 10c0/d324c5a44887bd7e105ce800fcf7533d43f29c48757ac410afd42975de82cc38ea2035c0483f4de82d186691bf3208ef35c644f73aa2b1b20b8e651be5afd293 2513 | languageName: node 2514 | linkType: hard 2515 | 2516 | "update-browserslist-db@npm:^1.1.1": 2517 | version: 1.1.1 2518 | resolution: "update-browserslist-db@npm:1.1.1" 2519 | dependencies: 2520 | escalade: "npm:^3.2.0" 2521 | picocolors: "npm:^1.1.0" 2522 | peerDependencies: 2523 | browserslist: ">= 4.21.0" 2524 | bin: 2525 | update-browserslist-db: cli.js 2526 | checksum: 10c0/536a2979adda2b4be81b07e311bd2f3ad5e978690987956bc5f514130ad50cac87cd22c710b686d79731e00fbee8ef43efe5fcd72baa241045209195d43dcc80 2527 | languageName: node 2528 | linkType: hard 2529 | 2530 | "vite-node@npm:3.2.3": 2531 | version: 3.2.3 2532 | resolution: "vite-node@npm:3.2.3" 2533 | dependencies: 2534 | cac: "npm:^6.7.14" 2535 | debug: "npm:^4.4.1" 2536 | es-module-lexer: "npm:^1.7.0" 2537 | pathe: "npm:^2.0.3" 2538 | vite: "npm:^5.0.0 || ^6.0.0 || ^7.0.0-0" 2539 | bin: 2540 | vite-node: vite-node.mjs 2541 | checksum: 10c0/b952b0d9e45662506ea7303ac87d08e02f1e3355777cf7d426f211292c4f87e8837aef589e552bb11404d1bc0a9bd18871ce6ba874b5f0bb171f8e010de20a11 2542 | languageName: node 2543 | linkType: hard 2544 | 2545 | "vite@npm:^5.0.0 || ^6.0.0 || ^7.0.0-0, vite@npm:^7.0.0": 2546 | version: 7.0.0 2547 | resolution: "vite@npm:7.0.0" 2548 | dependencies: 2549 | esbuild: "npm:^0.25.0" 2550 | fdir: "npm:^6.4.6" 2551 | fsevents: "npm:~2.3.3" 2552 | picomatch: "npm:^4.0.2" 2553 | postcss: "npm:^8.5.6" 2554 | rollup: "npm:^4.40.0" 2555 | tinyglobby: "npm:^0.2.14" 2556 | peerDependencies: 2557 | "@types/node": ^20.19.0 || >=22.12.0 2558 | jiti: ">=1.21.0" 2559 | less: ^4.0.0 2560 | lightningcss: ^1.21.0 2561 | sass: ^1.70.0 2562 | sass-embedded: ^1.70.0 2563 | stylus: ">=0.54.8" 2564 | sugarss: ^5.0.0 2565 | terser: ^5.16.0 2566 | tsx: ^4.8.1 2567 | yaml: ^2.4.2 2568 | dependenciesMeta: 2569 | fsevents: 2570 | optional: true 2571 | peerDependenciesMeta: 2572 | "@types/node": 2573 | optional: true 2574 | jiti: 2575 | optional: true 2576 | less: 2577 | optional: true 2578 | lightningcss: 2579 | optional: true 2580 | sass: 2581 | optional: true 2582 | sass-embedded: 2583 | optional: true 2584 | stylus: 2585 | optional: true 2586 | sugarss: 2587 | optional: true 2588 | terser: 2589 | optional: true 2590 | tsx: 2591 | optional: true 2592 | yaml: 2593 | optional: true 2594 | bin: 2595 | vite: bin/vite.js 2596 | checksum: 10c0/860838d223f877dd8e04bd2b8f33cf67a38706643bdf07e3153e2857d7c0d33c3ee94cea7e86e60937cc91b3793272912cc7af14565641476f814bd61b3a1374 2597 | languageName: node 2598 | linkType: hard 2599 | 2600 | "vitest@npm:^3.2.3": 2601 | version: 3.2.3 2602 | resolution: "vitest@npm:3.2.3" 2603 | dependencies: 2604 | "@types/chai": "npm:^5.2.2" 2605 | "@vitest/expect": "npm:3.2.3" 2606 | "@vitest/mocker": "npm:3.2.3" 2607 | "@vitest/pretty-format": "npm:^3.2.3" 2608 | "@vitest/runner": "npm:3.2.3" 2609 | "@vitest/snapshot": "npm:3.2.3" 2610 | "@vitest/spy": "npm:3.2.3" 2611 | "@vitest/utils": "npm:3.2.3" 2612 | chai: "npm:^5.2.0" 2613 | debug: "npm:^4.4.1" 2614 | expect-type: "npm:^1.2.1" 2615 | magic-string: "npm:^0.30.17" 2616 | pathe: "npm:^2.0.3" 2617 | picomatch: "npm:^4.0.2" 2618 | std-env: "npm:^3.9.0" 2619 | tinybench: "npm:^2.9.0" 2620 | tinyexec: "npm:^0.3.2" 2621 | tinyglobby: "npm:^0.2.14" 2622 | tinypool: "npm:^1.1.0" 2623 | tinyrainbow: "npm:^2.0.0" 2624 | vite: "npm:^5.0.0 || ^6.0.0 || ^7.0.0-0" 2625 | vite-node: "npm:3.2.3" 2626 | why-is-node-running: "npm:^2.3.0" 2627 | peerDependencies: 2628 | "@edge-runtime/vm": "*" 2629 | "@types/debug": ^4.1.12 2630 | "@types/node": ^18.0.0 || ^20.0.0 || >=22.0.0 2631 | "@vitest/browser": 3.2.3 2632 | "@vitest/ui": 3.2.3 2633 | happy-dom: "*" 2634 | jsdom: "*" 2635 | peerDependenciesMeta: 2636 | "@edge-runtime/vm": 2637 | optional: true 2638 | "@types/debug": 2639 | optional: true 2640 | "@types/node": 2641 | optional: true 2642 | "@vitest/browser": 2643 | optional: true 2644 | "@vitest/ui": 2645 | optional: true 2646 | happy-dom: 2647 | optional: true 2648 | jsdom: 2649 | optional: true 2650 | bin: 2651 | vitest: vitest.mjs 2652 | checksum: 10c0/1d853016622f32020e91cc72348d0dc642bde2ddcbd648655a9d33d420375c7cbd6f1a6f5c4398a5d4f59b8c2b120e62eba49fb37f8042e5d4c688b7e60148ef 2653 | languageName: node 2654 | linkType: hard 2655 | 2656 | "warning@npm:^4.0.0": 2657 | version: 4.0.3 2658 | resolution: "warning@npm:4.0.3" 2659 | dependencies: 2660 | loose-envify: "npm:^1.0.0" 2661 | checksum: 10c0/aebab445129f3e104c271f1637fa38e55eb25f968593e3825bd2f7a12bd58dc3738bb70dc8ec85826621d80b4acfed5a29ebc9da17397c6125864d72301b937e 2662 | languageName: node 2663 | linkType: hard 2664 | 2665 | "webidl-conversions@npm:^7.0.0": 2666 | version: 7.0.0 2667 | resolution: "webidl-conversions@npm:7.0.0" 2668 | checksum: 10c0/228d8cb6d270c23b0720cb2d95c579202db3aaf8f633b4e9dd94ec2000a04e7e6e43b76a94509cdb30479bd00ae253ab2371a2da9f81446cc313f89a4213a2c4 2669 | languageName: node 2670 | linkType: hard 2671 | 2672 | "whatwg-mimetype@npm:^3.0.0": 2673 | version: 3.0.0 2674 | resolution: "whatwg-mimetype@npm:3.0.0" 2675 | checksum: 10c0/323895a1cda29a5fb0b9ca82831d2c316309fede0365047c4c323073e3239067a304a09a1f4b123b9532641ab604203f33a1403b5ca6a62ef405bcd7a204080f 2676 | languageName: node 2677 | linkType: hard 2678 | 2679 | "which@npm:^2.0.1": 2680 | version: 2.0.2 2681 | resolution: "which@npm:2.0.2" 2682 | dependencies: 2683 | isexe: "npm:^2.0.0" 2684 | bin: 2685 | node-which: ./bin/node-which 2686 | checksum: 10c0/66522872a768b60c2a65a57e8ad184e5372f5b6a9ca6d5f033d4b0dc98aff63995655a7503b9c0a2598936f532120e81dd8cc155e2e92ed662a2b9377cc4374f 2687 | languageName: node 2688 | linkType: hard 2689 | 2690 | "which@npm:^5.0.0": 2691 | version: 5.0.0 2692 | resolution: "which@npm:5.0.0" 2693 | dependencies: 2694 | isexe: "npm:^3.1.1" 2695 | bin: 2696 | node-which: bin/which.js 2697 | checksum: 10c0/e556e4cd8b7dbf5df52408c9a9dd5ac6518c8c5267c8953f5b0564073c66ed5bf9503b14d876d0e9c7844d4db9725fb0dcf45d6e911e17e26ab363dc3965ae7b 2698 | languageName: node 2699 | linkType: hard 2700 | 2701 | "why-is-node-running@npm:^2.3.0": 2702 | version: 2.3.0 2703 | resolution: "why-is-node-running@npm:2.3.0" 2704 | dependencies: 2705 | siginfo: "npm:^2.0.0" 2706 | stackback: "npm:0.0.2" 2707 | bin: 2708 | why-is-node-running: cli.js 2709 | checksum: 10c0/1cde0b01b827d2cf4cb11db962f3958b9175d5d9e7ac7361d1a7b0e2dc6069a263e69118bd974c4f6d0a890ef4eedfe34cf3d5167ec14203dbc9a18620537054 2710 | languageName: node 2711 | linkType: hard 2712 | 2713 | "wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": 2714 | version: 7.0.0 2715 | resolution: "wrap-ansi@npm:7.0.0" 2716 | dependencies: 2717 | ansi-styles: "npm:^4.0.0" 2718 | string-width: "npm:^4.1.0" 2719 | strip-ansi: "npm:^6.0.0" 2720 | checksum: 10c0/d15fc12c11e4cbc4044a552129ebc75ee3f57aa9c1958373a4db0292d72282f54373b536103987a4a7594db1ef6a4f10acf92978f79b98c49306a4b58c77d4da 2721 | languageName: node 2722 | linkType: hard 2723 | 2724 | "wrap-ansi@npm:^8.1.0": 2725 | version: 8.1.0 2726 | resolution: "wrap-ansi@npm:8.1.0" 2727 | dependencies: 2728 | ansi-styles: "npm:^6.1.0" 2729 | string-width: "npm:^5.0.1" 2730 | strip-ansi: "npm:^7.0.1" 2731 | checksum: 10c0/138ff58a41d2f877eae87e3282c0630fc2789012fc1af4d6bd626eeb9a2f9a65ca92005e6e69a75c7b85a68479fe7443c7dbe1eb8fbaa681a4491364b7c55c60 2732 | languageName: node 2733 | linkType: hard 2734 | 2735 | "yallist@npm:^3.0.2": 2736 | version: 3.1.1 2737 | resolution: "yallist@npm:3.1.1" 2738 | checksum: 10c0/c66a5c46bc89af1625476f7f0f2ec3653c1a1791d2f9407cfb4c2ba812a1e1c9941416d71ba9719876530e3340a99925f697142989371b72d93b9ee628afd8c1 2739 | languageName: node 2740 | linkType: hard 2741 | 2742 | "yallist@npm:^4.0.0": 2743 | version: 4.0.0 2744 | resolution: "yallist@npm:4.0.0" 2745 | checksum: 10c0/2286b5e8dbfe22204ab66e2ef5cc9bbb1e55dfc873bbe0d568aa943eb255d131890dfd5bf243637273d31119b870f49c18fcde2c6ffbb7a7a092b870dc90625a 2746 | languageName: node 2747 | linkType: hard 2748 | 2749 | "yallist@npm:^5.0.0": 2750 | version: 5.0.0 2751 | resolution: "yallist@npm:5.0.0" 2752 | checksum: 10c0/a499c81ce6d4a1d260d4ea0f6d49ab4da09681e32c3f0472dee16667ed69d01dae63a3b81745a24bd78476ec4fcf856114cb4896ace738e01da34b2c42235416 2753 | languageName: node 2754 | linkType: hard 2755 | --------------------------------------------------------------------------------