├── .devcontainer ├── devcontainer.json └── docker-compose.dev.yml ├── .editorconfig ├── .eslintrc.cjs ├── .github ├── dependabot.yml └── workflows │ ├── main.yml │ └── upgrade-deps.yml ├── .gitignore ├── .prettierrc ├── .stylelintrc.json ├── CONTRIBUTING.md ├── Dockerfile ├── LICENSE ├── README.md ├── docker-compose.yml ├── favicon.svg ├── index.html ├── package.json ├── playwright.config.js ├── src ├── base.css ├── css-toggles.js ├── store.js ├── styles.css └── walkers.js ├── tests ├── accordion.spec.js ├── mode.spec.js ├── named-states.spec.js ├── self-toggles.spec.js ├── state-machine.spec.js ├── tabs.spec.js └── tree.spec.js └── yarn.lock /.devcontainer/devcontainer.json: -------------------------------------------------------------------------------- 1 | // See https://aka.ms/vscode-remote/devcontainer.json for format details. 2 | { 3 | "name": "CSS Toggles", 4 | "dockerComposeFile": ["../docker-compose.yml", "./docker-compose.dev.yml"], 5 | "service": "web", 6 | "workspaceFolder": "/app", 7 | "shutdownAction": "stopCompose", 8 | "extensions": [ 9 | "dbaeumer.vscode-eslint", 10 | "esbenp.prettier-vscode", 11 | "formulahendry.auto-rename-tag", 12 | "ms-azuretools.vscode-docker", 13 | "stylelint.vscode-stylelint", 14 | "tyriar.sort-lines", 15 | "xabikos.javascriptsnippets" 16 | ], 17 | "settings": { 18 | "terminal.integrated.profiles.linux": { 19 | "bash": { 20 | "path": "/bin/bash" 21 | } 22 | }, 23 | "terminal.integrated.defaultProfile.linux": "bash", 24 | "editor.bracketPairColorization.enabled": true, 25 | "editor.codeActionsOnSave": { 26 | "source.fixAll.eslint": true, 27 | "source.fixAll.stylelint": true 28 | }, 29 | "editor.defaultFormatter": "esbenp.prettier-vscode", 30 | "editor.formatOnSave": true, 31 | "editor.tabSize": 2, 32 | "eslint.validate": ["javascript", "typescript"], 33 | "files.insertFinalNewline": true, 34 | "files.trimFinalNewlines": true, 35 | "files.trimTrailingWhitespace": true, 36 | "javascript.suggestionActions.enabled": false, 37 | "typescript.preferences.quoteStyle": "single", 38 | "remote.extensionKind": { 39 | "ms-azuretools.vscode-docker": "workspace" 40 | }, 41 | "typescript.tsdk": "node_modules/typescript/lib", 42 | "css.validate": false, 43 | "[css]": { 44 | "editor.defaultFormatter": "stylelint.vscode-stylelint" 45 | }, 46 | "[javascript]": { 47 | "editor.rulers": [80] 48 | }, 49 | "[restructuredtext]": { 50 | "editor.rulers": [80] 51 | }, 52 | "[markdown]": { 53 | "editor.rulers": [80] 54 | }, 55 | "[typescript]": { 56 | "editor.rulers": [80] 57 | }, 58 | "[html]": { 59 | "editor.formatOnSave": false 60 | }, 61 | "files.exclude": { 62 | "**/.git": true, 63 | "**/.DS_Store": true, 64 | ".coverage": true, 65 | "coverage": true, 66 | "htmlcov": true, 67 | ".tags": true, 68 | ".cache": true, 69 | ".vscode": true, 70 | "collected-assets": true, 71 | "staticfiles": true, 72 | "**/*.egg-info": true 73 | }, 74 | "search.exclude": { 75 | "**/node_modules": true, 76 | "**/*.css.map": true, 77 | "**/*.js.map": true, 78 | "yarn.lock": true, 79 | "yarn-debug.log": true, 80 | "yarn-error.log": true 81 | } 82 | } 83 | } 84 | -------------------------------------------------------------------------------- /.devcontainer/docker-compose.dev.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | 3 | services: 4 | web: 5 | volumes: 6 | - .:/app:delegated 7 | - vscode-server:/root/.vscode-server:cached 8 | - /var/run/docker.sock:/var/run/docker.sock:cached 9 | # Override command to prevent container crashing if webpack build exits 10 | command: sleep infinity 11 | 12 | volumes: 13 | vscode-server: {} 14 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | [*] 2 | end_of_line = lf 3 | insert_final_newline = true 4 | trim_trailing_whitespace = true 5 | tab_width = 2 6 | -------------------------------------------------------------------------------- /.eslintrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | env: { 3 | browser: true, 4 | es2021: true, 5 | }, 6 | extends: ['standard', 'prettier'], 7 | parserOptions: { 8 | ecmaVersion: 'latest', 9 | sourceType: 'module', 10 | }, 11 | rules: {}, 12 | } 13 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | - package-ecosystem: github-actions 4 | directory: '/' 5 | schedule: 6 | interval: weekly 7 | time: '04:00' 8 | timezone: America/New_York 9 | - package-ecosystem: 'docker' 10 | directory: '/' 11 | schedule: 12 | interval: weekly 13 | -------------------------------------------------------------------------------- /.github/workflows/main.yml: -------------------------------------------------------------------------------- 1 | name: Test & Release 2 | 3 | on: 4 | push: 5 | 6 | concurrency: 7 | group: ${{ github.workflow }}-${{ github.ref }} 8 | cancel-in-progress: true 9 | 10 | env: 11 | NODE_VERSION: '16' 12 | 13 | jobs: 14 | test: 15 | name: Test 16 | runs-on: ubuntu-latest 17 | steps: 18 | - uses: actions/checkout@v4 19 | - uses: actions/setup-node@v4 20 | with: 21 | node-version: ${{ env.NODE_VERSION }} 22 | cache: yarn 23 | - name: Install dependencies 24 | run: | 25 | yarn install --frozen-lockfile 26 | npx playwright install --with-deps 27 | - run: yarn test:ci 28 | 29 | lint: 30 | name: Lint 31 | runs-on: ubuntu-latest 32 | steps: 33 | - uses: actions/checkout@v4 34 | - uses: actions/setup-node@v4 35 | with: 36 | node-version: ${{ env.NODE_VERSION }} 37 | cache: yarn 38 | - name: Lint 39 | run: | 40 | yarn install --frozen-lockfile 41 | yarn lint 42 | 43 | release: 44 | name: Release 45 | runs-on: ubuntu-latest 46 | needs: [test, lint] 47 | steps: 48 | - uses: actions/checkout@v4 49 | - uses: actions/setup-node@v4 50 | with: 51 | node-version: ${{ env.NODE_VERSION }} 52 | cache: yarn 53 | - run: yarn install 54 | - name: Release 55 | uses: cycjimmy/semantic-release-action@v4 56 | with: 57 | semantic_version: '19' 58 | branches: | 59 | [ 60 | 'stable', 61 | { name: 'main', channel: 'next', prerelease: true }, 62 | ] 63 | env: 64 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 65 | NPM_TOKEN: ${{ secrets.NPM_TOKEN }} 66 | -------------------------------------------------------------------------------- /.github/workflows/upgrade-deps.yml: -------------------------------------------------------------------------------- 1 | name: Upgrade dependencies 2 | 3 | on: 4 | workflow_dispatch: # Allow running on-demand 5 | schedule: 6 | # Every Monday at 8:00 UTC (4:00 Eastern) 7 | - cron: '0 8 * * 1' 8 | 9 | concurrency: 10 | group: ${{ github.workflow }}-${{ github.ref }} 11 | cancel-in-progress: true 12 | 13 | jobs: 14 | upgrade: 15 | name: Upgrade & Open Pull Request 16 | runs-on: ubuntu-latest 17 | env: 18 | BRANCH_NAME: auto-dependency-upgrades 19 | steps: 20 | - uses: actions/checkout@v4 21 | with: 22 | # Use a separate key so the resulting PR also runs GH Actions 23 | # https://github.com/peter-evans/create-pull-request/blob/main/docs/concepts-guidelines.md#triggering-further-workflow-runs 24 | ssh-key: ${{ secrets.DEPLOY_KEY }} 25 | - uses: actions/setup-node@v4 26 | with: 27 | node-version: '16' 28 | cache: yarn 29 | - name: Upgrade dependencies 30 | run: | 31 | rm -f yarn.lock 32 | npx --yes yarn-upgrade-all 33 | - name: Build 34 | run: yarn build 35 | - name: Detect changes 36 | id: changes 37 | run: echo "count=$(git status --porcelain=v1 2>/dev/null | wc -l)" >> $GITHUB_OUTPUT 38 | - name: Commit & push changes 39 | if: steps.changes.outputs.count > 0 40 | run: | 41 | git config user.name github-actions 42 | git config user.email github-actions@github.com 43 | git add . 44 | git commit -m "chore(deps): automated dependency upgrades" 45 | git push -f origin ${{ github.ref_name }}:$BRANCH_NAME 46 | - name: Open pull request if needed 47 | if: steps.changes.outputs.count > 0 48 | env: 49 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 50 | run: | 51 | PR=$(gh pr list --head $BRANCH_NAME --json number -q '.[0].number') 52 | if [ -z $PR ]; then 53 | gh pr create \ 54 | --head $BRANCH_NAME \ 55 | --title "Automated dependency upgrades" \ 56 | --body "Full log: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" 57 | else 58 | echo "Pull request already exists, won't create a new one." 59 | fi 60 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | dist/ 3 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "singleQuote": true, 3 | "semi": false, 4 | "printWidth": 90, 5 | "arrowParens": "avoid" 6 | } 7 | -------------------------------------------------------------------------------- /.stylelintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "stylelint-config-standard", 3 | "rules": { 4 | "selector-type-no-unknown": null, 5 | "at-rule-no-unknown": [true, { "ignoreAtRules": ["machine"] }], 6 | "function-no-unknown": [true, { "ignoreFunctions": ["machine", "do"] }], 7 | "selector-pseudo-class-no-unknown": [true, { "ignorePseudoClasses": ["toggle"] }], 8 | "property-no-unknown": [ 9 | true, 10 | { 11 | "ignoreProperties": [ 12 | "toggle", 13 | "toggle-root", 14 | "toggle-trigger", 15 | "toggle-visibility" 16 | ] 17 | } 18 | ], 19 | "media-feature-range-notation": ["prefix"] 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing to CSS Toggles 2 | 3 | Ideas, issues, and pull-requests are welcome! 4 | 5 | - [**Github Issues**](https://github.com/oddbird/css-toggles/issues/) are the 6 | best place to request a feature, file a bug, or just ask a question. Also a 7 | great place to discuss possible features before you submit a PR. 8 | - **Pull Requests** are a big help, if you're willing to jump in and make things 9 | happen. For a bugfix, or documentation, just jump right in. For major changes 10 | or new features, it's best to discuss in an issue first. 11 | 12 | ## Conduct 13 | 14 | Please follow the [OddBird Code of Conduct](https://www.oddbird.net/conduct/). 15 | 16 | ## Development 17 | 18 | - Clone the repository. 19 | - Install dependencies: `yarn install`. 20 | - Start dev server: `yarn dev`. Visit `localhost:3000`. 21 | 22 | ## Code style 23 | 24 | JS code is formatted with prettier, and CSS is formatted with stylelint. You can 25 | lint the code by running `yarn lint` and format it with `yarn format`. We 26 | recommend setting up your IDE to automatically format code for you. 27 | 28 | ## Testing 29 | 30 | A complete end-to-end test suite is available in the `tests/` folder. 31 | 32 | - Configure Playwright (this step is only required once or when the version of 33 | `@playwright/test` changes in package.json): `npx playwright install --with-deps` 34 | - Run tests (Chromium only): `yarn test` 35 | - Run tests (Chromium, Firefox & Webkit): `yarn test:ci` 36 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM mcr.microsoft.com/playwright:v1.45.1-focal 2 | 3 | WORKDIR /app 4 | 5 | COPY ./package.json package.json 6 | COPY ./yarn.lock yarn.lock 7 | RUN yarn install --check-files 8 | 9 | COPY . /app 10 | 11 | CMD yarn dev 12 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | BSD 3-Clause License 2 | 3 | Copyright (c) 2022, OddBird. All rights reserved. 4 | 5 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 6 | 7 | 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 8 | 9 | 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 10 | 11 | 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. 12 | 13 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 14 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # CSS Toggles preview 2 | 3 | - [Demo](https://toggles.oddbird.net) 4 | - [Explainer](https://css.oddbird.net/toggles/explainer/) 5 | - [Draft Spec](https://tabatkins.github.io/css-toggle/) 6 | 7 | ## Polyfill Installation 8 | 9 | ### Download a copy 10 | 11 | The simplest, recommended way to install the polyfill is to copy it into your 12 | project. 13 | 14 | Download `css-toggles.min.js` [from 15 | unpkg.com](https://unpkg.com/browse/@oddbird/css-toggles/dist/) and add it to 16 | the appropriate directory in your project. Then, include it where necessary with 17 | a ` 21 | ``` 22 | 23 | You can also use an 24 | [IIFE](https://developer.mozilla.org/en-US/docs/Glossary/IIFE) version if your 25 | target browsers require it: 26 | 27 | ```html 28 | 29 | ``` 30 | 31 | ### With npm 32 | 33 | For more advanced configuration, you can install with 34 | [npm](https://www.npmjs.com/): 35 | 36 | ```sh 37 | npm install @oddbird/css-toggles 38 | ``` 39 | 40 | After installing, you’ll need to use appropriate tooling to use `node_modules/@oddbird/css-toggles/dist/css-toggles.js` (or `.min.js`). 41 | 42 | ### Via CDN 43 | 44 | For prototyping or testing, you can use the npm package via a Content Delivery 45 | Network. Avoid using JavaScript CDN’s in production, for [many good 46 | reasons](https://blog.wesleyac.com/posts/why-not-javascript-cdn) such as 47 | performance and robustness. 48 | 49 | ```html 50 | 55 | ``` 56 | 57 | ## Usage 58 | 59 | After installation the polyfill will automatically parse all stylesheets present 60 | in the HTML document (both inline and linked) for the proposed CSS Toggles 61 | syntax. Once the styles are parsed the toggling behavior will be polyfilled with 62 | JavaScript. 63 | 64 | ## Contributing 65 | 66 | Visit our [contribution guidelines](https://github.com/oddbird/css-toggles/blob/main/CONTRIBUTING.md). 67 | 68 | ## Sponsor OddBird's OSS Work 69 | 70 | At OddBird, we love contributing to the languages & tools developers rely on. 71 | We're currently working on polyfills 72 | for new Popover & Anchor Positioning functionality, 73 | as well as CSS specifications for functions, mixins, and responsive typography. 74 | Help us keep this work sustainable 75 | and centered on your needs as a developer! 76 | We display sponsor logos and avatars 77 | on our [website](https://www.oddbird.net/polyfill/#open-source-sponsors). 78 | 79 | [Sponsor OddBird's OSS Work](https://opencollective.com/oddbird-open-source) 80 | -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | 3 | services: 4 | web: 5 | build: 6 | context: . 7 | dockerfile: Dockerfile 8 | volumes: 9 | - .:/app:cached 10 | - /app/node_modules 11 | ports: 12 | - '3000:3000' 13 | stdin_open: true 14 | tty: true 15 | -------------------------------------------------------------------------------- /favicon.svg: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | CSS Toggles demo 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 |

CSS Toggles (in JS)

18 | 23 |
24 | 25 |
26 |

27 | What are CSS Toggles? 28 |

29 |

30 | The goal of this (work in progress) feature 31 | is to make it possible for CSS to manage 32 | presentational state 33 | for patterns such as tabs/accordians, carousels, color modes, etc. 34 | There are still many questions to be answered 35 | around the scope, syntax, 36 | and (most importantly) accessibility 37 | of a feature like this in CSS. 38 |

39 |

40 | This polyfill is designed to help us 41 | explore those questions. 42 | It implements the 43 | draft spec syntax 44 | as currently written, where possible -- 45 | in addition to some of the 46 | extensions proposed in our 47 | explainer. 48 |

49 |

50 | 51 | The current polyfill implementation is a naive attempt 52 | to uncover and document any issues in the spec — 53 | which means that several of the following demos 54 | 55 | are currently inaccessible. 56 | 57 | 58 | While we hope that some of those issues 59 | can be resolved here in the polyfill, 60 | others may require changes to the spec itself, 61 | or access to browser-internals 62 | that cannot be polyfilled well using JS. 63 |

64 |

65 | We're excited for you to play with this, 66 | suggest additional use-cases, 67 | help uncover undocumented issues, 68 | and provide us with feedback: 69 |

70 | 78 |
79 | 80 |
81 |

82 | 83 | Global color toggle 84 |

85 | 86 |
html {
 87 |   toggle-root: mode [auto light dark];
 88 | }
 89 | 
 90 | html:toggle(mode light) { ... }
 91 | html:toggle(mode dark) { ... }
 92 | 
 93 | .mode-btn {
 94 |   toggle-trigger: mode;
 95 | }
96 |
97 | 98 |
99 |

100 | 101 | Binary self-toggle switches 102 |

103 |

104 | Issue 20: 105 | There's a conflict between the HTML listitem role 106 | and the added ARIA role of 'button' 107 | used to make these interactive. 108 |

109 | 115 |
.todo li {
116 |   toggle: todo self;
117 |   list-style-type: '❌ ';
118 | }
119 | 
120 | .todo li:toggle(todo) {
121 |   list-style-type: '✅ ';
122 | }
123 |
124 | 125 |
126 |

127 | 128 | Accordion/disclosure components 129 |

130 |

131 | The goal of toggle-visibility 132 | is for browsers to handle accessibility 133 | and discoverability by default. 134 | We'll keep working to improve the polyfill a11y as well, 135 | but may not be able to achieve the same results. 136 |

137 |

138 | Issue 13: 139 | While aria-expanded may work in some situations, 140 | it has the same issues listed above with conflicting semantics/roles. 141 |

142 |
143 | 144 |
Establish a toggle
145 |
.accordion>dt {
146 |   toggle: glossary;
147 | }
148 | 149 |
Toggle item visibility
150 |
.accordion>dd {
151 |   toggle-visibility: toggle glossary;
152 | }
153 | 154 |
Style the summary
155 |
.accordion>dt::marker {
156 |   content: '👉🏽 ';
157 | }
158 | 
159 | .accordion>dt:toggle(glossary) {
160 |   background-color: var(--brand);
161 |   color: var(--bg);
162 | }
163 | 
164 | .accordion>dt:toggle(glossary)::marker {
165 |   content: '👇🏽 ';
166 | }
167 | 
168 |
169 |
170 | 171 |
172 |

173 | 174 | Tree view 175 |

176 |

177 | Issue 23: 178 | Does 'tree view' require different semantics 179 | than simply 'nested disclosures' 180 | (which may better describe the current behavior)? 181 |

182 | 203 |
.nested {
204 |   toggle: tree;
205 | }
206 | 
207 | .nested+ul {
208 |   toggle-visibility: toggle tree;
209 | }
210 |
211 | 212 |
213 |

214 | 215 | Tabs or exclusive accordions 216 |

217 | 232 | 233 | Establishing Tabs 234 |
panel-tab {
235 |   toggle: tab 1 at 0 group sticky;
236 |   grid-row: tab;
237 | }
238 | 239 | Styling Content 240 |
panel-tab:toggle(tab) {
241 |   background-color: var(--callout);
242 | }
243 | 
244 | panel-card {
245 |   toggle-visibility: toggle tab;
246 |   grid-area: card;
247 | }
248 |
249 |
250 | 251 |
252 |

253 | 254 | Named states 255 |

256 |

257 | Issue 21: 258 | These act like radio buttons, 259 | but the proper a11y handling is not obvious from the syntax. 260 |

261 |
262 | 263 | 264 | 265 | 266 | 267 |
.colors {
268 |   toggle-root: colors [grape green blue red] at blue;
269 | }
270 | 
271 | .colors button {
272 |   toggle-trigger: colors;
273 | }
274 | 
275 | /* for each color */
276 | .colors button.grape {
277 |   toggle-trigger: colors grape;
278 | }
279 | 
280 | .show-colors:toggle(colors grape) {
281 |   background-color: var(--grape-9);
282 | }
283 | 
284 |
285 |
286 | 287 |
288 |

289 | 290 | State machine transitions 291 |

292 |

293 | This functionality & syntax is proposed 294 | in the explainer 295 | as syntax sugar on top of the existing functionality. 296 | However, it's not yet clear that there are 297 | entirely presentational (CSS-only) use-cases. 298 | If you have ideas, we'd love to hear from you. 299 | The following example would involve JS in production. 300 |

301 |

302 | Issue 22: 303 | It is not clear in the a11y tree which 'transitions' 304 | are currently allowed/disabled, 305 | and the resulting generated content 306 | is not propery announced or selectable. 307 |

308 |
309 | 310 | 311 | 312 | 313 |
314 |
315 |
@machine request {
316 |   idle {
317 |     try: loading;
318 |   }
319 | 
320 |   loading {
321 |     resolve: success;
322 |     reject: failure;
323 |     reset: idle;
324 |   }
325 | 
326 |   failure {
327 |     try: loading;
328 |     reset: idle;
329 |   }
330 | 
331 |   success {
332 |     reset: idle;
333 |   }
334 | }
335 | 
336 | /* establish a toggle based on the machine */
337 | .request {
338 |   toggle-root: machine(request);
339 | }
340 | 
341 | /* the individual trigger buttons call 'transitions' */
342 | .request button[data-do="try"] {
343 |   toggle-trigger: request do(try);
344 | }
345 |
346 | 347 | 354 | 355 | 356 | 357 | 358 | 359 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@oddbird/css-toggles", 3 | "version": "0.0.0-development", 4 | "description": "Polyfill for the proposed CSS Toggles syntax", 5 | "license": "BSD-3-Clause", 6 | "publishConfig": { 7 | "access": "public" 8 | }, 9 | "author": "OddBird (oddbird.net)", 10 | "repository": { 11 | "type": "git", 12 | "url": "https://github.com/oddbird/css-toggles.git" 13 | }, 14 | "bugs": "https://github.com/oddbird/css-toggles/issues", 15 | "homepage": "https://toggles.oddbird.net", 16 | "keywords": [ 17 | "css", 18 | "polyfill", 19 | "toggle" 20 | ], 21 | "type": "module", 22 | "main": "dist/css-toggles.js", 23 | "module": "dist/css-toggles.js", 24 | "files": [ 25 | "README.md", 26 | "src/**/*.js", 27 | "dist/css-toggles.iife.min.js", 28 | "dist/css-toggles.min.js", 29 | "dist/css-toggles.js", 30 | "package.json" 31 | ], 32 | "scripts": { 33 | "build:iife:minified": "esbuild --bundle src/css-toggles.js --outfile=dist/css-toggles.iife.min.js --format=iife --minify", 34 | "build:esm:minified": "esbuild --bundle src/css-toggles.js --outfile=dist/css-toggles.min.js --format=esm --minify", 35 | "build:esm:debug": "esbuild --bundle src/css-toggles.js --outfile=dist/css-toggles.js --format=esm", 36 | "build": "rm -rf dist && yarn build:esm:debug && yarn build:esm:minified && yarn build:iife:minified", 37 | "dev": "rm -rf dist && esbuild --bundle src/css-toggles.js --format=esm --servedir=. --outdir=dist --sourcemap --serve=3000", 38 | "format:css": "stylelint --fix src/**/*.css", 39 | "format:js": "prettier --write {src,tests}/**/*.js && eslint --fix {src,tests}/**/*.js", 40 | "format": "yarn format:css && yarn format:js", 41 | "lint:css": "stylelint src/**/*.css", 42 | "lint:js": "prettier --check {src,tests}/**/*.js && eslint {src,tests}/**/*.js", 43 | "lint": "yarn lint:css && yarn lint:js", 44 | "prepack": "yarn build", 45 | "preview": "yarn build && esbuild --servedir=. --serve=\"${PORT:-3000}\" --log-level=\"${LEVEL:-info}\"", 46 | "test": "playwright test", 47 | "test:ci": "playwright test --browser=all" 48 | }, 49 | "devDependencies": { 50 | "@playwright/test": "^1.35.1", 51 | "esbuild": "^0.25.0", 52 | "eslint": "^8.44.0", 53 | "eslint-config-prettier": "^8.8.0", 54 | "eslint-config-standard": "^17.1.0", 55 | "eslint-plugin-import": "^2.27.5", 56 | "eslint-plugin-n": "^16.0.1", 57 | "eslint-plugin-promise": "^6.1.1", 58 | "prettier": "^3.0.0", 59 | "stylelint": "^15.10.1", 60 | "stylelint-config-standard": "^34.0.0" 61 | }, 62 | "dependencies": { 63 | "stylis": "^4.3.0" 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /playwright.config.js: -------------------------------------------------------------------------------- 1 | export default { 2 | timeout: process.env.CI ? undefined : 10 * 1000, // Max execution time of any single test 3 | expect: { 4 | timeout: 1000, // Max execution time of single expect() calls 5 | }, 6 | webServer: { 7 | command: 'PORT=4000 LEVEL=warning yarn preview', 8 | port: 4000, 9 | timeout: process.env.CI ? 60 * 1000 : 10 * 1000, 10 | reuseExistingServer: !process.env.CI, 11 | }, 12 | use: { 13 | baseURL: 'http://localhost:4000/', 14 | browserName: 'chromium', 15 | headless: true, 16 | forbidOnly: process.env.CI, 17 | }, 18 | } 19 | -------------------------------------------------------------------------------- /src/base.css: -------------------------------------------------------------------------------- 1 | /* base */ 2 | * { 3 | box-sizing: border-box; 4 | } 5 | 6 | html { 7 | font-family: var(--font-sans); 8 | color: var(--text); 9 | background-color: var(--bg); 10 | 11 | --brand: var(--pink-9); 12 | --bg: var(--gray-1); 13 | --callout: var(--gray-2); 14 | --text: var(--gray-9); 15 | --grad: var(--violet-1); 16 | } 17 | 18 | @media (prefers-color-scheme: dark) { 19 | html { 20 | --brand: var(--pink-3); 21 | --bg: var(--gray-9); 22 | --callout: var(--gray-8); 23 | --text: var(--gray-2); 24 | --grad: var(--violet-9); 25 | } 26 | } 27 | 28 | body { 29 | display: grid; 30 | grid-template-columns: 31 | [full-start] minmax(0, 1fr) 32 | [main-start] minmax(0, 75ch) [main-end] 33 | minmax(0, 1fr) [full-end]; 34 | margin: 0; 35 | } 36 | 37 | /* layout */ 38 | header, 39 | section { 40 | padding: 1em; 41 | } 42 | 43 | header, 44 | footer { 45 | grid-column: full; 46 | } 47 | 48 | header { 49 | background: linear-gradient(to top right, var(--bg), var(--grad)); 50 | border-block-end: thin dotted var(--text); 51 | text-shadow: 1px 1px 0 var(--bg); 52 | display: grid; 53 | gap: 0.5em; 54 | } 55 | 56 | h1 { 57 | margin: 0; 58 | } 59 | 60 | nav { 61 | display: flex; 62 | flex-wrap: wrap; 63 | gap: 0.5em; 64 | } 65 | 66 | section { 67 | grid-column: main; 68 | } 69 | 70 | footer { 71 | border-block-start: thin dotted var(--text); 72 | background: linear-gradient(to bottom right, var(--bg), var(--grad)); 73 | padding: 2em 0; 74 | display: grid; 75 | grid-template-columns: minmax(0, 75ch); 76 | justify-content: center; 77 | } 78 | 79 | footer p { 80 | padding-inline: 1em; 81 | } 82 | 83 | /* links & buttons */ 84 | [href*='://']::after { 85 | content: ' ↗'; 86 | } 87 | 88 | a:any-link { 89 | color: var(--brand); 90 | } 91 | 92 | button { 93 | background-color: var(--brand); 94 | color: var(--bg); 95 | border: thin solid var(--text); 96 | border-radius: 0.25em 0.5em; 97 | cursor: pointer; 98 | padding: 0.5em 1em; 99 | font: inherit; 100 | } 101 | 102 | /* other type */ 103 | pre { 104 | border: thin dotted gray; 105 | background-color: var(--callout); 106 | padding: 1em; 107 | font-family: var(--font-mono); 108 | overflow-x: auto; 109 | max-width: 100%; 110 | } 111 | 112 | dd { 113 | margin: 1em; 114 | } 115 | 116 | nav a:any-link { 117 | padding: 0.25em; 118 | } 119 | 120 | .issue { 121 | font-style: italic; 122 | } 123 | 124 | .issue a:any-link { 125 | font-style: normal; 126 | } 127 | 128 | .issue::before { 129 | content: '⚠️ '; 130 | font-style: normal; 131 | } 132 | 133 | /* heading links */ 134 | h2 { 135 | position: relative; 136 | } 137 | 138 | h2 [aria-hidden]:any-link { 139 | display: inline-block; 140 | filter: grayscale(var(--grayscale, 100%)); 141 | text-decoration: none; 142 | transform: scale(var(--scale, 0.75)); 143 | transition: all 200ms ease-in-out; 144 | padding: 0.4em; 145 | margin-block-start: -0.4em; 146 | } 147 | 148 | h2 [aria-hidden]:hover, 149 | h2 [aria-hidden]:focus, 150 | h2 [aria-hidden]:active { 151 | --grayscale: 0; 152 | --scale: 1; 153 | } 154 | 155 | @media (min-width: 50em) { 156 | h2 [aria-hidden]:any-link { 157 | position: absolute; 158 | right: 100%; 159 | } 160 | } 161 | -------------------------------------------------------------------------------- /src/css-toggles.js: -------------------------------------------------------------------------------- 1 | import * as stylis from 'stylis' 2 | import { toggles, toggleMachines } from './store' 3 | import { 4 | toggleMachineWalker, 5 | togglePseudoClassWalker, 6 | toggleRootWalker, 7 | toggleTriggerWalker, 8 | toggleVisibilityWalker, 9 | toggleWalker, 10 | togglePseudoClassRe, 11 | } from './walkers' 12 | 13 | // https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-elements#index 14 | const pseudoElements = [ 15 | 'after', 16 | 'backdrop', 17 | 'before', 18 | 'cue', 19 | 'cue-region', 20 | 'first-letter', 21 | 'first-line', 22 | 'file-selector-button', 23 | 'grammar-error', 24 | 'marker', 25 | 'placeholder', 26 | 'selection', 27 | 'spelling-error', 28 | 'target-text', 29 | ] 30 | const pseudoElementRe = RegExp(`::?(${pseudoElements.join('|')})`) 31 | 32 | /** 33 | * Get a list of the `element` and its next siblings 34 | * @param {HTMLElement} element 35 | */ 36 | function withNextSiblings(element) { 37 | const siblings = [element] 38 | let next = element.nextElementSibling 39 | while (next !== null) { 40 | siblings.push(next) 41 | next = next.nextElementSibling 42 | } 43 | return siblings 44 | } 45 | 46 | /** 47 | * Perform initial DOM setup for the toggle identified by `name` 48 | * @param {string} name 49 | */ 50 | function initToggle(name) { 51 | const { rootSelector, isNarrow, triggers, watchers, collapsibles, initialIndex } = 52 | toggles[name] 53 | toggles[name].activeIndices = {} 54 | 55 | // Toggle roots 56 | document.querySelectorAll(rootSelector).forEach((el, i) => { 57 | const id = `${name}-${i}` 58 | const elements = isNarrow ? [el] : withNextSiblings(el) 59 | elements.forEach(el => (el.dataset.toggleRoot = id)) 60 | toggles[name].activeIndices[id] = initialIndex 61 | }) 62 | 63 | // Toggle triggers 64 | triggers?.forEach(({ selector, targetState, transition }) => { 65 | document.querySelectorAll(selector).forEach(el => { 66 | el.dataset.toggleTrigger = [name, targetState, transition].join('/') 67 | if (['button', 'a', 'input'].includes(el.nodeName.toLowerCase())) return 68 | 69 | // Emulate button behavior on non-button trigger 70 | el.setAttribute('tabindex', 0) 71 | el.setAttribute('role', 'button') 72 | el.setAttribute('aria-pressed', false) 73 | }) 74 | }) 75 | 76 | // :toggle() selector: Remove the custom syntax and polyfill a `data-toggle` 77 | // attribute on the matching nodes 78 | watchers?.forEach(selector => { 79 | const baseSelector = selector 80 | .slice(0, selector.search(togglePseudoClassRe)) 81 | .replace(pseudoElementRe, '') 82 | document.querySelectorAll(baseSelector).forEach(el => (el.dataset.toggle = '')) 83 | }) 84 | 85 | // Toggle visibility 86 | collapsibles?.forEach(selector => { 87 | document.querySelectorAll(selector).forEach(el => (el.dataset.toggleVisibility = '')) 88 | }) 89 | } 90 | 91 | /** 92 | * Sync the DOM to the current state of a toggle 93 | * @param {string} domId: unique identifier of the toggle to update 94 | */ 95 | function renderToggle(domId) { 96 | const [name] = domId.split('-') 97 | const toggleRoot = toggles[name] 98 | const activeIndex = toggleRoot.activeIndices[domId] 99 | 100 | // Find elements that need their visibility toggled 101 | document 102 | .querySelectorAll( 103 | ` 104 | [data-toggle-root="${domId}"][data-toggle-visibility], 105 | [data-toggle-root="${domId}"] [data-toggle-visibility] 106 | `, 107 | ) 108 | .forEach(el => { 109 | // Avoid interfering with other nested toggles that don't match the current one 110 | const closestRoot = el.closest('[data-toggle-root]') 111 | if (closestRoot?.dataset.toggleRoot !== domId) return 112 | el.dataset.toggleVisibility = activeIndex > 0 ? 'visible' : 'hidden' 113 | }) 114 | 115 | // Write the toggle state on elements selected by [data-toggle] 116 | document 117 | .querySelectorAll( 118 | ` 119 | [data-toggle-root="${domId}"][data-toggle], 120 | [data-toggle-root="${domId}"] [data-toggle] 121 | `, 122 | ) 123 | .forEach(el => { 124 | // Avoid interfering with other nested toggles that don't match the current one 125 | const closestRoot = el.closest('[data-toggle-root]') 126 | if (closestRoot?.dataset.toggleRoot !== domId) return 127 | el.dataset.toggle = `${toggleRoot.name} ${toggleRoot.states[activeIndex]}` 128 | }) 129 | 130 | // Update pressed state of polyfilled triggers 131 | document 132 | .querySelectorAll( 133 | ` 134 | [data-toggle-root="${domId}"][data-toggle-trigger][aria-pressed], 135 | [data-toggle-root="${domId}"] [data-toggle-trigger][aria-pressed] 136 | `, 137 | ) 138 | .forEach(el => { 139 | // Avoid interfering with other nested toggles that don't match the current one 140 | const closestRoot = el.closest('[data-toggle-root]') 141 | if (closestRoot?.dataset.toggleRoot !== domId) return 142 | el.setAttribute('aria-pressed', activeIndex > 0) 143 | }) 144 | } 145 | 146 | /** 147 | * Execute all walkers on the text source of a stylesheet. 148 | * @param {string} sheetSrc 149 | * @param {string} url 150 | * @returns {string} transpiled source, or empty string if no transpilation is required 151 | */ 152 | function initStylesheet(sheetSrc, url) { 153 | let didReplace = false 154 | function walk(element) { 155 | if (element.type === 'comm') return 156 | 157 | toggleMachineWalker(element) 158 | didReplace |= togglePseudoClassWalker(element) 159 | toggleVisibilityWalker(element) 160 | toggleRootWalker(element) 161 | toggleTriggerWalker(element) 162 | toggleWalker(element) 163 | 164 | const size = (element.children || []).length 165 | for (let i = 0; i < size; i++) walk(element.children[i]) 166 | } 167 | 168 | const cssAst = stylis.compile(sheetSrc) 169 | cssAst.forEach(walk) 170 | return didReplace ? stylis.serialize(cssAst, stylis.stringify) : '' 171 | } 172 | 173 | /** 174 | * Parse and transpile inline ', 295 | ) 296 | -------------------------------------------------------------------------------- /src/store.js: -------------------------------------------------------------------------------- 1 | /** Build a regex from an array of parts */ 2 | const makeRegex = (parts, opts) => RegExp(parts.map(p => p.source).join(''), opts) 3 | 4 | const toggleRootRe = makeRegex([ 5 | /(?[\w-]+)/, // Toggle root name 6 | / */, // Whitespace 7 | /((?\d+)\/)?/, // Initial state: Integer followed by slash (optional) 8 | /(?\d*)?/, // Number of active states (optional) 9 | /(\[(?.+)\])?/, // List of named states enclosed in [] (optional) 10 | / */, // Whitespace 11 | /(at +(?[\w-]+))?/, // Literal 'at' followed by initial state (optional) 12 | / */, // Whitespace 13 | /(?.*)/, // Anything else (optional) 14 | ]) 15 | const toggleRootMachineRe = makeRegex([ 16 | /((?[\w-]+) +)?/, // Toggle root name (optional) 17 | /(machine\((?[\w-]+)(? *, *strict)?\))/, // State machine name 18 | / */, // Whitespace 19 | /(at +(?[\w-]+))?/, // Literal 'at' followed by initial state (optional) 20 | / */, // Whitespace 21 | /(?.*)/, // Anything else (optional) 22 | ]) 23 | const toggleTriggerRe = makeRegex([ 24 | /(?[\w-]+)/, // Target toggle root 25 | / */, // Whitespace 26 | /(do[ (](?[\w-]+)\)?)?/, // Transition name wrapped in `do()` (optional) 27 | /(?[\w-]*)/, // Target state name (optional) 28 | ]) 29 | 30 | /** Stores the global toggle definitions and state */ 31 | export const toggles = {} 32 | /** Stores the global state machine definitions */ 33 | export const toggleMachines = {} 34 | 35 | /** 36 | * Update a toggle by name, merging keys and creating the record if necessary 37 | */ 38 | export function updateToggle(name, config) { 39 | const obj = toggles[name] || { name } 40 | toggles[name] = Object.assign(obj, config) 41 | } 42 | 43 | /** 44 | * Create a new toggle record with a root selector. 45 | * @param {string} ruleValue: value of the `toggle-root` or `toggle` rule 46 | * @param {string} selector: CSS selector of elements to be used as roots 47 | */ 48 | export function createToggleRoots(ruleValue, selector) { 49 | const regex = ruleValue.includes('machine(') ? toggleRootMachineRe : toggleRootRe 50 | let { name, machine, strict, initial, numActive, states, at, modifiers } = 51 | regex.exec(ruleValue).groups 52 | name = name || machine 53 | if (name === undefined) return 54 | 55 | let total 56 | const machineDef = toggleMachines[machine] 57 | if (machineDef !== undefined) { 58 | states = Object.keys(machineDef.states) 59 | total = states.length 60 | } else if (states !== undefined) { 61 | states = states.split(/ +/) 62 | total = states.length 63 | } else { 64 | total = parseInt(numActive || 1) + 1 65 | states = [...Array(total).keys()].map(String) 66 | } 67 | 68 | modifiers = modifiers?.split(/ +/) || [] 69 | const group = modifiers.includes('group') 70 | const isNarrow = modifiers.includes('self') 71 | 72 | let initialIndex = states.indexOf(initial) 73 | if (initialIndex === -1) initialIndex = states.indexOf(at) 74 | if (initialIndex === -1) initialIndex = 0 75 | 76 | let resetTo = 0 77 | if (modifiers.includes('linear')) resetTo = total - 1 78 | if (modifiers.includes('sticky')) resetTo = 1 79 | 80 | updateToggle(name, { 81 | resetTo, 82 | group, 83 | isNarrow, 84 | total, 85 | states, 86 | machine, 87 | initialIndex, 88 | strict: Boolean(strict), 89 | rootSelector: selector, 90 | }) 91 | } 92 | 93 | /** 94 | * Add triggers to a toggle record. 95 | * @param {string} ruleValue: value of the `toggle-trigger` rule 96 | * @param {string} selector: CSS selector of elements to be used as triggers 97 | */ 98 | export function createToggleTriggers(ruleValue, selector) { 99 | const { name, targetState, transition } = toggleTriggerRe.exec(ruleValue).groups 100 | if (name === undefined) return 101 | 102 | const currentTriggers = toggles[name]?.triggers || [] 103 | updateToggle(name, { 104 | triggers: [...currentTriggers, { selector, targetState, transition }], 105 | }) 106 | } 107 | -------------------------------------------------------------------------------- /src/styles.css: -------------------------------------------------------------------------------- 1 | /* Root color scheme */ 2 | html { 3 | toggle-root: mode [auto light dark]; 4 | } 5 | 6 | html:toggle(mode light) { 7 | --mode: 'light'; 8 | --brand: var(--violet-9); 9 | --bg: var(--gray-1); 10 | --callout: var(--gray-2); 11 | --text: var(--gray-9); 12 | --grad: var(--pink-1); 13 | } 14 | 15 | html:toggle(mode dark) { 16 | --mode: 'dark'; 17 | --brand: var(--violet-3); 18 | --bg: var(--gray-9); 19 | --callout: var(--gray-8); 20 | --text: var(--gray-2); 21 | --grad: var(--pink-9); 22 | } 23 | 24 | .mode-btn { 25 | toggle-trigger: mode; 26 | } 27 | 28 | .mode-btn::after { 29 | content: ': ' var(--mode, 'auto'); 30 | } 31 | 32 | /* Binary switch */ 33 | .todo li { 34 | toggle: todo self; 35 | cursor: pointer; 36 | padding: 0.25em; 37 | list-style-type: '❌ '; 38 | } 39 | 40 | .todo li:hover { 41 | background-color: var(--callout); 42 | } 43 | 44 | .todo li:toggle(todo) { 45 | list-style-type: '✅ '; 46 | } 47 | 48 | /* Accordion */ 49 | .accordion > dt { 50 | toggle: glossary; 51 | cursor: pointer; 52 | display: list-item; 53 | padding: 0.25em; 54 | list-style-type: '👉🏽 '; 55 | } 56 | 57 | .accordion > dt:hover { 58 | background-color: var(--callout); 59 | color: var(--brand); 60 | } 61 | 62 | .accordion > dt:toggle(glossary) { 63 | background-color: var(--brand); 64 | color: var(--bg); 65 | list-style-type: '👇🏽 '; 66 | } 67 | 68 | .accordion > dd { 69 | toggle-visibility: toggle glossary; 70 | } 71 | 72 | /* Tree view */ 73 | .nested { 74 | toggle: tree; 75 | background: none; 76 | border: none; 77 | padding: 0; 78 | color: var(--brand); 79 | } 80 | 81 | .nested + ul { 82 | toggle-visibility: toggle tree; 83 | } 84 | 85 | .nested::before { 86 | content: '+ '; 87 | } 88 | 89 | .nested:toggle(tree)::before { 90 | content: '- '; 91 | } 92 | 93 | /* Tabs */ 94 | panel-set { 95 | display: grid; 96 | grid-template: 'tab tab tab' auto 'card card card' auto / auto auto 1fr; 97 | } 98 | 99 | /* Each tab creates a sticky toggle 100 | (so once it’s open, clicking again won’t close it), 101 | opts into the group, 102 | and declares itself a toggle activator */ 103 | panel-tab { 104 | toggle: tab 1 at 0 group sticky; 105 | grid-row: tab; 106 | padding: 0.5em 1em; 107 | cursor: pointer; 108 | } 109 | 110 | /* first tab toggled by default */ 111 | 112 | /* panel-tab:first-child { 113 | toggle: tab 1 at 1 group sticky; 114 | } */ 115 | 116 | panel-tab:toggle(tab) { 117 | background-color: var(--callout); 118 | } 119 | 120 | panel-card { 121 | toggle-visibility: toggle tab; 122 | grid-area: card; 123 | padding: 1em; 124 | background-color: var(--callout); 125 | } 126 | 127 | panel-card pre { 128 | padding: 0; 129 | border: 0; 130 | } 131 | 132 | /* Named states */ 133 | .colors { 134 | toggle-root: colors [grape green blue red] at blue; 135 | } 136 | 137 | .colors button { 138 | toggle-trigger: colors; 139 | } 140 | 141 | .colors button.grape { 142 | toggle-trigger: colors grape; 143 | } 144 | 145 | .colors button.green { 146 | toggle-trigger: colors green; 147 | } 148 | 149 | .colors button.blue { 150 | toggle-trigger: colors blue; 151 | } 152 | 153 | .colors button.red { 154 | toggle-trigger: colors red; 155 | } 156 | 157 | .show-colors { 158 | background: var(--gray-9); 159 | color: var(--gray-1); 160 | } 161 | 162 | .show-colors:toggle(colors grape) { 163 | background-color: var(--grape-9); 164 | } 165 | 166 | .show-colors:toggle(colors green) { 167 | background-color: var(--green-9); 168 | } 169 | 170 | .show-colors:toggle(colors blue) { 171 | background-color: var(--blue-9); 172 | } 173 | 174 | .show-colors:toggle(colors red) { 175 | background-color: var(--red-9); 176 | } 177 | 178 | /* State machines */ 179 | @machine request { 180 | /* stylelint-disable property-no-unknown */ 181 | idle { 182 | try: loading; 183 | } 184 | 185 | loading { 186 | resolve: success; 187 | reject: failure; 188 | reset: idle; 189 | } 190 | 191 | failure { 192 | try: loading; 193 | reset: idle; 194 | } 195 | 196 | success { 197 | reset: idle; 198 | } 199 | /* stylelint-enable property-no-unknown */ 200 | } 201 | 202 | .request { 203 | toggle-root: machine(request); 204 | } 205 | 206 | .request button[data-do='try'] { 207 | toggle-trigger: request do(try); 208 | } 209 | 210 | .request button[data-do='resolve'] { 211 | toggle-trigger: request do(resolve); 212 | } 213 | 214 | .request button[data-do='reject'] { 215 | toggle-trigger: request do(reject); 216 | } 217 | 218 | .request button[data-do='reset'] { 219 | toggle-trigger: request do(reset); 220 | } 221 | 222 | .request .status { 223 | padding: 1em; 224 | margin: 1em 0; 225 | background: var(--gray-9); 226 | color: var(--gray-1); 227 | } 228 | 229 | .request .status:toggle(request idle) { 230 | background-color: var(--gray-8); 231 | 232 | --status-note: 'try'; 233 | } 234 | 235 | .request .status:toggle(request loading) { 236 | background-color: var(--yellow-9); 237 | 238 | --status-note: 'resolve | reject'; 239 | } 240 | 241 | .request .status:toggle(request failure) { 242 | background-color: var(--red-9); 243 | 244 | --status-note: 'try (again)'; 245 | } 246 | 247 | .request .status:toggle(request success) { 248 | background-color: var(--green-9); 249 | 250 | --status-note: 'none'; 251 | } 252 | 253 | .request .status::before { 254 | content: attr(data-toggle); 255 | } 256 | 257 | .request .status::after { 258 | content: ' » ' var(--status-note); 259 | } 260 | -------------------------------------------------------------------------------- /src/walkers.js: -------------------------------------------------------------------------------- 1 | import { 2 | toggleMachines, 3 | createToggleRoots, 4 | createToggleTriggers, 5 | updateToggle, 6 | toggles, 7 | } from './store' 8 | 9 | export const togglePseudoClassRe = /:toggle\((?[\w-]+) *(?[\w-]*)\)/ 10 | const toggleVisibilityRe = /toggle *(?[\w-]+)/ 11 | 12 | /** 13 | * Parse `@machine` at-rules and convert them to machine objects 14 | * @param {stylis Element} element 15 | */ 16 | export function toggleMachineWalker(element) { 17 | const name = (element.props || [])[0] 18 | if (!(element.type === '@machine' && name)) return 19 | 20 | const states = {} 21 | element.children 22 | .filter(child => child.type === 'rule') 23 | .forEach(rule => { 24 | states[rule.value] = Object.fromEntries( 25 | rule.children 26 | .filter(child => child.type === 'decl') 27 | .map(decl => [decl.props, decl.children]), 28 | ) 29 | }) 30 | toggleMachines[name] = { name, states } 31 | } 32 | 33 | /** 34 | * Parse and mutate rules that use a `:toggle()` pseudoclass. Add matching 35 | * elements to a list of "watchers". 36 | * @param {stylis Element} element 37 | * @returns {bool} indicates if the AST was mutated and transpilation is 38 | * required 39 | */ 40 | export function togglePseudoClassWalker(element) { 41 | if (element.type !== 'rule') return 42 | 43 | let didReplace = false 44 | element.props = element.props.map(selector => { 45 | const { name, value } = togglePseudoClassRe.exec(selector)?.groups || {} 46 | if (!name) return selector 47 | 48 | const currentWatchers = toggles[name]?.watchers || [] 49 | updateToggle(name, { 50 | watchers: [...currentWatchers, selector], 51 | }) 52 | 53 | // Mutate the AST to convert the pseudoclass into `data-toggle` selector 54 | let replacement 55 | if (value) { 56 | replacement = `[data-toggle="${name} ${value}"]` 57 | } else { 58 | // Flexible selector that should match any non-zero state 59 | replacement = `[data-toggle^="${name} "]:not([data-toggle="${name} 0"])` 60 | } 61 | didReplace = true 62 | return selector.replace(togglePseudoClassRe, replacement) 63 | }) 64 | 65 | return didReplace 66 | } 67 | 68 | /** 69 | * Parse declarations that use the `toggle-visibility` property and add them to 70 | * a list of "collapsibles" 71 | * @param {stylis Element} element 72 | */ 73 | export function toggleVisibilityWalker(element) { 74 | if (!(element.type === 'decl' && element.props === 'toggle-visibility')) return 75 | const { name } = toggleVisibilityRe.exec(element.children).groups 76 | if (name === undefined) return 77 | 78 | const currentCollapsibles = toggles[name]?.collapsibles || [] 79 | updateToggle(name, { 80 | collapsibles: [...currentCollapsibles, ...element.parent.props], 81 | }) 82 | } 83 | 84 | /** 85 | * Parse declarations that use the `toggle-root` property and create toggle root 86 | * records. 87 | * @param {stylis Element} element 88 | */ 89 | export function toggleRootWalker(element) { 90 | if (!(element.type === 'decl' && element.props === 'toggle-root')) return 91 | createToggleRoots(element.children, element.parent.value) 92 | } 93 | 94 | /** 95 | * Parse declarations that use the `toggle-trigger` property and initialize 96 | * trigger logic. 97 | * @param {stylis Element} element 98 | */ 99 | export function toggleTriggerWalker(element) { 100 | if (!(element.type === 'decl' && element.props === 'toggle-trigger')) return 101 | createToggleTriggers(element.children, element.parent.value) 102 | } 103 | 104 | /** 105 | * Parse declarations that use the `toggle` shorthand property and initialize 106 | * roots and triggers. 107 | * @param {stylis Element} element 108 | */ 109 | export function toggleWalker(element) { 110 | if (!(element.type === 'decl' && element.props === 'toggle')) return 111 | const selector = element.parent.value 112 | const ruleValue = element.children 113 | 114 | createToggleRoots(ruleValue, selector) 115 | 116 | // In shorthand mode pass only the toggle name to the trigger as the rest of 117 | // the rule value should not be parsed 118 | const [toggleName] = ruleValue.split(' ') 119 | createToggleTriggers(toggleName, selector) 120 | } 121 | -------------------------------------------------------------------------------- /tests/accordion.spec.js: -------------------------------------------------------------------------------- 1 | import { test, expect } from '@playwright/test' 2 | 3 | test.beforeEach(async ({ page }) => { 4 | await page.goto('/') 5 | }) 6 | 7 | test('toggle visibility', async ({ page }) => { 8 | const terms = await page.locator('data-testid=accordion >> dt') 9 | const dfns = await page.locator('data-testid=accordion >> dd') 10 | 11 | await expect(dfns.nth(0)).not.toBeVisible() 12 | await expect(dfns.nth(1)).not.toBeVisible() 13 | await expect(dfns.nth(2)).not.toBeVisible() 14 | 15 | await terms.nth(0).click() 16 | await expect(dfns.nth(0)).toBeVisible() 17 | await expect(dfns.nth(1)).not.toBeVisible() 18 | await expect(dfns.nth(2)).not.toBeVisible() 19 | 20 | await terms.nth(1).click() 21 | await expect(dfns.nth(0)).toBeVisible() 22 | await expect(dfns.nth(1)).toBeVisible() 23 | await expect(dfns.nth(2)).not.toBeVisible() 24 | }) 25 | -------------------------------------------------------------------------------- /tests/mode.spec.js: -------------------------------------------------------------------------------- 1 | import { test, expect } from '@playwright/test' 2 | 3 | test.beforeEach(async ({ page }) => { 4 | await page.goto('/') 5 | }) 6 | 7 | test('cycle trough modes', async ({ page }) => { 8 | const button = await page.locator('data-testid=mode-btn') 9 | const html = await page.locator('html') 10 | 11 | await expect(html).toHaveAttribute('data-toggle', 'mode auto') 12 | 13 | await button.click() 14 | await expect(html).toHaveAttribute('data-toggle', 'mode light') 15 | 16 | await button.click() 17 | await expect(html).toHaveAttribute('data-toggle', 'mode dark') 18 | 19 | await button.click() 20 | await expect(html).toHaveAttribute('data-toggle', 'mode auto') 21 | }) 22 | -------------------------------------------------------------------------------- /tests/named-states.spec.js: -------------------------------------------------------------------------------- 1 | import { test as base, expect } from '@playwright/test' 2 | 3 | base.beforeEach(async ({ page }) => { 4 | await page.goto('/') 5 | }) 6 | 7 | const test = base.extend({ 8 | buttons: async ({ page }, use) => { 9 | const buttons = await page.locator('data-testid=colors >> button') 10 | await use(buttons) 11 | }, 12 | target: async ({ page }, use) => { 13 | const target = await page.locator('data-testid=colors-target') 14 | await use(target) 15 | }, 16 | }) 17 | 18 | test('cycle', async ({ buttons, target }) => { 19 | await expect(target).toHaveAttribute('data-toggle', 'colors blue') 20 | 21 | await buttons.first().click() 22 | await expect(target).toHaveAttribute('data-toggle', 'colors red') 23 | 24 | await buttons.first().click() 25 | await expect(target).toHaveAttribute('data-toggle', 'colors grape') 26 | 27 | await buttons.first().click() 28 | await expect(target).toHaveAttribute('data-toggle', 'colors green') 29 | 30 | await buttons.first().click() 31 | await expect(target).toHaveAttribute('data-toggle', 'colors blue') 32 | }) 33 | 34 | for (const color of ['grape', 'green', 'blue', 'red']) { 35 | test(`switch to ${color}`, async ({ buttons, target }) => { 36 | const button = await buttons.locator(`text=${color}`) 37 | 38 | await button.click() 39 | await expect(target).toHaveAttribute('data-toggle', `colors ${color}`) 40 | 41 | await button.click() 42 | await expect(target, 'Clicking again should produce no change').toHaveAttribute( 43 | 'data-toggle', 44 | `colors ${color}`, 45 | ) 46 | }) 47 | } 48 | -------------------------------------------------------------------------------- /tests/self-toggles.spec.js: -------------------------------------------------------------------------------- 1 | import { test as base, expect } from '@playwright/test' 2 | 3 | base.beforeEach(async ({ page }) => { 4 | await page.goto('/') 5 | }) 6 | 7 | const test = base.extend({ 8 | items: async ({ page }, use) => { 9 | const items = await page.locator('data-testid=todo-list >> li') 10 | await use(items) 11 | }, 12 | firstItem: async ({ page }, use) => { 13 | const firstItem = await page.locator('data-testid=todo-list >> li').first() 14 | await use(firstItem) 15 | }, 16 | }) 17 | 18 | test('toggle on click', async ({ firstItem }) => { 19 | await firstItem.click() 20 | await expect(firstItem).toHaveAttribute('data-toggle', 'todo 1') 21 | await expect(firstItem).toHaveAttribute('aria-pressed', 'true') 22 | 23 | await firstItem.click() 24 | await expect(firstItem).toHaveAttribute('data-toggle', 'todo 0') 25 | await expect(firstItem).toHaveAttribute('aria-pressed', 'false') 26 | }) 27 | 28 | for (const key of ['Space', 'Enter']) { 29 | test(`toggle on ${key} key press`, async ({ firstItem }) => { 30 | await firstItem.press(key) 31 | await expect(firstItem).toHaveAttribute('data-toggle', 'todo 1') 32 | await expect(firstItem).toHaveAttribute('aria-pressed', 'true') 33 | 34 | await firstItem.press(key) 35 | await expect(firstItem).toHaveAttribute('data-toggle', 'todo 0') 36 | await expect(firstItem).toHaveAttribute('aria-pressed', 'false') 37 | }) 38 | } 39 | 40 | for (const key of ['F1', 'KeyA', 'Control', 'Digit1']) { 41 | test(`ignore ${key} key press`, async ({ firstItem }) => { 42 | await firstItem.press(key) 43 | await expect(firstItem).toHaveAttribute('data-toggle', 'todo 0') 44 | await expect(firstItem).toHaveAttribute('aria-pressed', 'false') 45 | }) 46 | } 47 | 48 | test('only toggle itself', async ({ items }) => { 49 | await items.nth(0).click() 50 | await expect(items.nth(0)).toHaveAttribute('data-toggle', 'todo 1') 51 | await expect(items.nth(1)).toHaveAttribute('data-toggle', 'todo 0') 52 | await expect(items.nth(2)).toHaveAttribute('data-toggle', 'todo 0') 53 | await expect(items.nth(3)).toHaveAttribute('data-toggle', 'todo 0') 54 | 55 | await items.nth(2).click() 56 | await expect(items.nth(0)).toHaveAttribute('data-toggle', 'todo 1') 57 | await expect(items.nth(1)).toHaveAttribute('data-toggle', 'todo 0') 58 | await expect(items.nth(2)).toHaveAttribute('data-toggle', 'todo 1') 59 | await expect(items.nth(3)).toHaveAttribute('data-toggle', 'todo 0') 60 | }) 61 | -------------------------------------------------------------------------------- /tests/state-machine.spec.js: -------------------------------------------------------------------------------- 1 | import { test as base, expect } from '@playwright/test' 2 | 3 | base.beforeEach(async ({ page }) => { 4 | await page.goto('/') 5 | }) 6 | 7 | const test = base.extend({ 8 | buttons: async ({ page }, use) => { 9 | const buttons = await page.locator('data-testid=machine >> button') 10 | await use(buttons) 11 | }, 12 | status: async ({ page }, use) => { 13 | const status = await page.locator('data-testid=machine-status') 14 | await use(status) 15 | }, 16 | }) 17 | 18 | test('prevent skipping', async ({ buttons, status }) => { 19 | await buttons.locator('text=resolve').click() 20 | await expect(status).toHaveAttribute('data-toggle', 'request idle') 21 | 22 | await buttons.locator('text=reject').click() 23 | await expect(status).toHaveAttribute('data-toggle', 'request idle') 24 | 25 | await buttons.locator('text=reset').click() 26 | await expect(status).toHaveAttribute('data-toggle', 'request idle') 27 | }) 28 | 29 | test('reject', async ({ buttons, status }) => { 30 | await buttons.locator('text=try').click() 31 | await expect(status).toHaveAttribute('data-toggle', 'request loading') 32 | 33 | await buttons.locator('text=reject').click() 34 | await expect(status).toHaveAttribute('data-toggle', 'request failure') 35 | 36 | await buttons.locator('text=reset').click() 37 | await expect(status).toHaveAttribute('data-toggle', 'request idle') 38 | }) 39 | 40 | test('succeed', async ({ buttons, status }) => { 41 | await buttons.locator('text=try').click() 42 | await expect(status).toHaveAttribute('data-toggle', 'request loading') 43 | 44 | await buttons.locator('text=resolve').click() 45 | await expect(status).toHaveAttribute('data-toggle', 'request success') 46 | 47 | await buttons.locator('text=reset').click() 48 | await expect(status).toHaveAttribute('data-toggle', 'request idle') 49 | }) 50 | -------------------------------------------------------------------------------- /tests/tabs.spec.js: -------------------------------------------------------------------------------- 1 | import { test as base, expect } from '@playwright/test' 2 | 3 | base.beforeEach(async ({ page }) => { 4 | await page.goto('/') 5 | }) 6 | 7 | const test = base.extend({ 8 | tabs: async ({ page }, use) => { 9 | const tabs = await page.locator('data-testid=tabs >> panel-tab') 10 | await use(tabs) 11 | }, 12 | cards: async ({ page }, use) => { 13 | const cards = await page.locator('data-testid=tabs >> panel-card') 14 | await use(cards) 15 | }, 16 | }) 17 | 18 | // https://github.com/oddbird/css-toggles/issues/9 19 | test.fixme('first card open by default', async ({ cards }) => { 20 | await expect(cards.first()).toBeVisible() 21 | }) 22 | 23 | test('stay open on repeated trigger', async ({ tabs, cards }) => { 24 | await tabs.first().click() 25 | await expect(cards.first()).toBeVisible() 26 | 27 | await tabs.first().click() 28 | await expect(cards.first()).toBeVisible() 29 | 30 | await tabs.first().click() 31 | await expect(cards.first()).toBeVisible() 32 | }) 33 | 34 | test('auto-close others', async ({ tabs, cards }) => { 35 | await tabs.first().click() 36 | await expect(cards.first()).toBeVisible() 37 | await expect(cards.last()).not.toBeVisible() 38 | 39 | await tabs.last().click() 40 | await expect(cards.first()).not.toBeVisible() 41 | await expect(cards.last()).toBeVisible() 42 | 43 | await tabs.first().click() 44 | await expect(cards.first()).toBeVisible() 45 | await expect(cards.last()).not.toBeVisible() 46 | }) 47 | -------------------------------------------------------------------------------- /tests/tree.spec.js: -------------------------------------------------------------------------------- 1 | import { test, expect } from '@playwright/test' 2 | 3 | test.beforeEach(async ({ page }) => { 4 | await page.goto('/') 5 | }) 6 | 7 | test('nested visibility', async ({ page }) => { 8 | const resources = await page.locator('data-testid=resources-branch') 9 | const resourcesBtn = await page.locator('data-testid=resources-button') 10 | const media = await page.locator('data-testid=media-branch') 11 | const mediaBtn = await page.locator('data-testid=media-button') 12 | 13 | await expect(resourcesBtn).toHaveAttribute('data-toggle', 'tree 0') 14 | await expect(resources).not.toBeVisible() 15 | await expect(mediaBtn).toHaveAttribute('data-toggle', 'tree 0') 16 | await expect(media).not.toBeVisible() 17 | 18 | await resourcesBtn.click() 19 | await expect(resourcesBtn).toHaveAttribute('data-toggle', 'tree 1') 20 | await expect(resources).toBeVisible() 21 | await expect(mediaBtn).toHaveAttribute('data-toggle', 'tree 0') 22 | await expect(media).not.toBeVisible() 23 | 24 | await mediaBtn.click() 25 | await expect(resourcesBtn).toHaveAttribute('data-toggle', 'tree 1') 26 | await expect(resources).toBeVisible() 27 | await expect(mediaBtn).toHaveAttribute('data-toggle', 'tree 1') 28 | await expect(media).toBeVisible() 29 | 30 | await resourcesBtn.click() 31 | await expect(resourcesBtn).toHaveAttribute('data-toggle', 'tree 0') 32 | await expect(resources).not.toBeVisible() 33 | await expect(mediaBtn).toHaveAttribute('data-toggle', 'tree 1') 34 | await expect(media).not.toBeVisible() 35 | }) 36 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@aashutoshrathi/word-wrap@^1.2.3": 6 | version "1.2.6" 7 | resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" 8 | integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== 9 | 10 | "@babel/code-frame@^7.0.0": 11 | version "7.22.5" 12 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.5.tgz#234d98e1551960604f1246e6475891a570ad5658" 13 | integrity sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ== 14 | dependencies: 15 | "@babel/highlight" "^7.22.5" 16 | 17 | "@babel/helper-validator-identifier@^7.22.5": 18 | version "7.22.5" 19 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz#9544ef6a33999343c8740fa51350f30eeaaaf193" 20 | integrity sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ== 21 | 22 | "@babel/highlight@^7.22.5": 23 | version "7.22.5" 24 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.5.tgz#aa6c05c5407a67ebce408162b7ede789b4d22031" 25 | integrity sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw== 26 | dependencies: 27 | "@babel/helper-validator-identifier" "^7.22.5" 28 | chalk "^2.0.0" 29 | js-tokens "^4.0.0" 30 | 31 | "@csstools/css-parser-algorithms@^2.3.0": 32 | version "2.3.0" 33 | resolved "https://registry.yarnpkg.com/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.3.0.tgz#0cc3a656dc2d638370ecf6f98358973bfbd00141" 34 | integrity sha512-dTKSIHHWc0zPvcS5cqGP+/TPFUJB0ekJ9dGKvMAFoNuBFhDPBt9OMGNZiIA5vTiNdGHHBeScYPXIGBMnVOahsA== 35 | 36 | "@csstools/css-tokenizer@^2.1.1": 37 | version "2.1.1" 38 | resolved "https://registry.yarnpkg.com/@csstools/css-tokenizer/-/css-tokenizer-2.1.1.tgz#07ae11a0a06365d7ec686549db7b729bc036528e" 39 | integrity sha512-GbrTj2Z8MCTUv+52GE0RbFGM527xuXZ0Xa5g0Z+YN573uveS4G0qi6WNOMyz3yrFM/jaILTTwJ0+umx81EzqfA== 40 | 41 | "@csstools/media-query-list-parser@^2.1.2": 42 | version "2.1.2" 43 | resolved "https://registry.yarnpkg.com/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.2.tgz#6ef642b728d30c1009bfbba3211c7e4c11302728" 44 | integrity sha512-M8cFGGwl866o6++vIY7j1AKuq9v57cf+dGepScwCcbut9ypJNr4Cj+LLTWligYUZ0uyhEoJDKt5lvyBfh2L3ZQ== 45 | 46 | "@csstools/selector-specificity@^3.0.0": 47 | version "3.0.0" 48 | resolved "https://registry.yarnpkg.com/@csstools/selector-specificity/-/selector-specificity-3.0.0.tgz#798622546b63847e82389e473fd67f2707d82247" 49 | integrity sha512-hBI9tfBtuPIi885ZsZ32IMEU/5nlZH/KOVYJCOh7gyMxaVLGmLedYqFN6Ui1LXkI8JlC8IsuC0rF0btcRZKd5g== 50 | 51 | "@esbuild/aix-ppc64@0.25.0": 52 | version "0.25.0" 53 | resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.25.0.tgz#499600c5e1757a524990d5d92601f0ac3ce87f64" 54 | integrity sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ== 55 | 56 | "@esbuild/android-arm64@0.25.0": 57 | version "0.25.0" 58 | resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.25.0.tgz#b9b8231561a1dfb94eb31f4ee056b92a985c324f" 59 | integrity sha512-grvv8WncGjDSyUBjN9yHXNt+cq0snxXbDxy5pJtzMKGmmpPxeAmAhWxXI+01lU5rwZomDgD3kJwulEnhTRUd6g== 60 | 61 | "@esbuild/android-arm@0.25.0": 62 | version "0.25.0" 63 | resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.25.0.tgz#ca6e7888942505f13e88ac9f5f7d2a72f9facd2b" 64 | integrity sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g== 65 | 66 | "@esbuild/android-x64@0.25.0": 67 | version "0.25.0" 68 | resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.25.0.tgz#e765ea753bac442dfc9cb53652ce8bd39d33e163" 69 | integrity sha512-m/ix7SfKG5buCnxasr52+LI78SQ+wgdENi9CqyCXwjVR2X4Jkz+BpC3le3AoBPYTC9NHklwngVXvbJ9/Akhrfg== 70 | 71 | "@esbuild/darwin-arm64@0.25.0": 72 | version "0.25.0" 73 | resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.25.0.tgz#fa394164b0d89d4fdc3a8a21989af70ef579fa2c" 74 | integrity sha512-mVwdUb5SRkPayVadIOI78K7aAnPamoeFR2bT5nszFUZ9P8UpK4ratOdYbZZXYSqPKMHfS1wdHCJk1P1EZpRdvw== 75 | 76 | "@esbuild/darwin-x64@0.25.0": 77 | version "0.25.0" 78 | resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.25.0.tgz#91979d98d30ba6e7d69b22c617cc82bdad60e47a" 79 | integrity sha512-DgDaYsPWFTS4S3nWpFcMn/33ZZwAAeAFKNHNa1QN0rI4pUjgqf0f7ONmXf6d22tqTY+H9FNdgeaAa+YIFUn2Rg== 80 | 81 | "@esbuild/freebsd-arm64@0.25.0": 82 | version "0.25.0" 83 | resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.0.tgz#b97e97073310736b430a07b099d837084b85e9ce" 84 | integrity sha512-VN4ocxy6dxefN1MepBx/iD1dH5K8qNtNe227I0mnTRjry8tj5MRk4zprLEdG8WPyAPb93/e4pSgi1SoHdgOa4w== 85 | 86 | "@esbuild/freebsd-x64@0.25.0": 87 | version "0.25.0" 88 | resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.25.0.tgz#f3b694d0da61d9910ec7deff794d444cfbf3b6e7" 89 | integrity sha512-mrSgt7lCh07FY+hDD1TxiTyIHyttn6vnjesnPoVDNmDfOmggTLXRv8Id5fNZey1gl/V2dyVK1VXXqVsQIiAk+A== 90 | 91 | "@esbuild/linux-arm64@0.25.0": 92 | version "0.25.0" 93 | resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.25.0.tgz#f921f699f162f332036d5657cad9036f7a993f73" 94 | integrity sha512-9QAQjTWNDM/Vk2bgBl17yWuZxZNQIF0OUUuPZRKoDtqF2k4EtYbpyiG5/Dk7nqeK6kIJWPYldkOcBqjXjrUlmg== 95 | 96 | "@esbuild/linux-arm@0.25.0": 97 | version "0.25.0" 98 | resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.25.0.tgz#cc49305b3c6da317c900688995a4050e6cc91ca3" 99 | integrity sha512-vkB3IYj2IDo3g9xX7HqhPYxVkNQe8qTK55fraQyTzTX/fxaDtXiEnavv9geOsonh2Fd2RMB+i5cbhu2zMNWJwg== 100 | 101 | "@esbuild/linux-ia32@0.25.0": 102 | version "0.25.0" 103 | resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.25.0.tgz#3e0736fcfab16cff042dec806247e2c76e109e19" 104 | integrity sha512-43ET5bHbphBegyeqLb7I1eYn2P/JYGNmzzdidq/w0T8E2SsYL1U6un2NFROFRg1JZLTzdCoRomg8Rvf9M6W6Gg== 105 | 106 | "@esbuild/linux-loong64@0.25.0": 107 | version "0.25.0" 108 | resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.25.0.tgz#ea2bf730883cddb9dfb85124232b5a875b8020c7" 109 | integrity sha512-fC95c/xyNFueMhClxJmeRIj2yrSMdDfmqJnyOY4ZqsALkDrrKJfIg5NTMSzVBr5YW1jf+l7/cndBfP3MSDpoHw== 110 | 111 | "@esbuild/linux-mips64el@0.25.0": 112 | version "0.25.0" 113 | resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.25.0.tgz#4cababb14eede09248980a2d2d8b966464294ff1" 114 | integrity sha512-nkAMFju7KDW73T1DdH7glcyIptm95a7Le8irTQNO/qtkoyypZAnjchQgooFUDQhNAy4iu08N79W4T4pMBwhPwQ== 115 | 116 | "@esbuild/linux-ppc64@0.25.0": 117 | version "0.25.0" 118 | resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.25.0.tgz#8860a4609914c065373a77242e985179658e1951" 119 | integrity sha512-NhyOejdhRGS8Iwv+KKR2zTq2PpysF9XqY+Zk77vQHqNbo/PwZCzB5/h7VGuREZm1fixhs4Q/qWRSi5zmAiO4Fw== 120 | 121 | "@esbuild/linux-riscv64@0.25.0": 122 | version "0.25.0" 123 | resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.25.0.tgz#baf26e20bb2d38cfb86ee282dff840c04f4ed987" 124 | integrity sha512-5S/rbP5OY+GHLC5qXp1y/Mx//e92L1YDqkiBbO9TQOvuFXM+iDqUNG5XopAnXoRH3FjIUDkeGcY1cgNvnXp/kA== 125 | 126 | "@esbuild/linux-s390x@0.25.0": 127 | version "0.25.0" 128 | resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.25.0.tgz#8323afc0d6cb1b6dc6e9fd21efd9e1542c3640a4" 129 | integrity sha512-XM2BFsEBz0Fw37V0zU4CXfcfuACMrppsMFKdYY2WuTS3yi8O1nFOhil/xhKTmE1nPmVyvQJjJivgDT+xh8pXJA== 130 | 131 | "@esbuild/linux-x64@0.25.0": 132 | version "0.25.0" 133 | resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.25.0.tgz#08fcf60cb400ed2382e9f8e0f5590bac8810469a" 134 | integrity sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw== 135 | 136 | "@esbuild/netbsd-arm64@0.25.0": 137 | version "0.25.0" 138 | resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.0.tgz#935c6c74e20f7224918fbe2e6c6fe865b6c6ea5b" 139 | integrity sha512-RuG4PSMPFfrkH6UwCAqBzauBWTygTvb1nxWasEJooGSJ/NwRw7b2HOwyRTQIU97Hq37l3npXoZGYMy3b3xYvPw== 140 | 141 | "@esbuild/netbsd-x64@0.25.0": 142 | version "0.25.0" 143 | resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.25.0.tgz#414677cef66d16c5a4d210751eb2881bb9c1b62b" 144 | integrity sha512-jl+qisSB5jk01N5f7sPCsBENCOlPiS/xptD5yxOx2oqQfyourJwIKLRA2yqWdifj3owQZCL2sn6o08dBzZGQzA== 145 | 146 | "@esbuild/openbsd-arm64@0.25.0": 147 | version "0.25.0" 148 | resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.0.tgz#8fd55a4d08d25cdc572844f13c88d678c84d13f7" 149 | integrity sha512-21sUNbq2r84YE+SJDfaQRvdgznTD8Xc0oc3p3iW/a1EVWeNj/SdUCbm5U0itZPQYRuRTW20fPMWMpcrciH2EJw== 150 | 151 | "@esbuild/openbsd-x64@0.25.0": 152 | version "0.25.0" 153 | resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.25.0.tgz#0c48ddb1494bbc2d6bcbaa1429a7f465fa1dedde" 154 | integrity sha512-2gwwriSMPcCFRlPlKx3zLQhfN/2WjJ2NSlg5TKLQOJdV0mSxIcYNTMhk3H3ulL/cak+Xj0lY1Ym9ysDV1igceg== 155 | 156 | "@esbuild/sunos-x64@0.25.0": 157 | version "0.25.0" 158 | resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.25.0.tgz#86ff9075d77962b60dd26203d7352f92684c8c92" 159 | integrity sha512-bxI7ThgLzPrPz484/S9jLlvUAHYMzy6I0XiU1ZMeAEOBcS0VePBFxh1JjTQt3Xiat5b6Oh4x7UC7IwKQKIJRIg== 160 | 161 | "@esbuild/win32-arm64@0.25.0": 162 | version "0.25.0" 163 | resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.25.0.tgz#849c62327c3229467f5b5cd681bf50588442e96c" 164 | integrity sha512-ZUAc2YK6JW89xTbXvftxdnYy3m4iHIkDtK3CLce8wg8M2L+YZhIvO1DKpxrd0Yr59AeNNkTiic9YLf6FTtXWMw== 165 | 166 | "@esbuild/win32-ia32@0.25.0": 167 | version "0.25.0" 168 | resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.25.0.tgz#f62eb480cd7cca088cb65bb46a6db25b725dc079" 169 | integrity sha512-eSNxISBu8XweVEWG31/JzjkIGbGIJN/TrRoiSVZwZ6pkC6VX4Im/WV2cz559/TXLcYbcrDN8JtKgd9DJVIo8GA== 170 | 171 | "@esbuild/win32-x64@0.25.0": 172 | version "0.25.0" 173 | resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.25.0.tgz#c8e119a30a7c8d60b9d2e22d2073722dde3b710b" 174 | integrity sha512-ZENoHJBxA20C2zFzh6AI4fT6RraMzjYw4xKWemRTRmRVtN9c5DcH9r/f2ihEkMjOW5eGgrwCslG/+Y/3bL+DHQ== 175 | 176 | "@eslint-community/eslint-utils@^4.1.2", "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": 177 | version "4.4.0" 178 | resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" 179 | integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== 180 | dependencies: 181 | eslint-visitor-keys "^3.3.0" 182 | 183 | "@eslint-community/regexpp@^4.4.0", "@eslint-community/regexpp@^4.5.0": 184 | version "4.5.1" 185 | resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.5.1.tgz#cdd35dce4fa1a89a4fd42b1599eb35b3af408884" 186 | integrity sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ== 187 | 188 | "@eslint/eslintrc@^2.1.0": 189 | version "2.1.0" 190 | resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.0.tgz#82256f164cc9e0b59669efc19d57f8092706841d" 191 | integrity sha512-Lj7DECXqIVCqnqjjHMPna4vn6GJcMgul/wuS0je9OZ9gsL0zzDpKPVtcG1HaDVc+9y+qgXneTeUMbCqXJNpH1A== 192 | dependencies: 193 | ajv "^6.12.4" 194 | debug "^4.3.2" 195 | espree "^9.6.0" 196 | globals "^13.19.0" 197 | ignore "^5.2.0" 198 | import-fresh "^3.2.1" 199 | js-yaml "^4.1.0" 200 | minimatch "^3.1.2" 201 | strip-json-comments "^3.1.1" 202 | 203 | "@eslint/js@8.44.0": 204 | version "8.44.0" 205 | resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.44.0.tgz#961a5903c74139390478bdc808bcde3fc45ab7af" 206 | integrity sha512-Ag+9YM4ocKQx9AarydN0KY2j0ErMHNIocPDrVo8zAE44xLTjEtz81OdR68/cydGtk6m6jDb5Za3r2useMzYmSw== 207 | 208 | "@humanwhocodes/config-array@^0.11.10": 209 | version "0.11.10" 210 | resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.10.tgz#5a3ffe32cc9306365fb3fd572596cd602d5e12d2" 211 | integrity sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ== 212 | dependencies: 213 | "@humanwhocodes/object-schema" "^1.2.1" 214 | debug "^4.1.1" 215 | minimatch "^3.0.5" 216 | 217 | "@humanwhocodes/module-importer@^1.0.1": 218 | version "1.0.1" 219 | resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" 220 | integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== 221 | 222 | "@humanwhocodes/object-schema@^1.2.1": 223 | version "1.2.1" 224 | resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" 225 | integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== 226 | 227 | "@nodelib/fs.scandir@2.1.5": 228 | version "2.1.5" 229 | resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" 230 | integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== 231 | dependencies: 232 | "@nodelib/fs.stat" "2.0.5" 233 | run-parallel "^1.1.9" 234 | 235 | "@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": 236 | version "2.0.5" 237 | resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" 238 | integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== 239 | 240 | "@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": 241 | version "1.2.8" 242 | resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" 243 | integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== 244 | dependencies: 245 | "@nodelib/fs.scandir" "2.1.5" 246 | fastq "^1.6.0" 247 | 248 | "@playwright/test@^1.35.1": 249 | version "1.35.1" 250 | resolved "https://registry.yarnpkg.com/@playwright/test/-/test-1.35.1.tgz#a596b61e15b980716696f149cc7a2002f003580c" 251 | integrity sha512-b5YoFe6J9exsMYg0pQAobNDR85T1nLumUYgUTtKm4d21iX2L7WqKq9dW8NGJ+2vX0etZd+Y7UeuqsxDXm9+5ZA== 252 | dependencies: 253 | "@types/node" "*" 254 | playwright-core "1.35.1" 255 | optionalDependencies: 256 | fsevents "2.3.2" 257 | 258 | "@types/json5@^0.0.29": 259 | version "0.0.29" 260 | resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" 261 | integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== 262 | 263 | "@types/minimist@^1.2.2": 264 | version "1.2.2" 265 | resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.2.tgz#ee771e2ba4b3dc5b372935d549fd9617bf345b8c" 266 | integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== 267 | 268 | "@types/node@*": 269 | version "20.4.1" 270 | resolved "https://registry.yarnpkg.com/@types/node/-/node-20.4.1.tgz#a6033a8718653c50ac4962977e14d0f984d9527d" 271 | integrity sha512-JIzsAvJeA/5iY6Y/OxZbv1lUcc8dNSE77lb2gnBH+/PJ3lFR1Ccvgwl5JWnHAkNHcRsT0TbpVOsiMKZ1F/yyJg== 272 | 273 | "@types/normalize-package-data@^2.4.0": 274 | version "2.4.1" 275 | resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" 276 | integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== 277 | 278 | acorn-jsx@^5.3.2: 279 | version "5.3.2" 280 | resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" 281 | integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== 282 | 283 | acorn@^8.9.0: 284 | version "8.10.0" 285 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5" 286 | integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw== 287 | 288 | ajv@^6.10.0, ajv@^6.12.4: 289 | version "6.12.6" 290 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" 291 | integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== 292 | dependencies: 293 | fast-deep-equal "^3.1.1" 294 | fast-json-stable-stringify "^2.0.0" 295 | json-schema-traverse "^0.4.1" 296 | uri-js "^4.2.2" 297 | 298 | ajv@^8.0.1: 299 | version "8.12.0" 300 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1" 301 | integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== 302 | dependencies: 303 | fast-deep-equal "^3.1.1" 304 | json-schema-traverse "^1.0.0" 305 | require-from-string "^2.0.2" 306 | uri-js "^4.2.2" 307 | 308 | ansi-regex@^5.0.1: 309 | version "5.0.1" 310 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" 311 | integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== 312 | 313 | ansi-styles@^3.2.1: 314 | version "3.2.1" 315 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 316 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== 317 | dependencies: 318 | color-convert "^1.9.0" 319 | 320 | ansi-styles@^4.0.0, ansi-styles@^4.1.0: 321 | version "4.3.0" 322 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" 323 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== 324 | dependencies: 325 | color-convert "^2.0.1" 326 | 327 | argparse@^2.0.1: 328 | version "2.0.1" 329 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" 330 | integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== 331 | 332 | array-buffer-byte-length@^1.0.0: 333 | version "1.0.0" 334 | resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" 335 | integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A== 336 | dependencies: 337 | call-bind "^1.0.2" 338 | is-array-buffer "^3.0.1" 339 | 340 | array-includes@^3.1.6: 341 | version "3.1.6" 342 | resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.6.tgz#9e9e720e194f198266ba9e18c29e6a9b0e4b225f" 343 | integrity sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw== 344 | dependencies: 345 | call-bind "^1.0.2" 346 | define-properties "^1.1.4" 347 | es-abstract "^1.20.4" 348 | get-intrinsic "^1.1.3" 349 | is-string "^1.0.7" 350 | 351 | array-union@^2.1.0: 352 | version "2.1.0" 353 | resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" 354 | integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== 355 | 356 | array.prototype.flat@^1.3.1: 357 | version "1.3.1" 358 | resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz#ffc6576a7ca3efc2f46a143b9d1dda9b4b3cf5e2" 359 | integrity sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA== 360 | dependencies: 361 | call-bind "^1.0.2" 362 | define-properties "^1.1.4" 363 | es-abstract "^1.20.4" 364 | es-shim-unscopables "^1.0.0" 365 | 366 | array.prototype.flatmap@^1.3.1: 367 | version "1.3.1" 368 | resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz#1aae7903c2100433cb8261cd4ed310aab5c4a183" 369 | integrity sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ== 370 | dependencies: 371 | call-bind "^1.0.2" 372 | define-properties "^1.1.4" 373 | es-abstract "^1.20.4" 374 | es-shim-unscopables "^1.0.0" 375 | 376 | arrify@^1.0.1: 377 | version "1.0.1" 378 | resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" 379 | integrity sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA== 380 | 381 | astral-regex@^2.0.0: 382 | version "2.0.0" 383 | resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" 384 | integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== 385 | 386 | available-typed-arrays@^1.0.5: 387 | version "1.0.5" 388 | resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" 389 | integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== 390 | 391 | balanced-match@^1.0.0: 392 | version "1.0.2" 393 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" 394 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== 395 | 396 | balanced-match@^2.0.0: 397 | version "2.0.0" 398 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-2.0.0.tgz#dc70f920d78db8b858535795867bf48f820633d9" 399 | integrity sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA== 400 | 401 | brace-expansion@^1.1.7: 402 | version "1.1.11" 403 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 404 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 405 | dependencies: 406 | balanced-match "^1.0.0" 407 | concat-map "0.0.1" 408 | 409 | braces@^3.0.3: 410 | version "3.0.3" 411 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" 412 | integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== 413 | dependencies: 414 | fill-range "^7.1.1" 415 | 416 | builtins@^5.0.1: 417 | version "5.0.1" 418 | resolved "https://registry.yarnpkg.com/builtins/-/builtins-5.0.1.tgz#87f6db9ab0458be728564fa81d876d8d74552fa9" 419 | integrity sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ== 420 | dependencies: 421 | semver "^7.0.0" 422 | 423 | call-bind@^1.0.0, call-bind@^1.0.2: 424 | version "1.0.2" 425 | resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" 426 | integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== 427 | dependencies: 428 | function-bind "^1.1.1" 429 | get-intrinsic "^1.0.2" 430 | 431 | callsites@^3.0.0: 432 | version "3.1.0" 433 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" 434 | integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== 435 | 436 | camelcase-keys@^7.0.0: 437 | version "7.0.2" 438 | resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-7.0.2.tgz#d048d8c69448745bb0de6fc4c1c52a30dfbe7252" 439 | integrity sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg== 440 | dependencies: 441 | camelcase "^6.3.0" 442 | map-obj "^4.1.0" 443 | quick-lru "^5.1.1" 444 | type-fest "^1.2.1" 445 | 446 | camelcase@^6.3.0: 447 | version "6.3.0" 448 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" 449 | integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== 450 | 451 | chalk@^2.0.0: 452 | version "2.4.2" 453 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" 454 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== 455 | dependencies: 456 | ansi-styles "^3.2.1" 457 | escape-string-regexp "^1.0.5" 458 | supports-color "^5.3.0" 459 | 460 | chalk@^4.0.0: 461 | version "4.1.2" 462 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" 463 | integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== 464 | dependencies: 465 | ansi-styles "^4.1.0" 466 | supports-color "^7.1.0" 467 | 468 | color-convert@^1.9.0: 469 | version "1.9.3" 470 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" 471 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== 472 | dependencies: 473 | color-name "1.1.3" 474 | 475 | color-convert@^2.0.1: 476 | version "2.0.1" 477 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" 478 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== 479 | dependencies: 480 | color-name "~1.1.4" 481 | 482 | color-name@1.1.3: 483 | version "1.1.3" 484 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 485 | integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== 486 | 487 | color-name@~1.1.4: 488 | version "1.1.4" 489 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" 490 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== 491 | 492 | colord@^2.9.3: 493 | version "2.9.3" 494 | resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.3.tgz#4f8ce919de456f1d5c1c368c307fe20f3e59fb43" 495 | integrity sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw== 496 | 497 | concat-map@0.0.1: 498 | version "0.0.1" 499 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 500 | integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== 501 | 502 | cosmiconfig@^8.2.0: 503 | version "8.2.0" 504 | resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.2.0.tgz#f7d17c56a590856cd1e7cee98734dca272b0d8fd" 505 | integrity sha512-3rTMnFJA1tCOPwRxtgF4wd7Ab2qvDbL8jX+3smjIbS4HlZBagTlpERbdN7iAbWlrfxE3M8c27kTwTawQ7st+OQ== 506 | dependencies: 507 | import-fresh "^3.2.1" 508 | js-yaml "^4.1.0" 509 | parse-json "^5.0.0" 510 | path-type "^4.0.0" 511 | 512 | cross-spawn@^7.0.2: 513 | version "7.0.6" 514 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" 515 | integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== 516 | dependencies: 517 | path-key "^3.1.0" 518 | shebang-command "^2.0.0" 519 | which "^2.0.1" 520 | 521 | css-functions-list@^3.1.0: 522 | version "3.2.0" 523 | resolved "https://registry.yarnpkg.com/css-functions-list/-/css-functions-list-3.2.0.tgz#8290b7d064bf483f48d6559c10e98dc4d1ad19ee" 524 | integrity sha512-d/jBMPyYybkkLVypgtGv12R+pIFw4/f/IHtCTxWpZc8ofTYOPigIgmA6vu5rMHartZC+WuXhBUHfnyNUIQSYrg== 525 | 526 | css-tree@^2.3.1: 527 | version "2.3.1" 528 | resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.3.1.tgz#10264ce1e5442e8572fc82fbe490644ff54b5c20" 529 | integrity sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw== 530 | dependencies: 531 | mdn-data "2.0.30" 532 | source-map-js "^1.0.1" 533 | 534 | cssesc@^3.0.0: 535 | version "3.0.0" 536 | resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" 537 | integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== 538 | 539 | debug@^3.2.7: 540 | version "3.2.7" 541 | resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" 542 | integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== 543 | dependencies: 544 | ms "^2.1.1" 545 | 546 | debug@^4.1.1, debug@^4.3.2, debug@^4.3.4: 547 | version "4.3.4" 548 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" 549 | integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== 550 | dependencies: 551 | ms "2.1.2" 552 | 553 | decamelize-keys@^1.1.0: 554 | version "1.1.1" 555 | resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.1.tgz#04a2d523b2f18d80d0158a43b895d56dff8d19d8" 556 | integrity sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg== 557 | dependencies: 558 | decamelize "^1.1.0" 559 | map-obj "^1.0.0" 560 | 561 | decamelize@^1.1.0: 562 | version "1.2.0" 563 | resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" 564 | integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== 565 | 566 | decamelize@^5.0.0: 567 | version "5.0.1" 568 | resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-5.0.1.tgz#db11a92e58c741ef339fb0a2868d8a06a9a7b1e9" 569 | integrity sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA== 570 | 571 | deep-is@^0.1.3: 572 | version "0.1.4" 573 | resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" 574 | integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== 575 | 576 | define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0: 577 | version "1.2.0" 578 | resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.0.tgz#52988570670c9eacedd8064f4a990f2405849bd5" 579 | integrity sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA== 580 | dependencies: 581 | has-property-descriptors "^1.0.0" 582 | object-keys "^1.1.1" 583 | 584 | dir-glob@^3.0.1: 585 | version "3.0.1" 586 | resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" 587 | integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== 588 | dependencies: 589 | path-type "^4.0.0" 590 | 591 | doctrine@^2.1.0: 592 | version "2.1.0" 593 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" 594 | integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== 595 | dependencies: 596 | esutils "^2.0.2" 597 | 598 | doctrine@^3.0.0: 599 | version "3.0.0" 600 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" 601 | integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== 602 | dependencies: 603 | esutils "^2.0.2" 604 | 605 | emoji-regex@^8.0.0: 606 | version "8.0.0" 607 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" 608 | integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== 609 | 610 | error-ex@^1.3.1: 611 | version "1.3.2" 612 | resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" 613 | integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== 614 | dependencies: 615 | is-arrayish "^0.2.1" 616 | 617 | es-abstract@^1.19.0, es-abstract@^1.20.4: 618 | version "1.21.2" 619 | resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.21.2.tgz#a56b9695322c8a185dc25975aa3b8ec31d0e7eff" 620 | integrity sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg== 621 | dependencies: 622 | array-buffer-byte-length "^1.0.0" 623 | available-typed-arrays "^1.0.5" 624 | call-bind "^1.0.2" 625 | es-set-tostringtag "^2.0.1" 626 | es-to-primitive "^1.2.1" 627 | function.prototype.name "^1.1.5" 628 | get-intrinsic "^1.2.0" 629 | get-symbol-description "^1.0.0" 630 | globalthis "^1.0.3" 631 | gopd "^1.0.1" 632 | has "^1.0.3" 633 | has-property-descriptors "^1.0.0" 634 | has-proto "^1.0.1" 635 | has-symbols "^1.0.3" 636 | internal-slot "^1.0.5" 637 | is-array-buffer "^3.0.2" 638 | is-callable "^1.2.7" 639 | is-negative-zero "^2.0.2" 640 | is-regex "^1.1.4" 641 | is-shared-array-buffer "^1.0.2" 642 | is-string "^1.0.7" 643 | is-typed-array "^1.1.10" 644 | is-weakref "^1.0.2" 645 | object-inspect "^1.12.3" 646 | object-keys "^1.1.1" 647 | object.assign "^4.1.4" 648 | regexp.prototype.flags "^1.4.3" 649 | safe-regex-test "^1.0.0" 650 | string.prototype.trim "^1.2.7" 651 | string.prototype.trimend "^1.0.6" 652 | string.prototype.trimstart "^1.0.6" 653 | typed-array-length "^1.0.4" 654 | unbox-primitive "^1.0.2" 655 | which-typed-array "^1.1.9" 656 | 657 | es-set-tostringtag@^2.0.1: 658 | version "2.0.1" 659 | resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz#338d502f6f674301d710b80c8592de8a15f09cd8" 660 | integrity sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg== 661 | dependencies: 662 | get-intrinsic "^1.1.3" 663 | has "^1.0.3" 664 | has-tostringtag "^1.0.0" 665 | 666 | es-shim-unscopables@^1.0.0: 667 | version "1.0.0" 668 | resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz#702e632193201e3edf8713635d083d378e510241" 669 | integrity sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w== 670 | dependencies: 671 | has "^1.0.3" 672 | 673 | es-to-primitive@^1.2.1: 674 | version "1.2.1" 675 | resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" 676 | integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== 677 | dependencies: 678 | is-callable "^1.1.4" 679 | is-date-object "^1.0.1" 680 | is-symbol "^1.0.2" 681 | 682 | esbuild@^0.25.0: 683 | version "0.25.0" 684 | resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.25.0.tgz#0de1787a77206c5a79eeb634a623d39b5006ce92" 685 | integrity sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw== 686 | optionalDependencies: 687 | "@esbuild/aix-ppc64" "0.25.0" 688 | "@esbuild/android-arm" "0.25.0" 689 | "@esbuild/android-arm64" "0.25.0" 690 | "@esbuild/android-x64" "0.25.0" 691 | "@esbuild/darwin-arm64" "0.25.0" 692 | "@esbuild/darwin-x64" "0.25.0" 693 | "@esbuild/freebsd-arm64" "0.25.0" 694 | "@esbuild/freebsd-x64" "0.25.0" 695 | "@esbuild/linux-arm" "0.25.0" 696 | "@esbuild/linux-arm64" "0.25.0" 697 | "@esbuild/linux-ia32" "0.25.0" 698 | "@esbuild/linux-loong64" "0.25.0" 699 | "@esbuild/linux-mips64el" "0.25.0" 700 | "@esbuild/linux-ppc64" "0.25.0" 701 | "@esbuild/linux-riscv64" "0.25.0" 702 | "@esbuild/linux-s390x" "0.25.0" 703 | "@esbuild/linux-x64" "0.25.0" 704 | "@esbuild/netbsd-arm64" "0.25.0" 705 | "@esbuild/netbsd-x64" "0.25.0" 706 | "@esbuild/openbsd-arm64" "0.25.0" 707 | "@esbuild/openbsd-x64" "0.25.0" 708 | "@esbuild/sunos-x64" "0.25.0" 709 | "@esbuild/win32-arm64" "0.25.0" 710 | "@esbuild/win32-ia32" "0.25.0" 711 | "@esbuild/win32-x64" "0.25.0" 712 | 713 | escape-string-regexp@^1.0.5: 714 | version "1.0.5" 715 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 716 | integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== 717 | 718 | escape-string-regexp@^4.0.0: 719 | version "4.0.0" 720 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" 721 | integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== 722 | 723 | eslint-config-prettier@^8.8.0: 724 | version "8.8.0" 725 | resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz#bfda738d412adc917fd7b038857110efe98c9348" 726 | integrity sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA== 727 | 728 | eslint-config-standard@^17.1.0: 729 | version "17.1.0" 730 | resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-17.1.0.tgz#40ffb8595d47a6b242e07cbfd49dc211ed128975" 731 | integrity sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q== 732 | 733 | eslint-import-resolver-node@^0.3.7: 734 | version "0.3.7" 735 | resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz#83b375187d412324a1963d84fa664377a23eb4d7" 736 | integrity sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA== 737 | dependencies: 738 | debug "^3.2.7" 739 | is-core-module "^2.11.0" 740 | resolve "^1.22.1" 741 | 742 | eslint-module-utils@^2.7.4: 743 | version "2.8.0" 744 | resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz#e439fee65fc33f6bba630ff621efc38ec0375c49" 745 | integrity sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw== 746 | dependencies: 747 | debug "^3.2.7" 748 | 749 | eslint-plugin-es-x@^7.1.0: 750 | version "7.1.0" 751 | resolved "https://registry.yarnpkg.com/eslint-plugin-es-x/-/eslint-plugin-es-x-7.1.0.tgz#f0d5421e658cca95c1cfb2355831851bdc83322d" 752 | integrity sha512-AhiaF31syh4CCQ+C5ccJA0VG6+kJK8+5mXKKE7Qs1xcPRg02CDPOj3mWlQxuWS/AYtg7kxrDNgW9YW3vc0Q+Mw== 753 | dependencies: 754 | "@eslint-community/eslint-utils" "^4.1.2" 755 | "@eslint-community/regexpp" "^4.5.0" 756 | 757 | eslint-plugin-import@^2.27.5: 758 | version "2.27.5" 759 | resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz#876a6d03f52608a3e5bb439c2550588e51dd6c65" 760 | integrity sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow== 761 | dependencies: 762 | array-includes "^3.1.6" 763 | array.prototype.flat "^1.3.1" 764 | array.prototype.flatmap "^1.3.1" 765 | debug "^3.2.7" 766 | doctrine "^2.1.0" 767 | eslint-import-resolver-node "^0.3.7" 768 | eslint-module-utils "^2.7.4" 769 | has "^1.0.3" 770 | is-core-module "^2.11.0" 771 | is-glob "^4.0.3" 772 | minimatch "^3.1.2" 773 | object.values "^1.1.6" 774 | resolve "^1.22.1" 775 | semver "^6.3.0" 776 | tsconfig-paths "^3.14.1" 777 | 778 | eslint-plugin-n@^16.0.1: 779 | version "16.0.1" 780 | resolved "https://registry.yarnpkg.com/eslint-plugin-n/-/eslint-plugin-n-16.0.1.tgz#baa62bb3af52940a53ba15386348ad9b0b425ada" 781 | integrity sha512-CDmHegJN0OF3L5cz5tATH84RPQm9kG+Yx39wIqIwPR2C0uhBGMWfbbOtetR83PQjjidA5aXMu+LEFw1jaSwvTA== 782 | dependencies: 783 | "@eslint-community/eslint-utils" "^4.4.0" 784 | builtins "^5.0.1" 785 | eslint-plugin-es-x "^7.1.0" 786 | ignore "^5.2.4" 787 | is-core-module "^2.12.1" 788 | minimatch "^3.1.2" 789 | resolve "^1.22.2" 790 | semver "^7.5.3" 791 | 792 | eslint-plugin-promise@^6.1.1: 793 | version "6.1.1" 794 | resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-6.1.1.tgz#269a3e2772f62875661220631bd4dafcb4083816" 795 | integrity sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig== 796 | 797 | eslint-scope@^7.2.0: 798 | version "7.2.0" 799 | resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.0.tgz#f21ebdafda02352f103634b96dd47d9f81ca117b" 800 | integrity sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw== 801 | dependencies: 802 | esrecurse "^4.3.0" 803 | estraverse "^5.2.0" 804 | 805 | eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1: 806 | version "3.4.1" 807 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz#c22c48f48942d08ca824cc526211ae400478a994" 808 | integrity sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA== 809 | 810 | eslint@^8.44.0: 811 | version "8.44.0" 812 | resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.44.0.tgz#51246e3889b259bbcd1d7d736a0c10add4f0e500" 813 | integrity sha512-0wpHoUbDUHgNCyvFB5aXLiQVfK9B0at6gUvzy83k4kAsQ/u769TQDX6iKC+aO4upIHO9WSaA3QoXYQDHbNwf1A== 814 | dependencies: 815 | "@eslint-community/eslint-utils" "^4.2.0" 816 | "@eslint-community/regexpp" "^4.4.0" 817 | "@eslint/eslintrc" "^2.1.0" 818 | "@eslint/js" "8.44.0" 819 | "@humanwhocodes/config-array" "^0.11.10" 820 | "@humanwhocodes/module-importer" "^1.0.1" 821 | "@nodelib/fs.walk" "^1.2.8" 822 | ajv "^6.10.0" 823 | chalk "^4.0.0" 824 | cross-spawn "^7.0.2" 825 | debug "^4.3.2" 826 | doctrine "^3.0.0" 827 | escape-string-regexp "^4.0.0" 828 | eslint-scope "^7.2.0" 829 | eslint-visitor-keys "^3.4.1" 830 | espree "^9.6.0" 831 | esquery "^1.4.2" 832 | esutils "^2.0.2" 833 | fast-deep-equal "^3.1.3" 834 | file-entry-cache "^6.0.1" 835 | find-up "^5.0.0" 836 | glob-parent "^6.0.2" 837 | globals "^13.19.0" 838 | graphemer "^1.4.0" 839 | ignore "^5.2.0" 840 | import-fresh "^3.0.0" 841 | imurmurhash "^0.1.4" 842 | is-glob "^4.0.0" 843 | is-path-inside "^3.0.3" 844 | js-yaml "^4.1.0" 845 | json-stable-stringify-without-jsonify "^1.0.1" 846 | levn "^0.4.1" 847 | lodash.merge "^4.6.2" 848 | minimatch "^3.1.2" 849 | natural-compare "^1.4.0" 850 | optionator "^0.9.3" 851 | strip-ansi "^6.0.1" 852 | strip-json-comments "^3.1.0" 853 | text-table "^0.2.0" 854 | 855 | espree@^9.6.0: 856 | version "9.6.0" 857 | resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.0.tgz#80869754b1c6560f32e3b6929194a3fe07c5b82f" 858 | integrity sha512-1FH/IiruXZ84tpUlm0aCUEwMl2Ho5ilqVh0VvQXw+byAz/4SAciyHLlfmL5WYqsvD38oymdUwBss0LtK8m4s/A== 859 | dependencies: 860 | acorn "^8.9.0" 861 | acorn-jsx "^5.3.2" 862 | eslint-visitor-keys "^3.4.1" 863 | 864 | esquery@^1.4.2: 865 | version "1.5.0" 866 | resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" 867 | integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== 868 | dependencies: 869 | estraverse "^5.1.0" 870 | 871 | esrecurse@^4.3.0: 872 | version "4.3.0" 873 | resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" 874 | integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== 875 | dependencies: 876 | estraverse "^5.2.0" 877 | 878 | estraverse@^5.1.0, estraverse@^5.2.0: 879 | version "5.3.0" 880 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" 881 | integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== 882 | 883 | esutils@^2.0.2: 884 | version "2.0.3" 885 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" 886 | integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== 887 | 888 | fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: 889 | version "3.1.3" 890 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" 891 | integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== 892 | 893 | fast-glob@^3.2.9, fast-glob@^3.3.0: 894 | version "3.3.0" 895 | resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.0.tgz#7c40cb491e1e2ed5664749e87bfb516dbe8727c0" 896 | integrity sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA== 897 | dependencies: 898 | "@nodelib/fs.stat" "^2.0.2" 899 | "@nodelib/fs.walk" "^1.2.3" 900 | glob-parent "^5.1.2" 901 | merge2 "^1.3.0" 902 | micromatch "^4.0.4" 903 | 904 | fast-json-stable-stringify@^2.0.0: 905 | version "2.1.0" 906 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" 907 | integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== 908 | 909 | fast-levenshtein@^2.0.6: 910 | version "2.0.6" 911 | resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" 912 | integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== 913 | 914 | fastest-levenshtein@^1.0.16: 915 | version "1.0.16" 916 | resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz#210e61b6ff181de91ea9b3d1b84fdedd47e034e5" 917 | integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg== 918 | 919 | fastq@^1.6.0: 920 | version "1.15.0" 921 | resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" 922 | integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== 923 | dependencies: 924 | reusify "^1.0.4" 925 | 926 | file-entry-cache@^6.0.1: 927 | version "6.0.1" 928 | resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" 929 | integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== 930 | dependencies: 931 | flat-cache "^3.0.4" 932 | 933 | fill-range@^7.1.1: 934 | version "7.1.1" 935 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" 936 | integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== 937 | dependencies: 938 | to-regex-range "^5.0.1" 939 | 940 | find-up@^5.0.0: 941 | version "5.0.0" 942 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" 943 | integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== 944 | dependencies: 945 | locate-path "^6.0.0" 946 | path-exists "^4.0.0" 947 | 948 | flat-cache@^3.0.4: 949 | version "3.0.4" 950 | resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" 951 | integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== 952 | dependencies: 953 | flatted "^3.1.0" 954 | rimraf "^3.0.2" 955 | 956 | flatted@^3.1.0: 957 | version "3.2.7" 958 | resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" 959 | integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== 960 | 961 | for-each@^0.3.3: 962 | version "0.3.3" 963 | resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" 964 | integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== 965 | dependencies: 966 | is-callable "^1.1.3" 967 | 968 | fs.realpath@^1.0.0: 969 | version "1.0.0" 970 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 971 | integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== 972 | 973 | fsevents@2.3.2: 974 | version "2.3.2" 975 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" 976 | integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== 977 | 978 | function-bind@^1.1.1: 979 | version "1.1.1" 980 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" 981 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== 982 | 983 | function.prototype.name@^1.1.5: 984 | version "1.1.5" 985 | resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" 986 | integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== 987 | dependencies: 988 | call-bind "^1.0.2" 989 | define-properties "^1.1.3" 990 | es-abstract "^1.19.0" 991 | functions-have-names "^1.2.2" 992 | 993 | functions-have-names@^1.2.2, functions-have-names@^1.2.3: 994 | version "1.2.3" 995 | resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" 996 | integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== 997 | 998 | get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0: 999 | version "1.2.1" 1000 | resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.1.tgz#d295644fed4505fc9cde952c37ee12b477a83d82" 1001 | integrity sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw== 1002 | dependencies: 1003 | function-bind "^1.1.1" 1004 | has "^1.0.3" 1005 | has-proto "^1.0.1" 1006 | has-symbols "^1.0.3" 1007 | 1008 | get-symbol-description@^1.0.0: 1009 | version "1.0.0" 1010 | resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" 1011 | integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== 1012 | dependencies: 1013 | call-bind "^1.0.2" 1014 | get-intrinsic "^1.1.1" 1015 | 1016 | glob-parent@^5.1.2: 1017 | version "5.1.2" 1018 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" 1019 | integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== 1020 | dependencies: 1021 | is-glob "^4.0.1" 1022 | 1023 | glob-parent@^6.0.2: 1024 | version "6.0.2" 1025 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" 1026 | integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== 1027 | dependencies: 1028 | is-glob "^4.0.3" 1029 | 1030 | glob@^7.1.3: 1031 | version "7.2.3" 1032 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" 1033 | integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== 1034 | dependencies: 1035 | fs.realpath "^1.0.0" 1036 | inflight "^1.0.4" 1037 | inherits "2" 1038 | minimatch "^3.1.1" 1039 | once "^1.3.0" 1040 | path-is-absolute "^1.0.0" 1041 | 1042 | global-modules@^2.0.0: 1043 | version "2.0.0" 1044 | resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" 1045 | integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== 1046 | dependencies: 1047 | global-prefix "^3.0.0" 1048 | 1049 | global-prefix@^3.0.0: 1050 | version "3.0.0" 1051 | resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" 1052 | integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== 1053 | dependencies: 1054 | ini "^1.3.5" 1055 | kind-of "^6.0.2" 1056 | which "^1.3.1" 1057 | 1058 | globals@^13.19.0: 1059 | version "13.20.0" 1060 | resolved "https://registry.yarnpkg.com/globals/-/globals-13.20.0.tgz#ea276a1e508ffd4f1612888f9d1bad1e2717bf82" 1061 | integrity sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ== 1062 | dependencies: 1063 | type-fest "^0.20.2" 1064 | 1065 | globalthis@^1.0.3: 1066 | version "1.0.3" 1067 | resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" 1068 | integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== 1069 | dependencies: 1070 | define-properties "^1.1.3" 1071 | 1072 | globby@^11.1.0: 1073 | version "11.1.0" 1074 | resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" 1075 | integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== 1076 | dependencies: 1077 | array-union "^2.1.0" 1078 | dir-glob "^3.0.1" 1079 | fast-glob "^3.2.9" 1080 | ignore "^5.2.0" 1081 | merge2 "^1.4.1" 1082 | slash "^3.0.0" 1083 | 1084 | globjoin@^0.1.4: 1085 | version "0.1.4" 1086 | resolved "https://registry.yarnpkg.com/globjoin/-/globjoin-0.1.4.tgz#2f4494ac8919e3767c5cbb691e9f463324285d43" 1087 | integrity sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg== 1088 | 1089 | gopd@^1.0.1: 1090 | version "1.0.1" 1091 | resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" 1092 | integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== 1093 | dependencies: 1094 | get-intrinsic "^1.1.3" 1095 | 1096 | graphemer@^1.4.0: 1097 | version "1.4.0" 1098 | resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" 1099 | integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== 1100 | 1101 | hard-rejection@^2.1.0: 1102 | version "2.1.0" 1103 | resolved "https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883" 1104 | integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA== 1105 | 1106 | has-bigints@^1.0.1, has-bigints@^1.0.2: 1107 | version "1.0.2" 1108 | resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" 1109 | integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== 1110 | 1111 | has-flag@^3.0.0: 1112 | version "3.0.0" 1113 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 1114 | integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== 1115 | 1116 | has-flag@^4.0.0: 1117 | version "4.0.0" 1118 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" 1119 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== 1120 | 1121 | has-property-descriptors@^1.0.0: 1122 | version "1.0.0" 1123 | resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" 1124 | integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== 1125 | dependencies: 1126 | get-intrinsic "^1.1.1" 1127 | 1128 | has-proto@^1.0.1: 1129 | version "1.0.1" 1130 | resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" 1131 | integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== 1132 | 1133 | has-symbols@^1.0.2, has-symbols@^1.0.3: 1134 | version "1.0.3" 1135 | resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" 1136 | integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== 1137 | 1138 | has-tostringtag@^1.0.0: 1139 | version "1.0.0" 1140 | resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" 1141 | integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== 1142 | dependencies: 1143 | has-symbols "^1.0.2" 1144 | 1145 | has@^1.0.3: 1146 | version "1.0.3" 1147 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" 1148 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== 1149 | dependencies: 1150 | function-bind "^1.1.1" 1151 | 1152 | hosted-git-info@^4.0.1: 1153 | version "4.1.0" 1154 | resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.1.0.tgz#827b82867e9ff1c8d0c4d9d53880397d2c86d224" 1155 | integrity sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA== 1156 | dependencies: 1157 | lru-cache "^6.0.0" 1158 | 1159 | html-tags@^3.3.1: 1160 | version "3.3.1" 1161 | resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-3.3.1.tgz#a04026a18c882e4bba8a01a3d39cfe465d40b5ce" 1162 | integrity sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ== 1163 | 1164 | ignore@^5.2.0, ignore@^5.2.4: 1165 | version "5.2.4" 1166 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" 1167 | integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== 1168 | 1169 | import-fresh@^3.0.0, import-fresh@^3.2.1: 1170 | version "3.3.0" 1171 | resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" 1172 | integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== 1173 | dependencies: 1174 | parent-module "^1.0.0" 1175 | resolve-from "^4.0.0" 1176 | 1177 | import-lazy@^4.0.0: 1178 | version "4.0.0" 1179 | resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-4.0.0.tgz#e8eb627483a0a43da3c03f3e35548be5cb0cc153" 1180 | integrity sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw== 1181 | 1182 | imurmurhash@^0.1.4: 1183 | version "0.1.4" 1184 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" 1185 | integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== 1186 | 1187 | indent-string@^5.0.0: 1188 | version "5.0.0" 1189 | resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-5.0.0.tgz#4fd2980fccaf8622d14c64d694f4cf33c81951a5" 1190 | integrity sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg== 1191 | 1192 | inflight@^1.0.4: 1193 | version "1.0.6" 1194 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 1195 | integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== 1196 | dependencies: 1197 | once "^1.3.0" 1198 | wrappy "1" 1199 | 1200 | inherits@2: 1201 | version "2.0.4" 1202 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 1203 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 1204 | 1205 | ini@^1.3.5: 1206 | version "1.3.8" 1207 | resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" 1208 | integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== 1209 | 1210 | internal-slot@^1.0.5: 1211 | version "1.0.5" 1212 | resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986" 1213 | integrity sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ== 1214 | dependencies: 1215 | get-intrinsic "^1.2.0" 1216 | has "^1.0.3" 1217 | side-channel "^1.0.4" 1218 | 1219 | is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: 1220 | version "3.0.2" 1221 | resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" 1222 | integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== 1223 | dependencies: 1224 | call-bind "^1.0.2" 1225 | get-intrinsic "^1.2.0" 1226 | is-typed-array "^1.1.10" 1227 | 1228 | is-arrayish@^0.2.1: 1229 | version "0.2.1" 1230 | resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" 1231 | integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== 1232 | 1233 | is-bigint@^1.0.1: 1234 | version "1.0.4" 1235 | resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" 1236 | integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== 1237 | dependencies: 1238 | has-bigints "^1.0.1" 1239 | 1240 | is-boolean-object@^1.1.0: 1241 | version "1.1.2" 1242 | resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" 1243 | integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== 1244 | dependencies: 1245 | call-bind "^1.0.2" 1246 | has-tostringtag "^1.0.0" 1247 | 1248 | is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: 1249 | version "1.2.7" 1250 | resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" 1251 | integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== 1252 | 1253 | is-core-module@^2.11.0, is-core-module@^2.12.1, is-core-module@^2.5.0: 1254 | version "2.12.1" 1255 | resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.1.tgz#0c0b6885b6f80011c71541ce15c8d66cf5a4f9fd" 1256 | integrity sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg== 1257 | dependencies: 1258 | has "^1.0.3" 1259 | 1260 | is-date-object@^1.0.1: 1261 | version "1.0.5" 1262 | resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" 1263 | integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== 1264 | dependencies: 1265 | has-tostringtag "^1.0.0" 1266 | 1267 | is-extglob@^2.1.1: 1268 | version "2.1.1" 1269 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" 1270 | integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== 1271 | 1272 | is-fullwidth-code-point@^3.0.0: 1273 | version "3.0.0" 1274 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" 1275 | integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== 1276 | 1277 | is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3: 1278 | version "4.0.3" 1279 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" 1280 | integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== 1281 | dependencies: 1282 | is-extglob "^2.1.1" 1283 | 1284 | is-negative-zero@^2.0.2: 1285 | version "2.0.2" 1286 | resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" 1287 | integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== 1288 | 1289 | is-number-object@^1.0.4: 1290 | version "1.0.7" 1291 | resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" 1292 | integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== 1293 | dependencies: 1294 | has-tostringtag "^1.0.0" 1295 | 1296 | is-number@^7.0.0: 1297 | version "7.0.0" 1298 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" 1299 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== 1300 | 1301 | is-path-inside@^3.0.3: 1302 | version "3.0.3" 1303 | resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" 1304 | integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== 1305 | 1306 | is-plain-obj@^1.1.0: 1307 | version "1.1.0" 1308 | resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" 1309 | integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== 1310 | 1311 | is-plain-object@^5.0.0: 1312 | version "5.0.0" 1313 | resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" 1314 | integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== 1315 | 1316 | is-regex@^1.1.4: 1317 | version "1.1.4" 1318 | resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" 1319 | integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== 1320 | dependencies: 1321 | call-bind "^1.0.2" 1322 | has-tostringtag "^1.0.0" 1323 | 1324 | is-shared-array-buffer@^1.0.2: 1325 | version "1.0.2" 1326 | resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" 1327 | integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== 1328 | dependencies: 1329 | call-bind "^1.0.2" 1330 | 1331 | is-string@^1.0.5, is-string@^1.0.7: 1332 | version "1.0.7" 1333 | resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" 1334 | integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== 1335 | dependencies: 1336 | has-tostringtag "^1.0.0" 1337 | 1338 | is-symbol@^1.0.2, is-symbol@^1.0.3: 1339 | version "1.0.4" 1340 | resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" 1341 | integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== 1342 | dependencies: 1343 | has-symbols "^1.0.2" 1344 | 1345 | is-typed-array@^1.1.10, is-typed-array@^1.1.9: 1346 | version "1.1.10" 1347 | resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.10.tgz#36a5b5cb4189b575d1a3e4b08536bfb485801e3f" 1348 | integrity sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A== 1349 | dependencies: 1350 | available-typed-arrays "^1.0.5" 1351 | call-bind "^1.0.2" 1352 | for-each "^0.3.3" 1353 | gopd "^1.0.1" 1354 | has-tostringtag "^1.0.0" 1355 | 1356 | is-weakref@^1.0.2: 1357 | version "1.0.2" 1358 | resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" 1359 | integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== 1360 | dependencies: 1361 | call-bind "^1.0.2" 1362 | 1363 | isexe@^2.0.0: 1364 | version "2.0.0" 1365 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 1366 | integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== 1367 | 1368 | js-tokens@^4.0.0: 1369 | version "4.0.0" 1370 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" 1371 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== 1372 | 1373 | js-yaml@^4.1.0: 1374 | version "4.1.0" 1375 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" 1376 | integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== 1377 | dependencies: 1378 | argparse "^2.0.1" 1379 | 1380 | json-parse-even-better-errors@^2.3.0: 1381 | version "2.3.1" 1382 | resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" 1383 | integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== 1384 | 1385 | json-schema-traverse@^0.4.1: 1386 | version "0.4.1" 1387 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" 1388 | integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== 1389 | 1390 | json-schema-traverse@^1.0.0: 1391 | version "1.0.0" 1392 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" 1393 | integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== 1394 | 1395 | json-stable-stringify-without-jsonify@^1.0.1: 1396 | version "1.0.1" 1397 | resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" 1398 | integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== 1399 | 1400 | json5@^1.0.2: 1401 | version "1.0.2" 1402 | resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" 1403 | integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== 1404 | dependencies: 1405 | minimist "^1.2.0" 1406 | 1407 | kind-of@^6.0.2, kind-of@^6.0.3: 1408 | version "6.0.3" 1409 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" 1410 | integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== 1411 | 1412 | known-css-properties@^0.27.0: 1413 | version "0.27.0" 1414 | resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.27.0.tgz#82a9358dda5fe7f7bd12b5e7142c0a205393c0c5" 1415 | integrity sha512-uMCj6+hZYDoffuvAJjFAPz56E9uoowFHmTkqRtRq5WyC5Q6Cu/fTZKNQpX/RbzChBYLLl3lo8CjFZBAZXq9qFg== 1416 | 1417 | levn@^0.4.1: 1418 | version "0.4.1" 1419 | resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" 1420 | integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== 1421 | dependencies: 1422 | prelude-ls "^1.2.1" 1423 | type-check "~0.4.0" 1424 | 1425 | lines-and-columns@^1.1.6: 1426 | version "1.2.4" 1427 | resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" 1428 | integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== 1429 | 1430 | locate-path@^6.0.0: 1431 | version "6.0.0" 1432 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" 1433 | integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== 1434 | dependencies: 1435 | p-locate "^5.0.0" 1436 | 1437 | lodash.merge@^4.6.2: 1438 | version "4.6.2" 1439 | resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" 1440 | integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== 1441 | 1442 | lodash.truncate@^4.4.2: 1443 | version "4.4.2" 1444 | resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" 1445 | integrity sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw== 1446 | 1447 | lru-cache@^6.0.0: 1448 | version "6.0.0" 1449 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" 1450 | integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== 1451 | dependencies: 1452 | yallist "^4.0.0" 1453 | 1454 | map-obj@^1.0.0: 1455 | version "1.0.1" 1456 | resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" 1457 | integrity sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg== 1458 | 1459 | map-obj@^4.1.0: 1460 | version "4.3.0" 1461 | resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.3.0.tgz#9304f906e93faae70880da102a9f1df0ea8bb05a" 1462 | integrity sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ== 1463 | 1464 | mathml-tag-names@^2.1.3: 1465 | version "2.1.3" 1466 | resolved "https://registry.yarnpkg.com/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz#4ddadd67308e780cf16a47685878ee27b736a0a3" 1467 | integrity sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg== 1468 | 1469 | mdn-data@2.0.30: 1470 | version "2.0.30" 1471 | resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.30.tgz#ce4df6f80af6cfbe218ecd5c552ba13c4dfa08cc" 1472 | integrity sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA== 1473 | 1474 | meow@^10.1.5: 1475 | version "10.1.5" 1476 | resolved "https://registry.yarnpkg.com/meow/-/meow-10.1.5.tgz#be52a1d87b5f5698602b0f32875ee5940904aa7f" 1477 | integrity sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw== 1478 | dependencies: 1479 | "@types/minimist" "^1.2.2" 1480 | camelcase-keys "^7.0.0" 1481 | decamelize "^5.0.0" 1482 | decamelize-keys "^1.1.0" 1483 | hard-rejection "^2.1.0" 1484 | minimist-options "4.1.0" 1485 | normalize-package-data "^3.0.2" 1486 | read-pkg-up "^8.0.0" 1487 | redent "^4.0.0" 1488 | trim-newlines "^4.0.2" 1489 | type-fest "^1.2.2" 1490 | yargs-parser "^20.2.9" 1491 | 1492 | merge2@^1.3.0, merge2@^1.4.1: 1493 | version "1.4.1" 1494 | resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" 1495 | integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== 1496 | 1497 | micromatch@^4.0.4, micromatch@^4.0.5: 1498 | version "4.0.8" 1499 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202" 1500 | integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== 1501 | dependencies: 1502 | braces "^3.0.3" 1503 | picomatch "^2.3.1" 1504 | 1505 | min-indent@^1.0.1: 1506 | version "1.0.1" 1507 | resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" 1508 | integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== 1509 | 1510 | minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: 1511 | version "3.1.2" 1512 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" 1513 | integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== 1514 | dependencies: 1515 | brace-expansion "^1.1.7" 1516 | 1517 | minimist-options@4.1.0: 1518 | version "4.1.0" 1519 | resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" 1520 | integrity sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A== 1521 | dependencies: 1522 | arrify "^1.0.1" 1523 | is-plain-obj "^1.1.0" 1524 | kind-of "^6.0.3" 1525 | 1526 | minimist@^1.2.0, minimist@^1.2.6: 1527 | version "1.2.8" 1528 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" 1529 | integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== 1530 | 1531 | ms@2.1.2: 1532 | version "2.1.2" 1533 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 1534 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 1535 | 1536 | ms@^2.1.1: 1537 | version "2.1.3" 1538 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" 1539 | integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== 1540 | 1541 | nanoid@^3.3.6: 1542 | version "3.3.8" 1543 | resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.8.tgz#b1be3030bee36aaff18bacb375e5cce521684baf" 1544 | integrity sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w== 1545 | 1546 | natural-compare@^1.4.0: 1547 | version "1.4.0" 1548 | resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" 1549 | integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== 1550 | 1551 | normalize-package-data@^3.0.2: 1552 | version "3.0.3" 1553 | resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-3.0.3.tgz#dbcc3e2da59509a0983422884cd172eefdfa525e" 1554 | integrity sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA== 1555 | dependencies: 1556 | hosted-git-info "^4.0.1" 1557 | is-core-module "^2.5.0" 1558 | semver "^7.3.4" 1559 | validate-npm-package-license "^3.0.1" 1560 | 1561 | normalize-path@^3.0.0: 1562 | version "3.0.0" 1563 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" 1564 | integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== 1565 | 1566 | object-inspect@^1.12.3, object-inspect@^1.9.0: 1567 | version "1.12.3" 1568 | resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" 1569 | integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== 1570 | 1571 | object-keys@^1.1.1: 1572 | version "1.1.1" 1573 | resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" 1574 | integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== 1575 | 1576 | object.assign@^4.1.4: 1577 | version "4.1.4" 1578 | resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" 1579 | integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== 1580 | dependencies: 1581 | call-bind "^1.0.2" 1582 | define-properties "^1.1.4" 1583 | has-symbols "^1.0.3" 1584 | object-keys "^1.1.1" 1585 | 1586 | object.values@^1.1.6: 1587 | version "1.1.6" 1588 | resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.6.tgz#4abbaa71eba47d63589d402856f908243eea9b1d" 1589 | integrity sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw== 1590 | dependencies: 1591 | call-bind "^1.0.2" 1592 | define-properties "^1.1.4" 1593 | es-abstract "^1.20.4" 1594 | 1595 | once@^1.3.0: 1596 | version "1.4.0" 1597 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 1598 | integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== 1599 | dependencies: 1600 | wrappy "1" 1601 | 1602 | optionator@^0.9.3: 1603 | version "0.9.3" 1604 | resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64" 1605 | integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg== 1606 | dependencies: 1607 | "@aashutoshrathi/word-wrap" "^1.2.3" 1608 | deep-is "^0.1.3" 1609 | fast-levenshtein "^2.0.6" 1610 | levn "^0.4.1" 1611 | prelude-ls "^1.2.1" 1612 | type-check "^0.4.0" 1613 | 1614 | p-limit@^3.0.2: 1615 | version "3.1.0" 1616 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" 1617 | integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== 1618 | dependencies: 1619 | yocto-queue "^0.1.0" 1620 | 1621 | p-locate@^5.0.0: 1622 | version "5.0.0" 1623 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" 1624 | integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== 1625 | dependencies: 1626 | p-limit "^3.0.2" 1627 | 1628 | parent-module@^1.0.0: 1629 | version "1.0.1" 1630 | resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" 1631 | integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== 1632 | dependencies: 1633 | callsites "^3.0.0" 1634 | 1635 | parse-json@^5.0.0, parse-json@^5.2.0: 1636 | version "5.2.0" 1637 | resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" 1638 | integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== 1639 | dependencies: 1640 | "@babel/code-frame" "^7.0.0" 1641 | error-ex "^1.3.1" 1642 | json-parse-even-better-errors "^2.3.0" 1643 | lines-and-columns "^1.1.6" 1644 | 1645 | path-exists@^4.0.0: 1646 | version "4.0.0" 1647 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" 1648 | integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== 1649 | 1650 | path-is-absolute@^1.0.0: 1651 | version "1.0.1" 1652 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 1653 | integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== 1654 | 1655 | path-key@^3.1.0: 1656 | version "3.1.1" 1657 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" 1658 | integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== 1659 | 1660 | path-parse@^1.0.7: 1661 | version "1.0.7" 1662 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" 1663 | integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== 1664 | 1665 | path-type@^4.0.0: 1666 | version "4.0.0" 1667 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" 1668 | integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== 1669 | 1670 | picocolors@^1.0.0: 1671 | version "1.0.0" 1672 | resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" 1673 | integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== 1674 | 1675 | picomatch@^2.3.1: 1676 | version "2.3.1" 1677 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" 1678 | integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== 1679 | 1680 | playwright-core@1.35.1: 1681 | version "1.35.1" 1682 | resolved "https://registry.yarnpkg.com/playwright-core/-/playwright-core-1.35.1.tgz#52c1e6ffaa6a8c29de1a5bdf8cce0ce290ffb81d" 1683 | integrity sha512-pNXb6CQ7OqmGDRspEjlxE49w+4YtR6a3X6mT1hZXeJHWmsEz7SunmvZeiG/+y1yyMZdHnnn73WKYdtV1er0Xyg== 1684 | 1685 | postcss-resolve-nested-selector@^0.1.1: 1686 | version "0.1.1" 1687 | resolved "https://registry.yarnpkg.com/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz#29ccbc7c37dedfac304e9fff0bf1596b3f6a0e4e" 1688 | integrity sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw== 1689 | 1690 | postcss-safe-parser@^6.0.0: 1691 | version "6.0.0" 1692 | resolved "https://registry.yarnpkg.com/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz#bb4c29894171a94bc5c996b9a30317ef402adaa1" 1693 | integrity sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ== 1694 | 1695 | postcss-selector-parser@^6.0.13: 1696 | version "6.0.13" 1697 | resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz#d05d8d76b1e8e173257ef9d60b706a8e5e99bf1b" 1698 | integrity sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ== 1699 | dependencies: 1700 | cssesc "^3.0.0" 1701 | util-deprecate "^1.0.2" 1702 | 1703 | postcss-value-parser@^4.2.0: 1704 | version "4.2.0" 1705 | resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" 1706 | integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== 1707 | 1708 | postcss@^8.4.24: 1709 | version "8.4.31" 1710 | resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.31.tgz#92b451050a9f914da6755af352bdc0192508656d" 1711 | integrity sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ== 1712 | dependencies: 1713 | nanoid "^3.3.6" 1714 | picocolors "^1.0.0" 1715 | source-map-js "^1.0.2" 1716 | 1717 | prelude-ls@^1.2.1: 1718 | version "1.2.1" 1719 | resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" 1720 | integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== 1721 | 1722 | prettier@^3.0.0: 1723 | version "3.0.0" 1724 | resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.0.tgz#e7b19f691245a21d618c68bc54dc06122f6105ae" 1725 | integrity sha512-zBf5eHpwHOGPC47h0zrPyNn+eAEIdEzfywMoYn2XPi0P44Zp0tSq64rq0xAREh4auw2cJZHo9QUob+NqCQky4g== 1726 | 1727 | punycode@^2.1.0: 1728 | version "2.3.0" 1729 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" 1730 | integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== 1731 | 1732 | queue-microtask@^1.2.2: 1733 | version "1.2.3" 1734 | resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" 1735 | integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== 1736 | 1737 | quick-lru@^5.1.1: 1738 | version "5.1.1" 1739 | resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" 1740 | integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== 1741 | 1742 | read-pkg-up@^8.0.0: 1743 | version "8.0.0" 1744 | resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-8.0.0.tgz#72f595b65e66110f43b052dd9af4de6b10534670" 1745 | integrity sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ== 1746 | dependencies: 1747 | find-up "^5.0.0" 1748 | read-pkg "^6.0.0" 1749 | type-fest "^1.0.1" 1750 | 1751 | read-pkg@^6.0.0: 1752 | version "6.0.0" 1753 | resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-6.0.0.tgz#a67a7d6a1c2b0c3cd6aa2ea521f40c458a4a504c" 1754 | integrity sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q== 1755 | dependencies: 1756 | "@types/normalize-package-data" "^2.4.0" 1757 | normalize-package-data "^3.0.2" 1758 | parse-json "^5.2.0" 1759 | type-fest "^1.0.1" 1760 | 1761 | redent@^4.0.0: 1762 | version "4.0.0" 1763 | resolved "https://registry.yarnpkg.com/redent/-/redent-4.0.0.tgz#0c0ba7caabb24257ab3bb7a4fd95dd1d5c5681f9" 1764 | integrity sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag== 1765 | dependencies: 1766 | indent-string "^5.0.0" 1767 | strip-indent "^4.0.0" 1768 | 1769 | regexp.prototype.flags@^1.4.3: 1770 | version "1.5.0" 1771 | resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz#fe7ce25e7e4cca8db37b6634c8a2c7009199b9cb" 1772 | integrity sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA== 1773 | dependencies: 1774 | call-bind "^1.0.2" 1775 | define-properties "^1.2.0" 1776 | functions-have-names "^1.2.3" 1777 | 1778 | require-from-string@^2.0.2: 1779 | version "2.0.2" 1780 | resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" 1781 | integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== 1782 | 1783 | resolve-from@^4.0.0: 1784 | version "4.0.0" 1785 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" 1786 | integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== 1787 | 1788 | resolve-from@^5.0.0: 1789 | version "5.0.0" 1790 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" 1791 | integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== 1792 | 1793 | resolve@^1.22.1, resolve@^1.22.2: 1794 | version "1.22.2" 1795 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f" 1796 | integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g== 1797 | dependencies: 1798 | is-core-module "^2.11.0" 1799 | path-parse "^1.0.7" 1800 | supports-preserve-symlinks-flag "^1.0.0" 1801 | 1802 | reusify@^1.0.4: 1803 | version "1.0.4" 1804 | resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" 1805 | integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== 1806 | 1807 | rimraf@^3.0.2: 1808 | version "3.0.2" 1809 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" 1810 | integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== 1811 | dependencies: 1812 | glob "^7.1.3" 1813 | 1814 | run-parallel@^1.1.9: 1815 | version "1.2.0" 1816 | resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" 1817 | integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== 1818 | dependencies: 1819 | queue-microtask "^1.2.2" 1820 | 1821 | safe-regex-test@^1.0.0: 1822 | version "1.0.0" 1823 | resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" 1824 | integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== 1825 | dependencies: 1826 | call-bind "^1.0.2" 1827 | get-intrinsic "^1.1.3" 1828 | is-regex "^1.1.4" 1829 | 1830 | semver@^6.3.0: 1831 | version "6.3.1" 1832 | resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" 1833 | integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== 1834 | 1835 | semver@^7.0.0, semver@^7.3.4, semver@^7.5.3: 1836 | version "7.5.4" 1837 | resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" 1838 | integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== 1839 | dependencies: 1840 | lru-cache "^6.0.0" 1841 | 1842 | shebang-command@^2.0.0: 1843 | version "2.0.0" 1844 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" 1845 | integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== 1846 | dependencies: 1847 | shebang-regex "^3.0.0" 1848 | 1849 | shebang-regex@^3.0.0: 1850 | version "3.0.0" 1851 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" 1852 | integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== 1853 | 1854 | side-channel@^1.0.4: 1855 | version "1.0.4" 1856 | resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" 1857 | integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== 1858 | dependencies: 1859 | call-bind "^1.0.0" 1860 | get-intrinsic "^1.0.2" 1861 | object-inspect "^1.9.0" 1862 | 1863 | signal-exit@^4.0.1: 1864 | version "4.0.2" 1865 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.0.2.tgz#ff55bb1d9ff2114c13b400688fa544ac63c36967" 1866 | integrity sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q== 1867 | 1868 | slash@^3.0.0: 1869 | version "3.0.0" 1870 | resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" 1871 | integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== 1872 | 1873 | slice-ansi@^4.0.0: 1874 | version "4.0.0" 1875 | resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" 1876 | integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== 1877 | dependencies: 1878 | ansi-styles "^4.0.0" 1879 | astral-regex "^2.0.0" 1880 | is-fullwidth-code-point "^3.0.0" 1881 | 1882 | source-map-js@^1.0.1, source-map-js@^1.0.2: 1883 | version "1.0.2" 1884 | resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" 1885 | integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== 1886 | 1887 | spdx-correct@^3.0.0: 1888 | version "3.2.0" 1889 | resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.2.0.tgz#4f5ab0668f0059e34f9c00dce331784a12de4e9c" 1890 | integrity sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA== 1891 | dependencies: 1892 | spdx-expression-parse "^3.0.0" 1893 | spdx-license-ids "^3.0.0" 1894 | 1895 | spdx-exceptions@^2.1.0: 1896 | version "2.3.0" 1897 | resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" 1898 | integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== 1899 | 1900 | spdx-expression-parse@^3.0.0: 1901 | version "3.0.1" 1902 | resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" 1903 | integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== 1904 | dependencies: 1905 | spdx-exceptions "^2.1.0" 1906 | spdx-license-ids "^3.0.0" 1907 | 1908 | spdx-license-ids@^3.0.0: 1909 | version "3.0.13" 1910 | resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz#7189a474c46f8d47c7b0da4b987bb45e908bd2d5" 1911 | integrity sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w== 1912 | 1913 | string-width@^4.2.3: 1914 | version "4.2.3" 1915 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" 1916 | integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== 1917 | dependencies: 1918 | emoji-regex "^8.0.0" 1919 | is-fullwidth-code-point "^3.0.0" 1920 | strip-ansi "^6.0.1" 1921 | 1922 | string.prototype.trim@^1.2.7: 1923 | version "1.2.7" 1924 | resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz#a68352740859f6893f14ce3ef1bb3037f7a90533" 1925 | integrity sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg== 1926 | dependencies: 1927 | call-bind "^1.0.2" 1928 | define-properties "^1.1.4" 1929 | es-abstract "^1.20.4" 1930 | 1931 | string.prototype.trimend@^1.0.6: 1932 | version "1.0.6" 1933 | resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz#c4a27fa026d979d79c04f17397f250a462944533" 1934 | integrity sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ== 1935 | dependencies: 1936 | call-bind "^1.0.2" 1937 | define-properties "^1.1.4" 1938 | es-abstract "^1.20.4" 1939 | 1940 | string.prototype.trimstart@^1.0.6: 1941 | version "1.0.6" 1942 | resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz#e90ab66aa8e4007d92ef591bbf3cd422c56bdcf4" 1943 | integrity sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA== 1944 | dependencies: 1945 | call-bind "^1.0.2" 1946 | define-properties "^1.1.4" 1947 | es-abstract "^1.20.4" 1948 | 1949 | strip-ansi@^6.0.1: 1950 | version "6.0.1" 1951 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" 1952 | integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== 1953 | dependencies: 1954 | ansi-regex "^5.0.1" 1955 | 1956 | strip-bom@^3.0.0: 1957 | version "3.0.0" 1958 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" 1959 | integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== 1960 | 1961 | strip-indent@^4.0.0: 1962 | version "4.0.0" 1963 | resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-4.0.0.tgz#b41379433dd06f5eae805e21d631e07ee670d853" 1964 | integrity sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA== 1965 | dependencies: 1966 | min-indent "^1.0.1" 1967 | 1968 | strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: 1969 | version "3.1.1" 1970 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" 1971 | integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== 1972 | 1973 | style-search@^0.1.0: 1974 | version "0.1.0" 1975 | resolved "https://registry.yarnpkg.com/style-search/-/style-search-0.1.0.tgz#7958c793e47e32e07d2b5cafe5c0bf8e12e77902" 1976 | integrity sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg== 1977 | 1978 | stylelint-config-recommended@^13.0.0: 1979 | version "13.0.0" 1980 | resolved "https://registry.yarnpkg.com/stylelint-config-recommended/-/stylelint-config-recommended-13.0.0.tgz#c48a358cc46b629ea01f22db60b351f703e00597" 1981 | integrity sha512-EH+yRj6h3GAe/fRiyaoO2F9l9Tgg50AOFhaszyfov9v6ayXJ1IkSHwTxd7lB48FmOeSGDPLjatjO11fJpmarkQ== 1982 | 1983 | stylelint-config-standard@^34.0.0: 1984 | version "34.0.0" 1985 | resolved "https://registry.yarnpkg.com/stylelint-config-standard/-/stylelint-config-standard-34.0.0.tgz#309f3c48118a02aae262230c174282e40e766cf4" 1986 | integrity sha512-u0VSZnVyW9VSryBG2LSO+OQTjN7zF9XJaAJRX/4EwkmU0R2jYwmBSN10acqZisDitS0CLiEiGjX7+Hrq8TAhfQ== 1987 | dependencies: 1988 | stylelint-config-recommended "^13.0.0" 1989 | 1990 | stylelint@^15.10.1: 1991 | version "15.10.1" 1992 | resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-15.10.1.tgz#93f189958687e330c106b010cbec0c41dcae506d" 1993 | integrity sha512-CYkzYrCFfA/gnOR+u9kJ1PpzwG10WLVnoxHDuBA/JiwGqdM9+yx9+ou6SE/y9YHtfv1mcLo06fdadHTOx4gBZQ== 1994 | dependencies: 1995 | "@csstools/css-parser-algorithms" "^2.3.0" 1996 | "@csstools/css-tokenizer" "^2.1.1" 1997 | "@csstools/media-query-list-parser" "^2.1.2" 1998 | "@csstools/selector-specificity" "^3.0.0" 1999 | balanced-match "^2.0.0" 2000 | colord "^2.9.3" 2001 | cosmiconfig "^8.2.0" 2002 | css-functions-list "^3.1.0" 2003 | css-tree "^2.3.1" 2004 | debug "^4.3.4" 2005 | fast-glob "^3.3.0" 2006 | fastest-levenshtein "^1.0.16" 2007 | file-entry-cache "^6.0.1" 2008 | global-modules "^2.0.0" 2009 | globby "^11.1.0" 2010 | globjoin "^0.1.4" 2011 | html-tags "^3.3.1" 2012 | ignore "^5.2.4" 2013 | import-lazy "^4.0.0" 2014 | imurmurhash "^0.1.4" 2015 | is-plain-object "^5.0.0" 2016 | known-css-properties "^0.27.0" 2017 | mathml-tag-names "^2.1.3" 2018 | meow "^10.1.5" 2019 | micromatch "^4.0.5" 2020 | normalize-path "^3.0.0" 2021 | picocolors "^1.0.0" 2022 | postcss "^8.4.24" 2023 | postcss-resolve-nested-selector "^0.1.1" 2024 | postcss-safe-parser "^6.0.0" 2025 | postcss-selector-parser "^6.0.13" 2026 | postcss-value-parser "^4.2.0" 2027 | resolve-from "^5.0.0" 2028 | string-width "^4.2.3" 2029 | strip-ansi "^6.0.1" 2030 | style-search "^0.1.0" 2031 | supports-hyperlinks "^3.0.0" 2032 | svg-tags "^1.0.0" 2033 | table "^6.8.1" 2034 | write-file-atomic "^5.0.1" 2035 | 2036 | stylis@^4.3.0: 2037 | version "4.3.0" 2038 | resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.3.0.tgz#abe305a669fc3d8777e10eefcfc73ad861c5588c" 2039 | integrity sha512-E87pIogpwUsUwXw7dNyU4QDjdgVMy52m+XEOPEKUn161cCzWjjhPSQhByfd1CcNvrOLnXQ6OnnZDwnJrz/Z4YQ== 2040 | 2041 | supports-color@^5.3.0: 2042 | version "5.5.0" 2043 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 2044 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 2045 | dependencies: 2046 | has-flag "^3.0.0" 2047 | 2048 | supports-color@^7.0.0, supports-color@^7.1.0: 2049 | version "7.2.0" 2050 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" 2051 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== 2052 | dependencies: 2053 | has-flag "^4.0.0" 2054 | 2055 | supports-hyperlinks@^3.0.0: 2056 | version "3.0.0" 2057 | resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-3.0.0.tgz#c711352a5c89070779b4dad54c05a2f14b15c94b" 2058 | integrity sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA== 2059 | dependencies: 2060 | has-flag "^4.0.0" 2061 | supports-color "^7.0.0" 2062 | 2063 | supports-preserve-symlinks-flag@^1.0.0: 2064 | version "1.0.0" 2065 | resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" 2066 | integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== 2067 | 2068 | svg-tags@^1.0.0: 2069 | version "1.0.0" 2070 | resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764" 2071 | integrity sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA== 2072 | 2073 | table@^6.8.1: 2074 | version "6.8.1" 2075 | resolved "https://registry.yarnpkg.com/table/-/table-6.8.1.tgz#ea2b71359fe03b017a5fbc296204471158080bdf" 2076 | integrity sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA== 2077 | dependencies: 2078 | ajv "^8.0.1" 2079 | lodash.truncate "^4.4.2" 2080 | slice-ansi "^4.0.0" 2081 | string-width "^4.2.3" 2082 | strip-ansi "^6.0.1" 2083 | 2084 | text-table@^0.2.0: 2085 | version "0.2.0" 2086 | resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" 2087 | integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== 2088 | 2089 | to-regex-range@^5.0.1: 2090 | version "5.0.1" 2091 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" 2092 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== 2093 | dependencies: 2094 | is-number "^7.0.0" 2095 | 2096 | trim-newlines@^4.0.2: 2097 | version "4.1.1" 2098 | resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-4.1.1.tgz#28c88deb50ed10c7ba6dc2474421904a00139125" 2099 | integrity sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ== 2100 | 2101 | tsconfig-paths@^3.14.1: 2102 | version "3.14.2" 2103 | resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz#6e32f1f79412decd261f92d633a9dc1cfa99f088" 2104 | integrity sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g== 2105 | dependencies: 2106 | "@types/json5" "^0.0.29" 2107 | json5 "^1.0.2" 2108 | minimist "^1.2.6" 2109 | strip-bom "^3.0.0" 2110 | 2111 | type-check@^0.4.0, type-check@~0.4.0: 2112 | version "0.4.0" 2113 | resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" 2114 | integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== 2115 | dependencies: 2116 | prelude-ls "^1.2.1" 2117 | 2118 | type-fest@^0.20.2: 2119 | version "0.20.2" 2120 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" 2121 | integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== 2122 | 2123 | type-fest@^1.0.1, type-fest@^1.2.1, type-fest@^1.2.2: 2124 | version "1.4.0" 2125 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-1.4.0.tgz#e9fb813fe3bf1744ec359d55d1affefa76f14be1" 2126 | integrity sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA== 2127 | 2128 | typed-array-length@^1.0.4: 2129 | version "1.0.4" 2130 | resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb" 2131 | integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng== 2132 | dependencies: 2133 | call-bind "^1.0.2" 2134 | for-each "^0.3.3" 2135 | is-typed-array "^1.1.9" 2136 | 2137 | unbox-primitive@^1.0.2: 2138 | version "1.0.2" 2139 | resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" 2140 | integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== 2141 | dependencies: 2142 | call-bind "^1.0.2" 2143 | has-bigints "^1.0.2" 2144 | has-symbols "^1.0.3" 2145 | which-boxed-primitive "^1.0.2" 2146 | 2147 | uri-js@^4.2.2: 2148 | version "4.4.1" 2149 | resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" 2150 | integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== 2151 | dependencies: 2152 | punycode "^2.1.0" 2153 | 2154 | util-deprecate@^1.0.2: 2155 | version "1.0.2" 2156 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 2157 | integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== 2158 | 2159 | validate-npm-package-license@^3.0.1: 2160 | version "3.0.4" 2161 | resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" 2162 | integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== 2163 | dependencies: 2164 | spdx-correct "^3.0.0" 2165 | spdx-expression-parse "^3.0.0" 2166 | 2167 | which-boxed-primitive@^1.0.2: 2168 | version "1.0.2" 2169 | resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" 2170 | integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== 2171 | dependencies: 2172 | is-bigint "^1.0.1" 2173 | is-boolean-object "^1.1.0" 2174 | is-number-object "^1.0.4" 2175 | is-string "^1.0.5" 2176 | is-symbol "^1.0.3" 2177 | 2178 | which-typed-array@^1.1.9: 2179 | version "1.1.9" 2180 | resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.9.tgz#307cf898025848cf995e795e8423c7f337efbde6" 2181 | integrity sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA== 2182 | dependencies: 2183 | available-typed-arrays "^1.0.5" 2184 | call-bind "^1.0.2" 2185 | for-each "^0.3.3" 2186 | gopd "^1.0.1" 2187 | has-tostringtag "^1.0.0" 2188 | is-typed-array "^1.1.10" 2189 | 2190 | which@^1.3.1: 2191 | version "1.3.1" 2192 | resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" 2193 | integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== 2194 | dependencies: 2195 | isexe "^2.0.0" 2196 | 2197 | which@^2.0.1: 2198 | version "2.0.2" 2199 | resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" 2200 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== 2201 | dependencies: 2202 | isexe "^2.0.0" 2203 | 2204 | wrappy@1: 2205 | version "1.0.2" 2206 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 2207 | integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== 2208 | 2209 | write-file-atomic@^5.0.1: 2210 | version "5.0.1" 2211 | resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-5.0.1.tgz#68df4717c55c6fa4281a7860b4c2ba0a6d2b11e7" 2212 | integrity sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw== 2213 | dependencies: 2214 | imurmurhash "^0.1.4" 2215 | signal-exit "^4.0.1" 2216 | 2217 | yallist@^4.0.0: 2218 | version "4.0.0" 2219 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" 2220 | integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== 2221 | 2222 | yargs-parser@^20.2.9: 2223 | version "20.2.9" 2224 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" 2225 | integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== 2226 | 2227 | yocto-queue@^0.1.0: 2228 | version "0.1.0" 2229 | resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" 2230 | integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== 2231 | --------------------------------------------------------------------------------