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