From cdc0d6129090d6a66a2f5202b73241c12ab927c4 Mon Sep 17 00:00:00 2001 From: Todd Lucas Date: Fri, 10 May 2024 10:23:54 -0500 Subject: [PATCH] Initial Commit --- .eslintrc.js | 14 + .gitattributes | 32 + .github/FUNDING.yml | 2 + .github/ISSUE_TEMPLATE/bug.yml | 57 + .github/ISSUE_TEMPLATE/config.yml | 1 + .github/ISSUE_TEMPLATE/feature_request.yml | 47 + .github/dependabot.yml | 15 + .github/workflows/build.yml | 22 + .github/workflows/hacs.yml | 19 + .github/workflows/release.yml | 33 + .gitignore | 20 + .prettierrc.js | 7 + .vscode/launch.json | 19 + CHANGELOG.md | 13 + LICENSE | 21 + README.md | 83 + SoundTouchPlusCard.njsproj | 164 + SoundTouchPlusCard.njsproj.user | 6 + SoundTouchPlusCard.sln | 25 + hacs.json | 7 + images/pandora_card_panel.jpg | Bin 0 -> 409496 bytes images/presets_card_panel.jpg | Bin 0 -> 142583 bytes images/presets_editor_ui.jpg | Bin 0 -> 117698 bytes package-lock.json | 16407 ++++++++++++++++ package.json | 46 + rollup.config.js | 46 + src/card.ts | 649 + src/components/footer.ts | 116 + src/components/ha-player.ts | 33 + src/components/media-browser-icons.ts | 182 + src/components/media-browser-list.ts | 172 + src/constants.ts | 51 + src/editor/base-editor.ts | 221 + src/editor/editor-form.ts | 98 + src/editor/editor.ts | 129 + src/editor/general-editor.ts | 118 + src/editor/pandora-browser-editor.ts | 156 + src/editor/preset-browser-editor.ts | 96 + src/editor/recent-browser-editor.ts | 96 + src/main.ts | 43 + src/model/media-player.ts | 35 + src/model/store.ts | 81 + src/sections/pandora-browser.ts | 289 + src/sections/player.ts | 118 + src/sections/preset-browser.ts | 265 + src/sections/recent-browser.ts | 227 + src/services/hass-service.ts | 96 + src/services/soundtouchplus-service.ts | 321 + src/types.ts | 56 + src/types/cardconfig.ts | 176 + src/types/customimageurls.ts | 9 + src/types/hassentity-soundtouchplus.ts | 18 + src/types/hassentityattributes-mediaplayer.ts | 41 + .../hassentityattributes-soundtouchplus.ts | 19 + src/types/section.ts | 9 + src/types/servicecallrequest.ts | 19 + src/types/servicecallresponse.ts | 39 + src/types/soundtouchplus/contentitem.ts | 50 + src/types/soundtouchplus/navigateitem.ts | 92 + src/types/soundtouchplus/navigateresponse.ts | 50 + src/types/soundtouchplus/preset.ts | 41 + src/types/soundtouchplus/presetlist.ts | 16 + src/types/soundtouchplus/recent.ts | 38 + src/types/soundtouchplus/recentlist.ts | 16 + src/types/soundtouchplus/sourceitem.ts | 30 + src/types/soundtouchplus/sourcelist.ts | 22 + src/utils/media-browser-utils.ts | 226 + src/utils/utils.ts | 82 + tsconfig.json | 22 + 69 files changed, 21769 insertions(+) create mode 100644 .eslintrc.js create mode 100644 .gitattributes create mode 100644 .github/FUNDING.yml create mode 100644 .github/ISSUE_TEMPLATE/bug.yml create mode 100644 .github/ISSUE_TEMPLATE/config.yml create mode 100644 .github/ISSUE_TEMPLATE/feature_request.yml create mode 100644 .github/dependabot.yml create mode 100644 .github/workflows/build.yml create mode 100644 .github/workflows/hacs.yml create mode 100644 .github/workflows/release.yml create mode 100644 .gitignore create mode 100644 .prettierrc.js create mode 100644 .vscode/launch.json create mode 100644 CHANGELOG.md create mode 100644 LICENSE create mode 100644 README.md create mode 100644 SoundTouchPlusCard.njsproj create mode 100644 SoundTouchPlusCard.njsproj.user create mode 100644 SoundTouchPlusCard.sln create mode 100644 hacs.json create mode 100644 images/pandora_card_panel.jpg create mode 100644 images/presets_card_panel.jpg create mode 100644 images/presets_editor_ui.jpg create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 rollup.config.js create mode 100644 src/card.ts create mode 100644 src/components/footer.ts create mode 100644 src/components/ha-player.ts create mode 100644 src/components/media-browser-icons.ts create mode 100644 src/components/media-browser-list.ts create mode 100644 src/constants.ts create mode 100644 src/editor/base-editor.ts create mode 100644 src/editor/editor-form.ts create mode 100644 src/editor/editor.ts create mode 100644 src/editor/general-editor.ts create mode 100644 src/editor/pandora-browser-editor.ts create mode 100644 src/editor/preset-browser-editor.ts create mode 100644 src/editor/recent-browser-editor.ts create mode 100644 src/main.ts create mode 100644 src/model/media-player.ts create mode 100644 src/model/store.ts create mode 100644 src/sections/pandora-browser.ts create mode 100644 src/sections/player.ts create mode 100644 src/sections/preset-browser.ts create mode 100644 src/sections/recent-browser.ts create mode 100644 src/services/hass-service.ts create mode 100644 src/services/soundtouchplus-service.ts create mode 100644 src/types.ts create mode 100644 src/types/cardconfig.ts create mode 100644 src/types/customimageurls.ts create mode 100644 src/types/hassentity-soundtouchplus.ts create mode 100644 src/types/hassentityattributes-mediaplayer.ts create mode 100644 src/types/hassentityattributes-soundtouchplus.ts create mode 100644 src/types/section.ts create mode 100644 src/types/servicecallrequest.ts create mode 100644 src/types/servicecallresponse.ts create mode 100644 src/types/soundtouchplus/contentitem.ts create mode 100644 src/types/soundtouchplus/navigateitem.ts create mode 100644 src/types/soundtouchplus/navigateresponse.ts create mode 100644 src/types/soundtouchplus/preset.ts create mode 100644 src/types/soundtouchplus/presetlist.ts create mode 100644 src/types/soundtouchplus/recent.ts create mode 100644 src/types/soundtouchplus/recentlist.ts create mode 100644 src/types/soundtouchplus/sourceitem.ts create mode 100644 src/types/soundtouchplus/sourcelist.ts create mode 100644 src/utils/media-browser-utils.ts create mode 100644 src/utils/utils.ts create mode 100644 tsconfig.json diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000..382dc33 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,14 @@ +module.exports = { + parser: "@typescript-eslint/parser", + parserOptions: { + ecmaVersion: 2020, // Allows for the parsing of modern ECMAScript features + sourceType: "module" // Allows for the use of imports + }, + extends: [ + "plugin:@typescript-eslint/recommended" + ], + rules: { + // Place to specify ESLint rules. Can be used to overwrite rules specified from the extended configs + // e.g. "@typescript-eslint/explicit-function-return-type": "off", + } +}; \ No newline at end of file diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..7c1ccc5 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,32 @@ +# Auto detect text files and perform LF normalization +* text=auto + +# correct GitHub "Languages" detection behavior. +# without this, GitHub reports the repository as an HTML application. +.github/** linguist-documentation +.vscode/** linguist-documentation +config/** linguist-documentation +scripts/** linguist-documentation +*.bat linguist-detectable=false +*.yaml linguist-detectable=false +*.txt linguist-detectable=false + +# handle files with specified extensions as described. +*.doc diff=astextplain +*.DOC diff=astextplain +*.docx diff=astextplain +*.DOCX diff=astextplain +*.dot diff=astextplain +*.DOT diff=astextplain +*.pdf diff=astextplain +*.PDF diff=astextplain +*.rtf diff=astextplain +*.RTF diff=astextplain +*.jpg binary +*.png binary +*.gif binary +*.csproj text=auto merge=union +*.vbproj text=auto merge=union +*.fsproj text=auto merge=union +*.dbproj text=auto merge=union +*.sln -text merge=union diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 0000000..ef790e3 --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1,2 @@ +github: [thlucas1] +custom: ['https://www.buymeacoffee.com/thlucas1'] diff --git a/.github/ISSUE_TEMPLATE/bug.yml b/.github/ISSUE_TEMPLATE/bug.yml new file mode 100644 index 0000000..20b4030 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug.yml @@ -0,0 +1,57 @@ +--- +name: "Bug report" +description: "Report a bug with the card" +labels: "Bug" +body: +- type: markdown + attributes: + value: Before you open a new issue, search through the existing issues to see if others have had the same problem; also make sure you are running the latest version of Home Assistant. +- type: textarea + attributes: + label: "System Health details" + description: "Paste the data from the System Health card in Home Assistant (https://www.home-assistant.io/more-info/system-health#github-issues)" + validations: + required: true +- type: checkboxes + attributes: + label: Checklist + options: + - label: I am running the latest version of Home Assistant for my installation. + required: true + - label: I am running the latest version of the card. + required: true + - label: I have filled out the issue template to the best of my ability. + required: true + - label: This issue only contains 1 issue (if you have multiple issues, open one issue for each issue). + required: true + - label: This issue is not a duplicate issue of any [previous issues](https://github.com/thlucas1/homeassistantcomponent_soundtouchplus_card/issues?q=is%3Aissue+label%3A%22Bug%22+).. + required: true +- type: textarea + attributes: + label: "Describe the issue" + description: "A clear and concise description of what the issue is." + validations: + required: true +- type: textarea + attributes: + label: Reproduction Steps + description: "Without steps to reproduce, it will be hard to fix. It is very important that you fill out this part. Issues without it will be closed." + value: | + 1. + 2. + 3. + ... + validations: + required: true +- type: textarea + attributes: + label: "Debug / Console Logs" + description: "To enable debug logs check this https://www.home-assistant.io/integrations/logger/, this **needs** to include _everything_ from startup of Home Assistant to the point where you encounter the issue. You can also include browser console / developer tool logs here as well." + render: text + validations: + required: true + +- type: textarea + attributes: + label: "Diagnostics Dump (optional)" + description: "Drag the diagnostics dump file here. (see https://www.home-assistant.io/integrations/diagnostics/ for info)" diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..ec4bb38 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1 @@ +blank_issues_enabled: false \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 index 0000000..86121ba --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,47 @@ +--- +name: "Feature request" +description: "Suggest an idea for this project" +labels: "Feature+Request" +body: +- type: markdown + attributes: + value: Before you open a new feature request, search through the existing feature requests to see if others have had the same idea. +- type: checkboxes + attributes: + label: Checklist + options: + - label: I have filled out the template to the best of my ability. + required: true + - label: This only contains 1 feature request (if you have multiple feature requests, open one feature request for each feature request). + required: true + - label: This issue is not a duplicate feature request of [previous feature requests](https://github.com/thlucas1/homeassistantcomponent_soundtouchplus_card/issues?q=is%3Aissue+label%3A%22Feature+Request%22+). + required: true + +- type: textarea + attributes: + label: "Is your feature request related to a problem? Please describe." + description: "A clear and concise description of what the problem is." + placeholder: "I'm always frustrated when [...]" + validations: + required: true + +- type: textarea + attributes: + label: "Describe the solution you'd like" + description: "A clear and concise description of what you want to happen." + validations: + required: true + +- type: textarea + attributes: + label: "Describe alternatives you've considered" + description: "A clear and concise description of any alternative solutions or features you've considered." + validations: + required: true + +- type: textarea + attributes: + label: "Additional context" + description: "Add any other context or screenshots about the feature request here." + validations: + required: true diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..4014ff5 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,15 @@ +# To get started with Dependabot version updates, you'll need to specify which +# package ecosystems to update and where the package manifests are located. +# Please see the documentation for all configuration options: +# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates + +version: 2 +updates: + - package-ecosystem: "npm" + directory: "/" # Location of package manifests + schedule: + interval: "monthly" + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "monthly" diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..ba64bab --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,22 @@ +name: 'Build' + +on: + push: + branches: + - master + pull_request: + branches: + - master + +jobs: + build: + name: "Build Plugin" + runs-on: ubuntu-latest + steps: + - name: "Repository checkout" + uses: "actions/checkout@v4" + + - name: "NPM Build" + run: | + npm install + npm run buildgithub diff --git a/.github/workflows/hacs.yml b/.github/workflows/hacs.yml new file mode 100644 index 0000000..c237551 --- /dev/null +++ b/.github/workflows/hacs.yml @@ -0,0 +1,19 @@ +name: HACS Action + +on: + push: + pull_request: + schedule: + - cron: "25 23 * * *" + workflow_dispatch: + +jobs: + hacs: + name: HACS Action + runs-on: ubuntu-latest + steps: + - uses: "actions/checkout@v4" + - name: HACS Validation + uses: hacs/action@main + with: + category: plugin \ No newline at end of file diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..a73865a --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,33 @@ +name: "Release" + +on: + release: + types: + - "published" + +permissions: {} + +jobs: + release: + name: "Prepare Release" + runs-on: "ubuntu-latest" + permissions: + contents: write + steps: + - name: "Repository checkout" + uses: "actions/checkout@v4" + + - name: "NPM Build Plugin" + run: | + cd "${{ github.workspace }}" + npm install + npm run buildgithub + + - name: "Upload Files to Release" + uses: softprops/action-gh-release@v0.1.15 + with: + files: "${{ github.workspace }}/dist/soundtouchplus-card.js" + + # plugin file(s) will be placed in the following Home Assistant configuration directory + # location once it is installed via HACS: + # "/config/www/community/homeassistantcomponent_soundtouchplus_card/soundtouchplus-card.js" diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a313d7b --- /dev/null +++ b/.gitignore @@ -0,0 +1,20 @@ +# artifacts +/build/ +/dist/ +.DS_Store + +# Visual Studio 2022 configuration. +/.vs/ +/obj/ +/bin/ + +# NPM +/node_modules/ + +# GIT support files to ignore. +/Git*.cmd + +# Local project files and folders to ignore. +/dist/Build.bat +/developer_notes.txt +/New_Release_Instructions.txt diff --git a/.prettierrc.js b/.prettierrc.js new file mode 100644 index 0000000..93f1e1c --- /dev/null +++ b/.prettierrc.js @@ -0,0 +1,7 @@ +module.exports = { + semi: true, + trailingComma: 'all', + singleQuote: true, + printWidth: 120, + tabWidth: 2, +}; \ No newline at end of file diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..453d733 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,19 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + + + { + "type": "node", + "request": "launch", + "name": "Launch Program", + "skipFiles": [ + "/**" + ], + "program": "${file}" + } + ] +} \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..3c7eb78 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,13 @@ +## Change Log + +All notable changes to this project are listed here. + +Change are listed in reverse chronological order (newest to oldest). + + + +###### [ 1.0.0 ] - 2024/05/10 + + * Version 1 initial release. + + \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..4f39543 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2019 - 2023 Joakim Sørensen @ludeeus + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..12cc2df --- /dev/null +++ b/README.md @@ -0,0 +1,83 @@ +# SoundTouchPlus Card + +[![GitHub Release][releases-shield]][releases] [![License][license-shield]](LICENSE) [![docs][docs-shield]][docs] [![hacs][hacs-shield]][hacs] + +![Project Maintenance][maintenance-shield] [![BuyMeCoffee][buymecoffee-shield]][buymecoffee] + +_Home Assistant UI card that supports features unique to the [SoundTouchPlus](https://github.com/thlucas1/homeassistantcomponent_soundtouchplus) custom integration._ +Extended support for the Bose SoundTouch line of speaker products for use in Home Assistant. + +## Features + +* Display / Select / Store SoundTouch Device Presets +* Display / Select SoundTouch Device Recently Played items +* Display / Select your Pandora Stations + +with more to come! + +Check out the [Configuration Guide wiki](https://github.com/thlucas1/homeassistantcomponent_soundtouchplus_card/wiki/Configuration-Guide) page for detailed explanations, images and YAML examples of the various options supported by this card. + +## How it Looks + +Here's a quick look on what the card looks like. + +_Pandora Stations, Panel Mode_ + + +_SoundTouch Presets, Panel Mode_ + + +_Editor UI, SoundTouch Presets_ + + +## HACS Installation Instructions (recommended) + +- on your sidebar go to HACS > Frontend +- click on the 3-dot overflow menu in the upper right, and select `custom repositories` item. +- copy / paste `https://github.com/thlucas1/homeassistantcomponent_soundtouchplus_card` in the Repository textbox and select `Lovelace` for the category entry. +- click on `Add` to add the custom repository. +- you can then click on the `SoundTouchPlus Card` repository entry (you may need to filter your list first to find the new entry). +- click on `download` to start the download. It will install the card to your config/custom_components directory. +- go back on your dashboard and click on the icon at the right top corner then on Edit dashboard. +- you can now click on Add card in the bottom right corner and search for "Custom: SoundTouchPlus Card". + +## Manual Installation + +- using the tool of choice open the directory (folder) for your HA configuration (where you find `configuration.yaml`). +- change directory to the `www` folder; if you don't have this directory, then create it. +- download the `soundtouchplus-card.js` file from the [GitHub repository](https://github.com/thlucas1/homeassistantcomponent_soundtouchplus_card) into your `/www` folder. +- on your dashboard click on the icon at the right top corner then on Edit dashboard. +- click again on that icon and then on Manage resources. +- click on Add resource. +- copy and paste this: `/local/soundtouchplus-card.js?v=1`. +- click on JavaScript Module then Create. +- go back and refresh your page. +- you can now click on Add card in the bottom right corner and search for "Custom: SoundTouchPlus Card". +- after any update of the file you will have to edit `/local/soundtouchplus-card.js?v=1` and change the version (e.g. `v=1`) to any higher number (e.g. `v=1.2`). + + +## Configuration + +Most of the configuration of the card is done in the UI. + +## Reporting a Problem + +Submit a [Bug Report](https://github.com/thlucas1/homeassistantcomponent_soundtouchplus_card/issues/new?assignees=&labels=Bug&projects=&template=bug.yml) to bring the issue to my attention. I receive a notification when a new issue is opened, and will do my best to address it in a prompt and professional manner. + +## Request a New Feature + +Do you have an idea for a new feature that could be added to the integration? Submit a [Feature Request](https://github.com/thlucas1/homeassistantcomponent_soundtouchplus_card/issues/new?assignees=&labels=Feature%2BRequest&projects=&template=feature_request.yml) to get your idea into the queue. I receive a notification when a new request is opened, and will do my best to turn your idea into the latest and greatest feature. + +*** + +[releases-shield]: https://img.shields.io/github/release/thlucas1/homeassistantcomponent_soundtouchplus_card.svg?style=for-the-badge +[releases]: https://github.com/thlucas1/homeassistantcomponent_soundtouchplus_card/releases +[license-shield]: https://img.shields.io/github/license/thlucas1/homeassistantcomponent_soundtouchplus_card.svg?style=for-the-badge +[docs]: https://github.com/thlucas1/homeassistantcomponent_soundtouchplus_card/wiki +[docs-shield]: https://img.shields.io/badge/Docs-Wiki-blue.svg?style=for-the-badge +[hacs]: https://github.com/hacs/integration +[hacs-shield]: https://img.shields.io/badge/HACS-Default-41BDF5.svg?style=for-the-badge + +[maintenance-shield]: https://img.shields.io/badge/maintainer-Todd%20Lucas%20%40thlucas1-blue.svg?style=for-the-badge +[buymecoffee]: https://www.buymeacoffee.com/thlucas1 +[buymecoffee-shield]: https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg?style=for-the-badge diff --git a/SoundTouchPlusCard.njsproj b/SoundTouchPlusCard.njsproj new file mode 100644 index 0000000..d689ec3 --- /dev/null +++ b/SoundTouchPlusCard.njsproj @@ -0,0 +1,164 @@ + + + + Debug + 2.0 + {19dfee94-5cae-417c-ac13-38b165e4121e} + . + ShowAllFiles + dist\soundtouchplus-card.js + . + . + {3AF33F2E-1136-4D97-BBB7-1795711AC8B8};{349c5851-65df-11da-9384-00065b846f21};{9092AA53-FB77-4645-B42D-1CCCA6BD08BD} + true + 17.0 + $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) + True + Jest + True + + + + + + + + + + + + + + + + + + + + Code + + + + + + + + + + + Code + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Code + + + Code + + + + + + Code + + + + + + + Code + + + Code + + + + + + + + + + + + + + False + True + 0 + / + http://localhost:48022/ + False + True + http://localhost:1337 + False + + + + + + + CurrentPage + True + False + False + False + + + + + + + + + False + False + + + + + \ No newline at end of file diff --git a/SoundTouchPlusCard.njsproj.user b/SoundTouchPlusCard.njsproj.user new file mode 100644 index 0000000..db86229 --- /dev/null +++ b/SoundTouchPlusCard.njsproj.user @@ -0,0 +1,6 @@ + + + + Debug|Any CPU + + \ No newline at end of file diff --git a/SoundTouchPlusCard.sln b/SoundTouchPlusCard.sln new file mode 100644 index 0000000..48c1618 --- /dev/null +++ b/SoundTouchPlusCard.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.7.34031.279 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{9092AA53-FB77-4645-B42D-1CCCA6BD08BD}") = "SoundTouchPlusCard", "SoundTouchPlusCard.njsproj", "{19DFEE94-5CAE-417C-AC13-38B165E4121E}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {19DFEE94-5CAE-417C-AC13-38B165E4121E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {19DFEE94-5CAE-417C-AC13-38B165E4121E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {19DFEE94-5CAE-417C-AC13-38B165E4121E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {19DFEE94-5CAE-417C-AC13-38B165E4121E}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {565C40C8-67DC-409B-AA17-959A4D8DE3BF} + EndGlobalSection +EndGlobal diff --git a/hacs.json b/hacs.json new file mode 100644 index 0000000..792c99f --- /dev/null +++ b/hacs.json @@ -0,0 +1,7 @@ +{ + "name": "SoundTouchPlus Card", + "filename": "soundtouchplus-card.js", + "hide_default_branch": true, + "homeassistant": "2023.8.0", + "render_readme": true +} diff --git a/images/pandora_card_panel.jpg b/images/pandora_card_panel.jpg new file mode 100644 index 0000000000000000000000000000000000000000..544620a937d52694976771fe9c6238f6cfa0d7ae GIT binary patch literal 409496 zcmeFY2UL?^yDu07Leh>3}ah_927T)jqqot&KPIvE+ojaxS|WE9l@uV46P5Y;t8)2nzw0yfYUDgr_( z0(=_?3<41l1JeEx`0p=*D}anwNv@GzCj$ml-2`1BASAp(MEFN)U~~ZRcMuU3@vXZ; zkFVa=u_R%0p?>%-?%OqX`SKPT-6150@C(=Xq}OTb=ouI}?{VGd<`EGU6PJ*bQh1`M zq^zQ* z7XgUyZ)*Khv;U+Q6`2jOx;k#?p@^RnF zTS(c3b&)hLT!*gHa)>N(qW-A%muCMp#oqr9Y4%UW{-xJ6h@6lBSUf^15Cnud&Whlk zi|D$a6(R8JfB*ikS)j}ixzMa0dm95Dm2q|`A`s0?L{!N2ecfST3QK^Uxw^os@1qTo zv@6SoK_>$@n@X^Wj(G=ETvH7rZ@N+^ZG86#*BCa+swisau`~;r9Jvl2p6BU0im%0k zJdQ{Cc9|4LlP(S+V$-A3s_Xrqxm*Pvwt^02DIEMI(SG8wa(AY@4VIUVeKvfo;#Kbm z4E|&nA|};KD;0{1u-}^^o#IW4rrD*#gRZ!z?t#r~k;&1SDE`xMCJjH!dtdo;A{jSa z0W1(y-!2W+M$qb>HC4Dg9s1$ zyXhmXCheob${UItVz=rVU<{7l5zlnP4wbBoKS$4hU0WI=(7Kx8fO1W@12X4X~ zDcCQ`baCUn4MqVmS`a7U3_+&y7<9opuJKAQY)6kVVlJpTkh88qUBzFzNZk_|8T?+F z+jyG2`Qv@FM2Vf@pC>G02g(ge{kU-l-kKN=cuiC%8(2QaTCbi=pxvH#(mmsC-3!|$ z);g46bcw%Y!1A@WI*%{q@rzQ`V#yyLkbdo*i19rs-a^8TdbGgYtkl%jYRDu75$sV$+39?*AbVk}e3tyzL{iz!WbAOWP5#!7t^+IO z1V+|@roSl5-sELN9#x-@9f!&WLo**pMz5YGF4n-kPwhx?)Uk>}YTJ+O(wNp(pv2mC zEkaS!P)Yatk2^P&*@|=&CyiNy@gNE+lqoL4ISPh^dEr5w_wk^RFmwqXq$u72K||{C zpq0dpN?nFcC~^o)gV_9z?!<#g&R`hVShQ_y#KN(jzZD)7bcw)8TKFk~eCaSE%I(e< z+)YAwPz!be4`R;7F|seivD6Fnc+ev501t{WOdopmUuLaM@(tGd#NPl9%1T`UW59EG z5UK~VlqJUt8`40<;wbm=AoQBg9yP)LY!O+sBAR%-CprzNjL-?~7iVFwvp#9CR2LNt zxG|~_5d5mY$wb~N`$nt8byP=l`RDcfS&={f|NHynuZa7ZSN<3HQ0C)ky?;Wk`conU zzq!G8A9{b;6KHjR(90Zle#!v2A3^DW^8417y8ePi3LZWF?~zNXGhZ@f8b<2izh&he zJ1Y#^MRXtm5K(7LQt!U+2iX}P*jGG=pR!nv2|c0#3o>XDYkWSv5yV&Oo=<4CZYOq) za`76py{H@Z$~b*x1s<9k7umJ<=67E=N6X!NwO>t_LkbGfw5`8X?eey!HHyNmFDVeo zoTG1_%k(AGmM;)i`(9t!J}=Q3xHy7|&Cnpcy0Jb1U8iL?F}6b(S#X5=04Z7kOli-U zs&3;`(4F7we!%dGqRNQk!_nZ%%sZ&Ox3ogdh*JrFiOGQ(a;-mP#-kqVY8vOo4Lz}Y zZ9NIn8Ra63y1=k2TJ>HwY4HY91j6|durIziUQBGsuD?Rz<|!To;w!EqE0R`koAPib zFAjfzoovmQuS7=Z_4SmtIn3m?a?^c<1fzePD+&P*# zn5Z#ThnYjVF5H#^vrExuxZ431=6ZT4%5X;x6-RdokI<2Lm4=S<$&Rf=^S*ZXF!sj@lfKFcYiIW?y`{bf55SPwEV8fqCw78i507ReX{i;hW2<7%G9W?g6 z-qh!L0M9jN)LOy1&g~>ZTj_U_8-yGi8433blND6xmsn-&qV_q}PNQb~XXoj5D?{fo^!~RNo zI$`FH52kaXtHp>zo)NO%w8?B1g3URhp` zTk6fNKsBz?UTyiX%wQe;LVkxS{((#SO1_Mh=(i>5FC`e4#b|Nk`j~?bPgd3j#?<00 zhhL%j$Oy3y_8L1q4MMK4nO=cwEpx7S8K zv{(*r61I@P;L6S{Yc9dwFSarfyvX=#WLhGr^OjU!yAP;@#=bn!R zuqN;Rl@7DGBeC>_3B~hDj**FrZ9Ir$fGVre^=JwHf&YZe{Gx8=*MeQtWK+ErUxL(q zA+X$o?kn9%;0C?Q?+;zCB|%8g4jMlZ<)f8z+D|U#qAQ7C!RdsGe@KHD3hQM2_lY0f zxRQ|+TsjYpR6oIk9wgTzG8Qw=VR0*?hGnz-8! z`@WjztM2*hic{G=n`O$#g;p$+ZUqvXI168xF~QuPH5nie)Yxh`-`M}4+s zx@cebJ>}LUUz&!b(?GVSx|+k>hC#;zt2FvSWrh^9N(I-N9^U6onmmZ0-O2y~Foi;q zg4JoXntJ4cxVFyP9iw?^{kT|_>F4dC@>ez@JP84!FUA_gU!`;gpO~vHsM$n5P1PH- z9B#Weu0vj09;JARn7y0q%5W6Mgi z?VFnq_%e6(K~{VZfyUGV8fkFyQ?o;eD)56uwk_ZpQ#{nMv~or@eqeW<)8IiVs*Byv(a7Ok3f;rBMPee#A`MHjRN(y2yun^sj^s-g?Adl-WJq@dLwEU}0Ma4TDu3 zH$E`79h5~(9k`q7Nt<^Wvq$H6H~cP`-{Akq#ujb|+qu{}dp~+4#XAznqU=cWR`hbc zcJO#7|Aa{;{>*fQc$>&}gD*lRJdC3-Z4c~KR;J~Xg?4D4Cq;>$vVMInVBNG}=|zJ` z8sHNv?|!J1w{A2`I;B@l_trbhVh>Y-p24)(4+Fae5=<;vR-@K(XQ=xD1zP-0E(&ag>ah0)LU)-O(;@?(N(v<)7VVm{MMw-l-TS{P-nXJKz2YpBmxAA390h(x%^~ z*BiOC(WXm%n&(vvxs0C4(#FQkh-ooTxkqAex;gean?J29a^5D6S*dYRwXgj+AKi`z z8OZQNoTx)W>dcEhQ+_n01jr`M)8|HKd-$!mzi?l>{_}N=DyXH4H{PueavN>f+5|QX z(5T{e7G)?)pEhN`-tJWX6qV^+O|kanhUZUWqUWriQl~C(gw=SEVB3)|?+C^Y*{X_! zhdMzom4u3o+a1|S#`rntlpf^{@qauo|1^KYRQi2F@Ny2?s&Ff1{9B$~yzPZ~Wi?~q zH{or%q;4sdU-L@JaWd7jH{ZTdNS9zKtUre(cAL!nKJ4M0tQsJ*V{D8LfqS1$7>K1j zoiI!eWQD8WKgcnSyVc1^Khev(-dP)^5aXFnT9)T8itKAY_A7OMWqRpgT2CReFf%=S z?wWin@KFD7&D|PwXA=5`orT*0>yHO@$6jC%eXQz=z6}|q?nPSU#Sd!`m|*HwxvbX@K;IzJmj?~lj)Yby2cCRZ3S4R zS5V>c;*tja!*3*c(-JPQkTUdhnVyJKX><7%6=)c3g*WWUk7TuK(?~x%_g-~GMc0{j z!3=N5?`;F6nfOQKLW73l&Tfvy{=6viLpu|9y6WlZbiq4tQeGc~t$^^5;hIj>mHg`x z*|`(R%e&Hni1)S4Iu--Vdsip4@t_a&@|7c%_4-5iDk8P&NGXaa7TC`#s^=~%YQE4f z#t049mfYyS=1;j2Ah)A2yxKUjx0L8{&De=!)+q~`r2opy@rB$|8!nDv&5LiI%IQO< z>32}X-^;DOKX%TU*&49B8Ke4*tj_h8=Hi8Fx&IbAlp1eO_y&}m zR5di2(G3-glU1^8vY3&_b^ea@gVcM;l&?G`{E%q(YF*F=+bl_lG_gN z&G+Px^9m6X#t<7ep^_>JRIJm_qe3n;wES)Jf32PFf208g9hMQkivbmzaG&Er(D5)x z+0KDfw;Z>3ylH!#L;dqhYr|;w%a;+(!cIqgFJ$ABrgM^s)|7K~n^5z$`A>(n{2Ei% zc^j@-=^L}j$0ZUx($|-`{-CCl*?^e3dgfy1Jmm7LOvWu41<~BON_cr6OK%^$NYamn zu#sCY4`;t`23fD()poT@$!pVq84oQyZD@!wRV9))Gx_ziZ!Jp6`qLdR9tq;lX@=s8 zy!;{VjLxxDbL`4e<|UgkBe!^*-iycIz0>wyl0m(L-s4)U%z9=<2V-LoG$+|F>0+Kq z{oPvT0=213)mDd0lO$8l??$K+SzcFU=xJvxrMWGwIat#ZWtG;82az$ENU>DMahVWcv2*#!qNeS9@8FRwyziVN{FN?k~KVvC3>feYi-9cC!m0GW2pK zGqP%Q*G9HpdC2DwymF^h)76uFqvX}r^w@d=1;(JlM`z*jsYCE|p17m4VoTd^b zjZ%bk)6z`WSOrQcJ8x&mLF{L{V}4spyo%$BqAs2DH9BW4=fEoB>M9?bT#KzAeLs6p z**?qDc|Nf&3h@txYK~>k3q`cAmSluiQ9#V9#`#}H%xG8LAMB=RurJgG-B)V7Lk~VjD>OHf~?jkGS5&yV(#;B_iNfw@6 z6VFm~r1CCN(Mv_%GhybiX|;T0Xyfx5<+cicy3u1*kx`hC6AxqL+XF$m#0Z)*sC-(7hi2 zK-sr1EB3*mR0uk8nRb+afBcX>WuBxuW}fLjdo`6L=U{U_``z$vVjqbCwfKeQjPQ~J z0Rcsfu1p`(r<8uu7tz^FRze+J1`jhAsR;>lUEQ@w6oK#|v~awqA*Mc-GS?Q_uvJ_WBYmI_fpQ+lMT(22iS@jl6`9!*kiv?qhda9wd=#j%lO?>8y|94PtJ8S zS149#uE%<|rdeD0x&QHMo#9p~3aieP^~T(LU;Vs)PM0OuzoyEGKX<5xJXF*^bkuv- zkmgxD!(xA=Sw70Qw|=;HuwqoIXa9A(wDhV<*ZC(_q2c@?<%>#;%V6~(^9=r1Ix1DO`qorTCh{_gA=2bXfWZ(J&OR( zShZtUjNpV2Rn}axUJy&fMJ}nn+QGLzJID`#Z=#=^3(!5&{hP7ryrx&bQeTifybC$& zGsA;IVR+CeP@g`*a0^h2pvNpb2jl8*O{8Fvc#!ZiqzYBGhasXnXd^0puzlmUxE{2qE$Gq8c7I|tvzgIWn-{~)c5c>u<0!OoTOpuLlm zIj*BZTpN({Hx^a|k9aTj=>EY;3;kT{-#8HioObXaZZN>8mMzvEHt7SyTw-40UKWr1 za~2f+9QxO+xWCKyXBHse-)80HVMCMgpaDb&bRBw{&I=fc7^mEY2O*mgC$g|LcEAur zcn~=m9;7#c(}i3H1h^=I|HY@5<{#2Iqo2br(h-M$*lasFw2(S-j5$ABDp@RlUp}AdMVsVn!c&SwisS*P{0PO9Ym5tS* zXHK_}dnK{q{=y|s-U(EZ`DCV*p?o;6Cme*U3}mt<9-WV?D^P@bM@dzcc=#RU=?%B6 zaOnp2e}~IG&x+t(qI|t8NAJ�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%0Da(}l|qQx*mdBY`uC37Fj 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

_NSGJ$Irbp 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 U*< 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 z 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 literal 0 HcmV?d00001 diff --git a/images/presets_card_panel.jpg b/images/presets_card_panel.jpg new file mode 100644 index 0000000000000000000000000000000000000000..040ba1a78a0f49283ae392c2ed4bcb2285cb812c GIT binary patch literal 142583 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

?PW&90O>$D6nfjTy$c4h6kM!%KW@J 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 literal 0 HcmV?d00001 diff --git a/images/presets_editor_ui.jpg b/images/presets_editor_ui.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5523dc9a13882b847fcbc36815366e43d32506ad GIT binary patch literal 117698 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 C2B*gW literal 0 HcmV?d00001 diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..6186b0c --- /dev/null +++ b/package-lock.json @@ -0,0 +1,16407 @@ +{ + "name": "soundtouchplus-card", + "version": "", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "soundtouchplus-card", + "license": "MIT", + "dependencies": { + "@mdi/js": "^7.4.47", + "custom-card-helpers": "^1.9.0", + "lit": "^3.1.2" + }, + "devDependencies": { + "@babel/core": "^7.24.4", + "@rollup/plugin-babel": "^6.0.4", + "@rollup/plugin-commonjs": "^25.0.7", + "@rollup/plugin-json": "^6.1.0", + "@rollup/plugin-node-resolve": "^15.2.3", + "@types/jest": "27.4.1", + "@typescript-eslint/eslint-plugin": "^7.6.0", + "@typescript-eslint/parser": "^7.7.0", + "eslint": "^8.57.0", + "eslint-config-airbnb-base": "^15.0.0", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-import": "^2.29.1", + "eslint-plugin-prettier": "^5.1.3", + "jest": "27.5.1", + "prettier": "^3.2.5", + "rollup": "^2.79.1", + "rollup-plugin-serve": "^2.0.3", + "rollup-plugin-terser": "^7.0.2", + "rollup-plugin-typescript2": "^0.36.0", + "typescript": "^4.9.5" + } + }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.24.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", + "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.24.2", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", + "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.4.tgz", + "integrity": "sha512-MBVlMXP+kkl5394RBLSxxk/iLTeVGuXTV3cIDXavPpMMqnSnt6apKgan/U8O3USWZCWZT/TbgfEpKa4uMgN4Dg==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.2", + "@babel/generator": "^7.24.4", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.24.4", + "@babel/parser": "^7.24.4", + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.1", + "@babel/types": "^7.24.0", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.4.tgz", + "integrity": "sha512-Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.0", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-validator-option": "^7.23.5", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dev": true, + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.4.tgz", + "integrity": "sha512-FewdlZbSiwaVGlgT1DPANDuCHaDMiOo+D/IDYRFYjHOuv66xMSJ7fQwwODwRNAPkADIO/z1EoF/l2BCWlWABDw==", + "dev": true, + "dependencies": { + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.1", + "@babel/types": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.24.2", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz", + "integrity": "sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.4.tgz", + "integrity": "sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz", + "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", + "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.1.tgz", + "integrity": "sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.24.1", + "@babel/generator": "^7.24.1", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.24.1", + "@babel/types": "^7.24.0", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", + "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.23.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", + "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@formatjs/ecma402-abstract": { + "version": "1.11.4", + "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.11.4.tgz", + "integrity": "sha512-EBikYFp2JCdIfGEb5G9dyCkTGDmC57KSHhRQOC3aYxoPWVZvfWCDjZwkGYHN7Lis/fmuWl906bnNTJifDQ3sXw==", + "dependencies": { + "@formatjs/intl-localematcher": "0.2.25", + "tslib": "^2.1.0" + } + }, + "node_modules/@formatjs/fast-memoize": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-1.2.1.tgz", + "integrity": "sha512-Rg0e76nomkz3vF9IPlKeV+Qynok0r7YZjL6syLz4/urSg0IbjPZCB/iYUMNsYA643gh4mgrX3T7KEIFIxJBQeg==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@formatjs/icu-messageformat-parser": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.1.0.tgz", + "integrity": "sha512-Qxv/lmCN6hKpBSss2uQ8IROVnta2r9jd3ymUEIjm2UyIkUCHVcbUVRGL/KS/wv7876edvsPe+hjHVJ4z8YuVaw==", + "dependencies": { + "@formatjs/ecma402-abstract": "1.11.4", + "@formatjs/icu-skeleton-parser": "1.3.6", + "tslib": "^2.1.0" + } + }, + "node_modules/@formatjs/icu-skeleton-parser": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.3.6.tgz", + "integrity": "sha512-I96mOxvml/YLrwU2Txnd4klA7V8fRhb6JG/4hm3VMNmeJo1F03IpV2L3wWt7EweqNLES59SZ4d6hVOPCSf80Bg==", + "dependencies": { + "@formatjs/ecma402-abstract": "1.11.4", + "tslib": "^2.1.0" + } + }, + "node_modules/@formatjs/intl-localematcher": { + "version": "0.2.25", + "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.2.25.tgz", + "integrity": "sha512-YmLcX70BxoSopLFdLr1Ds99NdlTI2oWoLbaUW2M406lxOIPzE1KQhRz2fPUkq34xVZQaihCoU29h0KK7An3bhA==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@formatjs/intl-utils": { + "version": "3.8.4", + "resolved": "https://registry.npmjs.org/@formatjs/intl-utils/-/intl-utils-3.8.4.tgz", + "integrity": "sha512-j5C6NyfKevIxsfLK8KwO1C0vvP7k1+h4A9cFpc+cr6mEwCc1sPkr17dzh0Ke6k9U5pQccAQoXdcNBl3IYa4+ZQ==", + "deprecated": "the package is rather renamed to @formatjs/ecma-abstract with some changes in functionality (primarily selectUnit is removed and we don't plan to make any further changes to this package", + "dependencies": { + "emojis-list": "^3.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", + "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", + "dev": true + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz", + "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/console/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/console/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/console/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/console/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@jest/console/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/core": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz", + "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==", + "dev": true, + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/reporters": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^27.5.1", + "jest-config": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-resolve-dependencies": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "jest-watcher": "^27.5.1", + "micromatch": "^4.0.4", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/core/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/core/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/core/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/core/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@jest/core/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/core/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/environment": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz", + "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==", + "dev": true, + "dependencies": { + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz", + "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "@sinonjs/fake-timers": "^8.0.1", + "@types/node": "*", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz", + "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==", + "dev": true, + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/types": "^27.5.1", + "expect": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz", + "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==", + "dev": true, + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.2", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-haste-map": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "slash": "^3.0.0", + "source-map": "^0.6.0", + "string-length": "^4.0.1", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^8.1.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/reporters/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/reporters/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/reporters/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/reporters/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@jest/reporters/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/reporters/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/source-map": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz", + "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9", + "source-map": "^0.6.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/test-result": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz", + "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==", + "dev": true, + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz", + "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==", + "dev": true, + "dependencies": { + "@jest/test-result": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-runtime": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz", + "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.1.0", + "@jest/types": "^27.5.1", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-util": "^27.5.1", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/transform/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/transform/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/transform/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/transform/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@jest/transform/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "node_modules/@jest/transform/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/transform/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/types/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/types/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/types/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/types/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@jest/types/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/types/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", + "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@lit-labs/ssr-dom-shim": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.2.0.tgz", + "integrity": "sha512-yWJKmpGE6lUURKAaIltoPIE/wrbY3TEkqQt+X0m+7fQNnAv0keydnYvbiJFP1PnMhizmIWRWOG5KLhYyc/xl+g==" + }, + "node_modules/@lit/reactive-element": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-2.0.4.tgz", + "integrity": "sha512-GFn91inaUa2oHLak8awSIigYz0cU0Payr1rcFsrkf5OJ5eSPxElyZfKh0f2p9FsTiZWXQdWGJeXZICEfXXYSXQ==", + "dependencies": { + "@lit-labs/ssr-dom-shim": "^1.2.0" + } + }, + "node_modules/@mdi/js": { + "version": "7.4.47", + "resolved": "https://registry.npmjs.org/@mdi/js/-/js-7.4.47.tgz", + "integrity": "sha512-KPnNOtm5i2pMabqZxpUz7iQf+mfrYZyKCZ8QNz85czgEt7cuHcGorWfdzUMWYA0SD+a6Hn4FmJ+YhzzzjkTZrQ==" + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@pkgr/utils": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@pkgr/utils/-/utils-2.4.2.tgz", + "integrity": "sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "fast-glob": "^3.3.0", + "is-glob": "^4.0.3", + "open": "^9.1.0", + "picocolors": "^1.0.0", + "tslib": "^2.6.0" + }, + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, + "node_modules/@rollup/plugin-babel": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-6.0.4.tgz", + "integrity": "sha512-YF7Y52kFdFT/xVSuVdjkV5ZdX/3YtmX0QulG+x0taQOtJdHYzVU61aSSkAgVJ7NOv6qPkIYiJSgSWWN/DM5sGw==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.18.6", + "@rollup/pluginutils": "^5.0.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "@types/babel__core": "^7.1.9", + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "@types/babel__core": { + "optional": true + }, + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-commonjs": { + "version": "25.0.7", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-25.0.7.tgz", + "integrity": "sha512-nEvcR+LRjEjsaSsc4x3XZfCCvZIaSMenZu/OiwOKGN2UhQpAYI7ru7czFvyWbErlpoGjnSX3D5Ch5FcMA3kRWQ==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "commondir": "^1.0.1", + "estree-walker": "^2.0.2", + "glob": "^8.0.3", + "is-reference": "1.2.1", + "magic-string": "^0.30.3" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.68.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-commonjs/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@rollup/plugin-commonjs/node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@rollup/plugin-commonjs/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@rollup/plugin-json": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-6.1.0.tgz", + "integrity": "sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^5.1.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-node-resolve": { + "version": "15.2.3", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.2.3.tgz", + "integrity": "sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "@types/resolve": "1.20.2", + "deepmerge": "^4.2.2", + "is-builtin-module": "^3.2.1", + "is-module": "^1.0.0", + "resolve": "^1.22.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.78.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", + "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@sinonjs/commons": { + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", + "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", + "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^1.7.0" + } + }, + "node_modules/@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@types/babel__core": { + "version": "7.20.4", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.4.tgz", + "integrity": "sha512-mLnSC22IC4vcWiuObSRjrLd9XcBTGf59vUSoq2jkQDJ/QQ8PMI9rSuzE+aEV8karUMbskw07bKYoUJCKTUaygg==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.7", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.7.tgz", + "integrity": "sha512-6Sfsq+EaaLrw4RmdFWE9Onp63TOUue71AWb4Gpa6JxzgTYtimbM086WnYTy2U67AofR++QKCo08ZP6pwx8YFHQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.4", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.4.tgz", + "integrity": "sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "dev": true + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/jest": { + "version": "27.4.1", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.4.1.tgz", + "integrity": "sha512-23iPJADSmicDVrWk+HT58LMJtzLAnB2AgIzplQuq/bSrGaxCrlvRFjGbXmamnnk/mAmCdLStiGqggu28ocUyiw==", + "dev": true, + "dependencies": { + "jest-matcher-utils": "^27.0.0", + "pretty-format": "^27.0.0" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, + "node_modules/@types/node": { + "version": "20.9.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.9.0.tgz", + "integrity": "sha512-nekiGu2NDb1BcVofVcEKMIwzlx4NjHlcjhoxxKBNLtz15Y1z7MYf549DFvkHSId02Ax6kGwWntIBPC3l/JZcmw==", + "dev": true, + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/prettier": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz", + "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==", + "dev": true + }, + "node_modules/@types/resolve": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", + "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", + "dev": true + }, + "node_modules/@types/semver": { + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", + "dev": true + }, + "node_modules/@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "dev": true + }, + "node_modules/@types/trusted-types": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.6.tgz", + "integrity": "sha512-HYtNooPvUY9WAVRBr4u+4Qa9fYD1ze2IUlAD3HoA6oehn1taGwBx3Oa52U4mTslTS+GAExKpaFu39Y5xUEwfjg==" + }, + "node_modules/@types/yargs": { + "version": "16.0.8", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.8.tgz", + "integrity": "sha512-1GwLEkmFafeb/HbE6pC7tFlgYSQ4Iqh2qlWCq8xN+Qfaiaxr2PcLfuhfRFRYqI6XJyeFoLYyKnhFbNsst9FMtQ==", + "dev": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "dev": true + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.6.0.tgz", + "integrity": "sha512-gKmTNwZnblUdnTIJu3e9kmeRRzV2j1a/LUO27KNNAnIC5zjy1aSvXSRp4rVNlmAoHlQ7HzX42NbKpcSr4jF80A==", + "dev": true, + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "7.6.0", + "@typescript-eslint/type-utils": "7.6.0", + "@typescript-eslint/utils": "7.6.0", + "@typescript-eslint/visitor-keys": "7.6.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^7.0.0", + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.6.0.tgz", + "integrity": "sha512-ngttyfExA5PsHSx0rdFgnADMYQi+Zkeiv4/ZxGYUWd0nLs63Ha0ksmp8VMxAIC0wtCFxMos7Lt3PszJssG/E6w==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.6.0", + "@typescript-eslint/visitor-keys": "7.6.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.6.0.tgz", + "integrity": "sha512-h02rYQn8J+MureCvHVVzhl69/GAfQGPQZmOMjG1KfCl7o3HtMSlPaPUAPu6lLctXI5ySRGIYk94clD/AUMCUgQ==", + "dev": true, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.6.0.tgz", + "integrity": "sha512-4eLB7t+LlNUmXzfOu1VAIAdkjbu5xNSerURS9X/S5TUKWFRpXRQZbmtPqgKmYx8bj3J0irtQXSiWAOY82v+cgw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.6.0", + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/@typescript-eslint/parser": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.7.0.tgz", + "integrity": "sha512-fNcDm3wSwVM8QYL4HKVBggdIPAy9Q41vcvC/GtDobw3c4ndVT3K6cqudUmjHPw8EAp4ufax0o58/xvWaP2FmTg==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "7.7.0", + "@typescript-eslint/types": "7.7.0", + "@typescript-eslint/typescript-estree": "7.7.0", + "@typescript-eslint/visitor-keys": "7.7.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.7.0.tgz", + "integrity": "sha512-/8INDn0YLInbe9Wt7dK4cXLDYp0fNHP5xKLHvZl3mOT5X17rK/YShXaiNmorl+/U4VKCVIjJnx4Ri5b0y+HClw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.7.0", + "@typescript-eslint/visitor-keys": "7.7.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.6.0.tgz", + "integrity": "sha512-NxAfqAPNLG6LTmy7uZgpK8KcuiS2NZD/HlThPXQRGwz6u7MDBWRVliEEl1Gj6U7++kVJTpehkhZzCJLMK66Scw==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "7.6.0", + "@typescript-eslint/utils": "7.6.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.6.0.tgz", + "integrity": "sha512-h02rYQn8J+MureCvHVVzhl69/GAfQGPQZmOMjG1KfCl7o3HtMSlPaPUAPu6lLctXI5ySRGIYk94clD/AUMCUgQ==", + "dev": true, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.6.0.tgz", + "integrity": "sha512-+7Y/GP9VuYibecrCQWSKgl3GvUM5cILRttpWtnAu8GNL9j11e4tbuGZmZjJ8ejnKYyBRb2ddGQ3rEFCq3QjMJw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.6.0", + "@typescript-eslint/visitor-keys": "7.6.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.6.0.tgz", + "integrity": "sha512-4eLB7t+LlNUmXzfOu1VAIAdkjbu5xNSerURS9X/S5TUKWFRpXRQZbmtPqgKmYx8bj3J0irtQXSiWAOY82v+cgw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.6.0", + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/@typescript-eslint/types": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.7.0.tgz", + "integrity": "sha512-G01YPZ1Bd2hn+KPpIbrAhEWOn5lQBrjxkzHkWvP6NucMXFtfXoevK82hzQdpfuQYuhkvFDeQYbzXCjR1z9Z03w==", + "dev": true, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.7.0.tgz", + "integrity": "sha512-8p71HQPE6CbxIBy2kWHqM1KGrC07pk6RJn40n0DSc6bMOBBREZxSDJ+BmRzc8B5OdaMh1ty3mkuWRg4sCFiDQQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.7.0", + "@typescript-eslint/visitor-keys": "7.7.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/@typescript-eslint/utils": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.6.0.tgz", + "integrity": "sha512-x54gaSsRRI+Nwz59TXpCsr6harB98qjXYzsRxGqvA5Ue3kQH+FxS7FYU81g/omn22ML2pZJkisy6Q+ElK8pBCA==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@types/json-schema": "^7.0.15", + "@types/semver": "^7.5.8", + "@typescript-eslint/scope-manager": "7.6.0", + "@typescript-eslint/types": "7.6.0", + "@typescript-eslint/typescript-estree": "7.6.0", + "semver": "^7.6.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/scope-manager": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.6.0.tgz", + "integrity": "sha512-ngttyfExA5PsHSx0rdFgnADMYQi+Zkeiv4/ZxGYUWd0nLs63Ha0ksmp8VMxAIC0wtCFxMos7Lt3PszJssG/E6w==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.6.0", + "@typescript-eslint/visitor-keys": "7.6.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/types": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.6.0.tgz", + "integrity": "sha512-h02rYQn8J+MureCvHVVzhl69/GAfQGPQZmOMjG1KfCl7o3HtMSlPaPUAPu6lLctXI5ySRGIYk94clD/AUMCUgQ==", + "dev": true, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.6.0.tgz", + "integrity": "sha512-+7Y/GP9VuYibecrCQWSKgl3GvUM5cILRttpWtnAu8GNL9j11e4tbuGZmZjJ8ejnKYyBRb2ddGQ3rEFCq3QjMJw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.6.0", + "@typescript-eslint/visitor-keys": "7.6.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/visitor-keys": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.6.0.tgz", + "integrity": "sha512-4eLB7t+LlNUmXzfOu1VAIAdkjbu5xNSerURS9X/S5TUKWFRpXRQZbmtPqgKmYx8bj3J0irtQXSiWAOY82v+cgw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.6.0", + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.7.0.tgz", + "integrity": "sha512-h0WHOj8MhdhY8YWkzIF30R379y0NqyOHExI9N9KCzvmu05EgG4FumeYa3ccfKUSphyWkWQE1ybVrgz/Pbam6YA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.7.0", + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, + "node_modules/abab": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "dev": true + }, + "node_modules/acorn": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", + "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-globals": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", + "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "dev": true, + "dependencies": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" + } + }, + "node_modules/acorn-globals/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", + "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", + "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", + "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-array-buffer": "^3.0.2", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/babel-jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz", + "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==", + "dev": true, + "dependencies": { + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-jest/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/babel-jest/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/babel-jest/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/babel-jest/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/babel-jest/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-jest/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz", + "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==", + "dev": true, + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.0.0", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz", + "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==", + "dev": true, + "dependencies": { + "babel-plugin-jest-hoist": "^27.5.1", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/big-integer": { + "version": "1.6.52", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz", + "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/bplist-parser": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz", + "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==", + "dev": true, + "dependencies": { + "big-integer": "^1.6.44" + }, + "engines": { + "node": ">= 5.10.0" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", + "dev": true + }, + "node_modules/browserslist": { + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", + "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001565", + "electron-to-chromium": "^1.4.601", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bundle-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-3.0.0.tgz", + "integrity": "sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==", + "dev": true, + "dependencies": { + "run-applescript": "^5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/call-bind": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", + "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.1", + "set-function-length": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001568", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001568.tgz", + "integrity": "sha512-vSUkH84HontZJ88MiNrOau1EBrCqEQYgkC5gIySiDlpsm8sGVrhU7Kx4V6h0tnqaHzIHZv08HlJIwPbL4XL9+A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", + "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==", + "dev": true + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", + "dev": true + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/confusing-browser-globals": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", + "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", + "dev": true + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cssom": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", + "dev": true + }, + "node_modules/cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dev": true, + "dependencies": { + "cssom": "~0.3.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cssstyle/node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true + }, + "node_modules/custom-card-helpers": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/custom-card-helpers/-/custom-card-helpers-1.9.0.tgz", + "integrity": "sha512-5IW4OXq3MiiCqDvqeu+MYsM1NmntKW1WfJhyJFsdP2tbzqEI4BOnqRz2qzdp08lE4QLVhYfRLwe0WAqgQVNeFg==", + "dependencies": { + "@formatjs/intl-utils": "^3.8.4", + "home-assistant-js-websocket": "^6.0.1", + "intl-messageformat": "^9.11.1", + "lit": "^2.1.1", + "rollup": "^2.63.0", + "superstruct": "^0.15.3", + "typescript": "^4.5.4" + } + }, + "node_modules/custom-card-helpers/node_modules/@lit/reactive-element": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-1.6.3.tgz", + "integrity": "sha512-QuTgnG52Poic7uM1AN5yJ09QMe0O28e10XzSvWDz02TJiiKee4stsiownEIadWm8nYzyDAyT+gKzUoZmiWQtsQ==", + "dependencies": { + "@lit-labs/ssr-dom-shim": "^1.0.0" + } + }, + "node_modules/custom-card-helpers/node_modules/lit": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/lit/-/lit-2.8.0.tgz", + "integrity": "sha512-4Sc3OFX9QHOJaHbmTMk28SYgVxLN3ePDjg7hofEft2zWlehFL3LiAuapWc4U/kYwMYJSh2hTCPZ6/LIC7ii0MA==", + "dependencies": { + "@lit/reactive-element": "^1.6.0", + "lit-element": "^3.3.0", + "lit-html": "^2.8.0" + } + }, + "node_modules/custom-card-helpers/node_modules/lit-element": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-3.3.3.tgz", + "integrity": "sha512-XbeRxmTHubXENkV4h8RIPyr8lXc+Ff28rkcQzw3G6up2xg5E8Zu1IgOWIwBLEQsu3cOVFqdYwiVi0hv0SlpqUA==", + "dependencies": { + "@lit-labs/ssr-dom-shim": "^1.1.0", + "@lit/reactive-element": "^1.3.0", + "lit-html": "^2.8.0" + } + }, + "node_modules/custom-card-helpers/node_modules/lit-html": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-2.8.0.tgz", + "integrity": "sha512-o9t+MQM3P4y7M7yNzqAyjp7z+mQGa4NS4CxiyLqFPyFWyc4O+nodLrkrxSaCTrla6M5YOLaT3RpbbqjszB5g3Q==", + "dependencies": { + "@types/trusted-types": "^2.0.2" + } + }, + "node_modules/data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "dev": true, + "dependencies": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decimal.js": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", + "dev": true + }, + "node_modules/dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", + "dev": true + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-browser": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-4.0.0.tgz", + "integrity": "sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==", + "dev": true, + "dependencies": { + "bundle-name": "^3.0.0", + "default-browser-id": "^3.0.0", + "execa": "^7.1.1", + "titleize": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser-id": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-3.0.0.tgz", + "integrity": "sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==", + "dev": true, + "dependencies": { + "bplist-parser": "^0.2.0", + "untildify": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser/node_modules/execa": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz", + "integrity": "sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.1", + "human-signals": "^4.3.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^3.0.7", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": "^14.18.0 || ^16.14.0 || >=18.0.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/default-browser/node_modules/human-signals": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", + "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", + "dev": true, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/default-browser/node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser/node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser/node_modules/npm-run-path": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.2.0.tgz", + "integrity": "sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==", + "dev": true, + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser/node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser/node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-data-property": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", + "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/define-lazy-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/diff-sequences": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", + "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", + "dev": true, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/domexception": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", + "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "dev": true, + "dependencies": { + "webidl-conversions": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/domexception/node_modules/webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.610", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.610.tgz", + "integrity": "sha512-mqi2oL1mfeHYtOdCxbPQYV/PL7YrQlxbvFEZ0Ee8GbDdShimqt2/S6z2RWqysuvlwdOrQdqvE0KZrBTipAeJzg==", + "dev": true + }, + "node_modules/emittery": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", + "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.22.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz", + "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "arraybuffer.prototype.slice": "^1.0.2", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.5", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.2", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.12", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.1", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.1", + "safe-array-concat": "^1.0.1", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.8", + "string.prototype.trimend": "^1.0.7", + "string.prototype.trimstart": "^1.0.7", + "typed-array-buffer": "^1.0.0", + "typed-array-byte-length": "^1.0.0", + "typed-array-byte-offset": "^1.0.0", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", + "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.2", + "has-tostringtag": "^1.0.0", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "dev": true, + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/escodegen/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-airbnb-base": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", + "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==", + "dev": true, + "dependencies": { + "confusing-browser-globals": "^1.0.10", + "object.assign": "^4.1.2", + "object.entries": "^1.1.5", + "semver": "^6.3.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "peerDependencies": { + "eslint": "^7.32.0 || ^8.2.0", + "eslint-plugin-import": "^2.25.2" + } + }, + "node_modules/eslint-config-prettier": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", + "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", + "dev": true, + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "dev": true, + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", + "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", + "dev": true, + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", + "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.7", + "array.prototype.findlastindex": "^1.2.3", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.8.0", + "hasown": "^2.0.0", + "is-core-module": "^2.13.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.7", + "object.groupby": "^1.0.1", + "object.values": "^1.1.7", + "semver": "^6.3.1", + "tsconfig-paths": "^3.15.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.3.tgz", + "integrity": "sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==", + "dev": true, + "dependencies": { + "prettier-linter-helpers": "^1.0.0", + "synckit": "^0.8.6" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint-plugin-prettier" + }, + "peerDependencies": { + "@types/eslint": ">=8.0.0", + "eslint": ">=8.0.0", + "eslint-config-prettier": "*", + "prettier": ">=3.0.0" + }, + "peerDependenciesMeta": { + "@types/eslint": { + "optional": true + }, + "eslint-config-prettier": { + "optional": true + } + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.23.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", + "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz", + "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-diff": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/find-cache-dir/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.9", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", + "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", + "dev": true + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", + "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", + "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/home-assistant-js-websocket": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/home-assistant-js-websocket/-/home-assistant-js-websocket-6.1.1.tgz", + "integrity": "sha512-TnZFzF4mn5F/v0XKUTK2GMQXrn/+eQpgaSDSELl6U0HSwSbFwRhGWLz330YT+hiKMspDflamsye//RPL+zwhDw==" + }, + "node_modules/html-encoding-sniffer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", + "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "dev": true, + "dependencies": { + "whatwg-encoding": "^1.0.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dev": true, + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/internal-slot": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz", + "integrity": "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.2", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/intl-messageformat": { + "version": "9.13.0", + "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-9.13.0.tgz", + "integrity": "sha512-7sGC7QnSQGa5LZP7bXLDhVDtQOeKGeBFGHF2Y8LVBwYZoQZCgWeKoPGTa5GMG8g/TzDgeXuYJQis7Ggiw2xTOw==", + "dependencies": { + "@formatjs/ecma402-abstract": "1.11.4", + "@formatjs/fast-memoize": "1.2.1", + "@formatjs/icu-messageformat-parser": "2.1.0", + "tslib": "^2.1.0" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-builtin-module": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", + "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", + "dev": true, + "dependencies": { + "builtin-modules": "^3.3.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "dev": true, + "dependencies": { + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", + "dev": true + }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "dev": true + }, + "node_modules/is-reference": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", + "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", + "dev": true, + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", + "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "dev": true, + "dependencies": { + "which-typed-array": "^1.1.11" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "dev": true + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-wsl/node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", + "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz", + "integrity": "sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==", + "dev": true, + "dependencies": { + "@jest/core": "^27.5.1", + "import-local": "^3.0.2", + "jest-cli": "^27.5.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.5.1.tgz", + "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "execa": "^5.0.0", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-circus": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.5.1.tgz", + "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==", + "dev": true, + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "expect": "^27.5.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-circus/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-circus/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-circus/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-circus/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-circus/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-circus/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-cli": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz", + "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==", + "dev": true, + "dependencies": { + "@jest/core": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "prompts": "^2.0.1", + "yargs": "^16.2.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-cli/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-cli/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-cli/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-cli/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-cli/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-cli/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-config": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz", + "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.8.0", + "@jest/test-sequencer": "^27.5.1", + "@jest/types": "^27.5.1", + "babel-jest": "^27.5.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.1", + "graceful-fs": "^4.2.9", + "jest-circus": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-jasmine2": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-config/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-config/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-config/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-config/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-config/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-config/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-diff": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", + "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-diff/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-diff/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-diff/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-diff/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-diff/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-diff/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-docblock": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz", + "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==", + "dev": true, + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-each": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz", + "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-each/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-each/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-each/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-each/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-each/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-each/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-environment-jsdom": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz", + "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==", + "dev": true, + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1", + "jsdom": "^16.6.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-environment-node": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz", + "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==", + "dev": true, + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", + "dev": true, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz", + "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^27.5.1", + "jest-serializer": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "micromatch": "^4.0.4", + "walker": "^1.0.7" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-jasmine2": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz", + "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==", + "dev": true, + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "expect": "^27.5.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-jasmine2/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-jasmine2/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-jasmine2/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-jasmine2/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-jasmine2/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-jasmine2/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-leak-detector": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz", + "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==", + "dev": true, + "dependencies": { + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", + "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-matcher-utils/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-matcher-utils/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-matcher-utils/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-matcher-utils/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-matcher-utils/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-matcher-utils/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-message-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", + "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.5.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-message-util/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-message-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-message-util/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-message-util/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-message-util/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-message-util/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-mock": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz", + "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz", + "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==", + "dev": true, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz", + "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "resolve": "^1.20.0", + "resolve.exports": "^1.1.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz", + "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-snapshot": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-resolve/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-resolve/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-resolve/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-resolve/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-resolve/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runner": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz", + "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==", + "dev": true, + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-leak-detector": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "source-map-support": "^0.5.6", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runner/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-runner/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-runner/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-runner/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-runner/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runner/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runtime": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz", + "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==", + "dev": true, + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/globals": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "execa": "^5.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runtime/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-runtime/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-runtime/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-runtime/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-runtime/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runtime/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-serializer": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", + "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", + "dev": true, + "dependencies": { + "@types/node": "*", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-snapshot": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz", + "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.7.2", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.0.0", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/babel__traverse": "^7.0.4", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "natural-compare": "^1.4.0", + "pretty-format": "^27.5.1", + "semver": "^7.3.2" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-snapshot/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-snapshot/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-snapshot/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-snapshot/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-snapshot/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-snapshot/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-snapshot/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/jest-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-util/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-util/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-util/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-util/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-util/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-validate": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz", + "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==", + "dev": true, + "dependencies": { + "@jest/types": "^27.5.1", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "leven": "^3.1.0", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-validate/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-validate/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-validate/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-validate/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-validate/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-validate/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watcher": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz", + "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==", + "dev": true, + "dependencies": { + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "jest-util": "^27.5.1", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-watcher/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-watcher/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-watcher/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-watcher/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-watcher/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watcher/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsdom": { + "version": "16.7.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", + "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", + "dev": true, + "dependencies": { + "abab": "^2.0.5", + "acorn": "^8.2.4", + "acorn-globals": "^6.0.0", + "cssom": "^0.4.4", + "cssstyle": "^2.3.0", + "data-urls": "^2.0.0", + "decimal.js": "^10.2.1", + "domexception": "^2.0.1", + "escodegen": "^2.0.0", + "form-data": "^3.0.0", + "html-encoding-sniffer": "^2.0.1", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.0", + "parse5": "6.0.1", + "saxes": "^5.0.1", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.0.0", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^2.0.0", + "webidl-conversions": "^6.1.0", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.5.0", + "ws": "^7.4.6", + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/lit": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lit/-/lit-3.1.2.tgz", + "integrity": "sha512-VZx5iAyMtX7CV4K8iTLdCkMaYZ7ipjJZ0JcSdJ0zIdGxxyurjIn7yuuSxNBD7QmjvcNJwr0JS4cAdAtsy7gZ6w==", + "dependencies": { + "@lit/reactive-element": "^2.0.4", + "lit-element": "^4.0.4", + "lit-html": "^3.1.2" + } + }, + "node_modules/lit-element": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.0.4.tgz", + "integrity": "sha512-98CvgulX6eCPs6TyAIQoJZBCQPo80rgXR+dVBs61cstJXqtI+USQZAbA4gFHh6L/mxBx9MrgPLHLsUgDUHAcCQ==", + "dependencies": { + "@lit-labs/ssr-dom-shim": "^1.2.0", + "@lit/reactive-element": "^2.0.4", + "lit-html": "^3.1.2" + } + }, + "node_modules/lit-html": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.1.2.tgz", + "integrity": "sha512-3OBZSUrPnAHoKJ9AMjRL/m01YJxQMf+TMHanNtTHG68ubjnZxK0RFl102DPzsw4mWnHibfZIBJm3LWCZ/LmMvg==", + "dependencies": { + "@types/trusted-types": "^2.0.2" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/magic-string": { + "version": "0.30.5", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz", + "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-dir/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", + "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, + "node_modules/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nwsapi": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.7.tgz", + "integrity": "sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==", + "dev": true + }, + "node_modules/object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.7.tgz", + "integrity": "sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", + "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz", + "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1" + } + }, + "node_modules/object.values": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", + "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/open/-/open-9.1.0.tgz", + "integrity": "sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==", + "dev": true, + "dependencies": { + "default-browser": "^4.0.0", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/opener": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", + "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", + "dev": true, + "bin": { + "opener": "bin/opener-bin.js" + } + }, + "node_modules/optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dev": true, + "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz", + "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==", + "dev": true, + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/psl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", + "dev": true + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", + "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "set-function-name": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-cwd/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve.exports": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.1.tgz", + "integrity": "sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "2.79.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", + "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/rollup-plugin-serve": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/rollup-plugin-serve/-/rollup-plugin-serve-2.0.3.tgz", + "integrity": "sha512-gQKmfQng17+jOsX5tmDanvJkm0f9XLqWVvXsD7NGd1SlneT+U1j/HjslDUXQz6cqwLnVDRc6xF2lj6rre+eeeQ==", + "dev": true, + "dependencies": { + "mime": "^3", + "opener": "1" + } + }, + "node_modules/rollup-plugin-terser": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", + "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", + "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "jest-worker": "^26.2.1", + "serialize-javascript": "^4.0.0", + "terser": "^5.0.0" + }, + "peerDependencies": { + "rollup": "^2.0.0" + } + }, + "node_modules/rollup-plugin-terser/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/rollup-plugin-terser/node_modules/jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/rollup-plugin-terser/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/rollup-plugin-typescript2": { + "version": "0.36.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-typescript2/-/rollup-plugin-typescript2-0.36.0.tgz", + "integrity": "sha512-NB2CSQDxSe9+Oe2ahZbf+B4bh7pHwjV5L+RSYpCu7Q5ROuN94F9b6ioWwKfz3ueL3KTtmX4o2MUH2cgHDIEUsw==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^4.1.2", + "find-cache-dir": "^3.3.2", + "fs-extra": "^10.0.0", + "semver": "^7.5.4", + "tslib": "^2.6.2" + }, + "peerDependencies": { + "rollup": ">=1.26.3", + "typescript": ">=2.4.0" + } + }, + "node_modules/rollup-plugin-typescript2/node_modules/@rollup/pluginutils": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", + "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", + "dev": true, + "dependencies": { + "estree-walker": "^2.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/rollup-plugin-typescript2/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/rollup-plugin-typescript2/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/rollup-plugin-typescript2/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/run-applescript": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-5.0.0.tgz", + "integrity": "sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==", + "dev": true, + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-array-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", + "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "dev": true, + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/set-function-length": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", + "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.1", + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", + "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", + "dev": true, + "dependencies": { + "define-data-property": "^1.0.1", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", + "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", + "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", + "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/superstruct": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.15.5.tgz", + "integrity": "sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ==" + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-hyperlinks": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", + "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true + }, + "node_modules/synckit": { + "version": "0.8.6", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.6.tgz", + "integrity": "sha512-laHF2savN6sMeHCjLRkheIU4wo3Zg9Ln5YOjOo7sZ5dVQW8yF5pPE5SIw1dsPhq3TRp1jisKRCdPhfs/1WMqDA==", + "dev": true, + "dependencies": { + "@pkgr/utils": "^2.4.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, + "node_modules/terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terser": { + "version": "5.24.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.24.0.tgz", + "integrity": "sha512-ZpGR4Hy3+wBEzVEnHvstMvqpD/nABNelQn/z2r0fjVWGQsN3bpOLzQlqDxmb4CDZnXq5lpjnQ+mHQLAOpfM5iw==", + "dev": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/throat": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.2.tgz", + "integrity": "sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ==", + "dev": true + }, + "node_modules/titleize": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/titleize/-/titleize-3.0.0.tgz", + "integrity": "sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tough-cookie": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", + "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", + "dev": true, + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tough-cookie/node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/tr46": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "dev": true, + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ts-api-utils": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", + "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", + "dev": true, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, + "node_modules/tsconfig-paths": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "dev": true, + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/tsconfig-paths/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", + "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", + "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", + "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dev": true, + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/v8-to-istanbul": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", + "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0", + "source-map": "^0.7.3" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/v8-to-istanbul/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "node_modules/v8-to-istanbul/node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/w3c-hr-time": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "deprecated": "Use your platform's native performance.now() and performance.timeOrigin.", + "dev": true, + "dependencies": { + "browser-process-hrtime": "^1.0.0" + } + }, + "node_modules/w3c-xmlserializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", + "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "dev": true, + "dependencies": { + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "dev": true, + "engines": { + "node": ">=10.4" + } + }, + "node_modules/whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "dev": true, + "dependencies": { + "iconv-lite": "0.4.24" + } + }, + "node_modules/whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", + "dev": true + }, + "node_modules/whatwg-url": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", + "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "dev": true, + "dependencies": { + "lodash": "^4.7.0", + "tr46": "^2.1.0", + "webidl-conversions": "^6.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", + "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.4", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "dev": true, + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", + "dev": true + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "dev": true + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + }, + "dependencies": { + "@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true + }, + "@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@babel/code-frame": { + "version": "7.24.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", + "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", + "dev": true, + "requires": { + "@babel/highlight": "^7.24.2", + "picocolors": "^1.0.0" + } + }, + "@babel/compat-data": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", + "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", + "dev": true + }, + "@babel/core": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.4.tgz", + "integrity": "sha512-MBVlMXP+kkl5394RBLSxxk/iLTeVGuXTV3cIDXavPpMMqnSnt6apKgan/U8O3USWZCWZT/TbgfEpKa4uMgN4Dg==", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.2", + "@babel/generator": "^7.24.4", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.24.4", + "@babel/parser": "^7.24.4", + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.1", + "@babel/types": "^7.24.0", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + } + }, + "@babel/generator": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.4.tgz", + "integrity": "sha512-Xd6+v6SnjWVx/nus+y0l1sxMOTOMBkyL4+BIdbALyatQnAe/SRVjANeDPSCYaX+i1iJmuGSKf3Z+E+V/va1Hvw==", + "dev": true, + "requires": { + "@babel/types": "^7.24.0", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-validator-option": "^7.23.5", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + } + }, + "@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "dev": true + }, + "@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dev": true, + "requires": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "dev": true, + "requires": { + "@babel/types": "^7.22.15" + } + }, + "@babel/helper-module-transforms": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "dev": true + }, + "@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "dev": true, + "requires": { + "@babel/types": "^7.22.5" + } + }, + "@babel/helper-string-parser": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "dev": true + }, + "@babel/helpers": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.4.tgz", + "integrity": "sha512-FewdlZbSiwaVGlgT1DPANDuCHaDMiOo+D/IDYRFYjHOuv66xMSJ7fQwwODwRNAPkADIO/z1EoF/l2BCWlWABDw==", + "dev": true, + "requires": { + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.1", + "@babel/types": "^7.24.0" + } + }, + "@babel/highlight": { + "version": "7.24.2", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz", + "integrity": "sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + } + }, + "@babel/parser": { + "version": "7.24.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.4.tgz", + "integrity": "sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==", + "dev": true + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-typescript": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz", + "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.22.5" + } + }, + "@babel/template": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", + "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.23.5", + "@babel/parser": "^7.24.0", + "@babel/types": "^7.24.0" + } + }, + "@babel/traverse": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.1.tgz", + "integrity": "sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.24.1", + "@babel/generator": "^7.24.1", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.24.1", + "@babel/types": "^7.24.0", + "debug": "^4.3.1", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", + "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + } + }, + "@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^3.3.0" + } + }, + "@eslint-community/regexpp": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "dev": true + }, + "@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "globals": { + "version": "13.23.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", + "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + } + } + }, + "@eslint/js": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "dev": true + }, + "@formatjs/ecma402-abstract": { + "version": "1.11.4", + "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.11.4.tgz", + "integrity": "sha512-EBikYFp2JCdIfGEb5G9dyCkTGDmC57KSHhRQOC3aYxoPWVZvfWCDjZwkGYHN7Lis/fmuWl906bnNTJifDQ3sXw==", + "requires": { + "@formatjs/intl-localematcher": "0.2.25", + "tslib": "^2.1.0" + } + }, + "@formatjs/fast-memoize": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@formatjs/fast-memoize/-/fast-memoize-1.2.1.tgz", + "integrity": "sha512-Rg0e76nomkz3vF9IPlKeV+Qynok0r7YZjL6syLz4/urSg0IbjPZCB/iYUMNsYA643gh4mgrX3T7KEIFIxJBQeg==", + "requires": { + "tslib": "^2.1.0" + } + }, + "@formatjs/icu-messageformat-parser": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.1.0.tgz", + "integrity": "sha512-Qxv/lmCN6hKpBSss2uQ8IROVnta2r9jd3ymUEIjm2UyIkUCHVcbUVRGL/KS/wv7876edvsPe+hjHVJ4z8YuVaw==", + "requires": { + "@formatjs/ecma402-abstract": "1.11.4", + "@formatjs/icu-skeleton-parser": "1.3.6", + "tslib": "^2.1.0" + } + }, + "@formatjs/icu-skeleton-parser": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.3.6.tgz", + "integrity": "sha512-I96mOxvml/YLrwU2Txnd4klA7V8fRhb6JG/4hm3VMNmeJo1F03IpV2L3wWt7EweqNLES59SZ4d6hVOPCSf80Bg==", + "requires": { + "@formatjs/ecma402-abstract": "1.11.4", + "tslib": "^2.1.0" + } + }, + "@formatjs/intl-localematcher": { + "version": "0.2.25", + "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.2.25.tgz", + "integrity": "sha512-YmLcX70BxoSopLFdLr1Ds99NdlTI2oWoLbaUW2M406lxOIPzE1KQhRz2fPUkq34xVZQaihCoU29h0KK7An3bhA==", + "requires": { + "tslib": "^2.1.0" + } + }, + "@formatjs/intl-utils": { + "version": "3.8.4", + "resolved": "https://registry.npmjs.org/@formatjs/intl-utils/-/intl-utils-3.8.4.tgz", + "integrity": "sha512-j5C6NyfKevIxsfLK8KwO1C0vvP7k1+h4A9cFpc+cr6mEwCc1sPkr17dzh0Ke6k9U5pQccAQoXdcNBl3IYa4+ZQ==", + "requires": { + "emojis-list": "^3.0.0" + } + }, + "@humanwhocodes/config-array": { + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + } + }, + "@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true + }, + "@humanwhocodes/object-schema": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", + "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", + "dev": true + }, + "@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "requires": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "dependencies": { + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + } + } + }, + "@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true + }, + "@jest/console": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz", + "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==", + "dev": true, + "requires": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jest/core": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz", + "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==", + "dev": true, + "requires": { + "@jest/console": "^27.5.1", + "@jest/reporters": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^27.5.1", + "jest-config": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-resolve-dependencies": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "jest-watcher": "^27.5.1", + "micromatch": "^4.0.4", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jest/environment": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz", + "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==", + "dev": true, + "requires": { + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1" + } + }, + "@jest/fake-timers": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz", + "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==", + "dev": true, + "requires": { + "@jest/types": "^27.5.1", + "@sinonjs/fake-timers": "^8.0.1", + "@types/node": "*", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + } + }, + "@jest/globals": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz", + "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==", + "dev": true, + "requires": { + "@jest/environment": "^27.5.1", + "@jest/types": "^27.5.1", + "expect": "^27.5.1" + } + }, + "@jest/reporters": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz", + "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==", + "dev": true, + "requires": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.2", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-haste-map": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "slash": "^3.0.0", + "source-map": "^0.6.0", + "string-length": "^4.0.1", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^8.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jest/source-map": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz", + "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==", + "dev": true, + "requires": { + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9", + "source-map": "^0.6.0" + } + }, + "@jest/test-result": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz", + "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==", + "dev": true, + "requires": { + "@jest/console": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + } + }, + "@jest/test-sequencer": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz", + "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==", + "dev": true, + "requires": { + "@jest/test-result": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-runtime": "^27.5.1" + } + }, + "@jest/transform": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz", + "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==", + "dev": true, + "requires": { + "@babel/core": "^7.1.0", + "@jest/types": "^27.5.1", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-util": "^27.5.1", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "dev": true + }, + "@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true + }, + "@jridgewell/source-map": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", + "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "@lit-labs/ssr-dom-shim": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.2.0.tgz", + "integrity": "sha512-yWJKmpGE6lUURKAaIltoPIE/wrbY3TEkqQt+X0m+7fQNnAv0keydnYvbiJFP1PnMhizmIWRWOG5KLhYyc/xl+g==" + }, + "@lit/reactive-element": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-2.0.4.tgz", + "integrity": "sha512-GFn91inaUa2oHLak8awSIigYz0cU0Payr1rcFsrkf5OJ5eSPxElyZfKh0f2p9FsTiZWXQdWGJeXZICEfXXYSXQ==", + "requires": { + "@lit-labs/ssr-dom-shim": "^1.2.0" + } + }, + "@mdi/js": { + "version": "7.4.47", + "resolved": "https://registry.npmjs.org/@mdi/js/-/js-7.4.47.tgz", + "integrity": "sha512-KPnNOtm5i2pMabqZxpUz7iQf+mfrYZyKCZ8QNz85czgEt7cuHcGorWfdzUMWYA0SD+a6Hn4FmJ+YhzzzjkTZrQ==" + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@pkgr/utils": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@pkgr/utils/-/utils-2.4.2.tgz", + "integrity": "sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "fast-glob": "^3.3.0", + "is-glob": "^4.0.3", + "open": "^9.1.0", + "picocolors": "^1.0.0", + "tslib": "^2.6.0" + } + }, + "@rollup/plugin-babel": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-6.0.4.tgz", + "integrity": "sha512-YF7Y52kFdFT/xVSuVdjkV5ZdX/3YtmX0QulG+x0taQOtJdHYzVU61aSSkAgVJ7NOv6qPkIYiJSgSWWN/DM5sGw==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.18.6", + "@rollup/pluginutils": "^5.0.1" + } + }, + "@rollup/plugin-commonjs": { + "version": "25.0.7", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-25.0.7.tgz", + "integrity": "sha512-nEvcR+LRjEjsaSsc4x3XZfCCvZIaSMenZu/OiwOKGN2UhQpAYI7ru7czFvyWbErlpoGjnSX3D5Ch5FcMA3kRWQ==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^5.0.1", + "commondir": "^1.0.1", + "estree-walker": "^2.0.2", + "glob": "^8.0.3", + "is-reference": "1.2.1", + "magic-string": "^0.30.3" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + } + }, + "minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, + "@rollup/plugin-json": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-6.1.0.tgz", + "integrity": "sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^5.1.0" + } + }, + "@rollup/plugin-node-resolve": { + "version": "15.2.3", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.2.3.tgz", + "integrity": "sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^5.0.1", + "@types/resolve": "1.20.2", + "deepmerge": "^4.2.2", + "is-builtin-module": "^3.2.1", + "is-module": "^1.0.0", + "resolve": "^1.22.1" + } + }, + "@rollup/pluginutils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", + "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", + "dev": true, + "requires": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + } + }, + "@sinonjs/commons": { + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", + "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", + "dev": true, + "requires": { + "type-detect": "4.0.8" + } + }, + "@sinonjs/fake-timers": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", + "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", + "dev": true, + "requires": { + "@sinonjs/commons": "^1.7.0" + } + }, + "@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "dev": true + }, + "@types/babel__core": { + "version": "7.20.4", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.4.tgz", + "integrity": "sha512-mLnSC22IC4vcWiuObSRjrLd9XcBTGf59vUSoq2jkQDJ/QQ8PMI9rSuzE+aEV8karUMbskw07bKYoUJCKTUaygg==", + "dev": true, + "requires": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "@types/babel__generator": { + "version": "7.6.7", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.7.tgz", + "integrity": "sha512-6Sfsq+EaaLrw4RmdFWE9Onp63TOUue71AWb4Gpa6JxzgTYtimbM086WnYTy2U67AofR++QKCo08ZP6pwx8YFHQ==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@types/babel__traverse": { + "version": "7.20.4", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.4.tgz", + "integrity": "sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==", + "dev": true, + "requires": { + "@babel/types": "^7.20.7" + } + }, + "@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true + }, + "@types/graceful-fs": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "dev": true + }, + "@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "*" + } + }, + "@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "@types/jest": { + "version": "27.4.1", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.4.1.tgz", + "integrity": "sha512-23iPJADSmicDVrWk+HT58LMJtzLAnB2AgIzplQuq/bSrGaxCrlvRFjGbXmamnnk/mAmCdLStiGqggu28ocUyiw==", + "dev": true, + "requires": { + "jest-matcher-utils": "^27.0.0", + "pretty-format": "^27.0.0" + } + }, + "@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true + }, + "@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, + "@types/node": { + "version": "20.9.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.9.0.tgz", + "integrity": "sha512-nekiGu2NDb1BcVofVcEKMIwzlx4NjHlcjhoxxKBNLtz15Y1z7MYf549DFvkHSId02Ax6kGwWntIBPC3l/JZcmw==", + "dev": true, + "requires": { + "undici-types": "~5.26.4" + } + }, + "@types/prettier": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz", + "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==", + "dev": true + }, + "@types/resolve": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", + "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", + "dev": true + }, + "@types/semver": { + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", + "dev": true + }, + "@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "dev": true + }, + "@types/trusted-types": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.6.tgz", + "integrity": "sha512-HYtNooPvUY9WAVRBr4u+4Qa9fYD1ze2IUlAD3HoA6oehn1taGwBx3Oa52U4mTslTS+GAExKpaFu39Y5xUEwfjg==" + }, + "@types/yargs": { + "version": "16.0.8", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.8.tgz", + "integrity": "sha512-1GwLEkmFafeb/HbE6pC7tFlgYSQ4Iqh2qlWCq8xN+Qfaiaxr2PcLfuhfRFRYqI6XJyeFoLYyKnhFbNsst9FMtQ==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "dev": true + }, + "@typescript-eslint/eslint-plugin": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.6.0.tgz", + "integrity": "sha512-gKmTNwZnblUdnTIJu3e9kmeRRzV2j1a/LUO27KNNAnIC5zjy1aSvXSRp4rVNlmAoHlQ7HzX42NbKpcSr4jF80A==", + "dev": true, + "requires": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "7.6.0", + "@typescript-eslint/type-utils": "7.6.0", + "@typescript-eslint/utils": "7.6.0", + "@typescript-eslint/visitor-keys": "7.6.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + }, + "dependencies": { + "@typescript-eslint/scope-manager": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.6.0.tgz", + "integrity": "sha512-ngttyfExA5PsHSx0rdFgnADMYQi+Zkeiv4/ZxGYUWd0nLs63Ha0ksmp8VMxAIC0wtCFxMos7Lt3PszJssG/E6w==", + "dev": true, + "requires": { + "@typescript-eslint/types": "7.6.0", + "@typescript-eslint/visitor-keys": "7.6.0" + } + }, + "@typescript-eslint/types": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.6.0.tgz", + "integrity": "sha512-h02rYQn8J+MureCvHVVzhl69/GAfQGPQZmOMjG1KfCl7o3HtMSlPaPUAPu6lLctXI5ySRGIYk94clD/AUMCUgQ==", + "dev": true + }, + "@typescript-eslint/visitor-keys": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.6.0.tgz", + "integrity": "sha512-4eLB7t+LlNUmXzfOu1VAIAdkjbu5xNSerURS9X/S5TUKWFRpXRQZbmtPqgKmYx8bj3J0irtQXSiWAOY82v+cgw==", + "dev": true, + "requires": { + "@typescript-eslint/types": "7.6.0", + "eslint-visitor-keys": "^3.4.3" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "@typescript-eslint/parser": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.7.0.tgz", + "integrity": "sha512-fNcDm3wSwVM8QYL4HKVBggdIPAy9Q41vcvC/GtDobw3c4ndVT3K6cqudUmjHPw8EAp4ufax0o58/xvWaP2FmTg==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "7.7.0", + "@typescript-eslint/types": "7.7.0", + "@typescript-eslint/typescript-estree": "7.7.0", + "@typescript-eslint/visitor-keys": "7.7.0", + "debug": "^4.3.4" + } + }, + "@typescript-eslint/scope-manager": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.7.0.tgz", + "integrity": "sha512-/8INDn0YLInbe9Wt7dK4cXLDYp0fNHP5xKLHvZl3mOT5X17rK/YShXaiNmorl+/U4VKCVIjJnx4Ri5b0y+HClw==", + "dev": true, + "requires": { + "@typescript-eslint/types": "7.7.0", + "@typescript-eslint/visitor-keys": "7.7.0" + } + }, + "@typescript-eslint/type-utils": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.6.0.tgz", + "integrity": "sha512-NxAfqAPNLG6LTmy7uZgpK8KcuiS2NZD/HlThPXQRGwz6u7MDBWRVliEEl1Gj6U7++kVJTpehkhZzCJLMK66Scw==", + "dev": true, + "requires": { + "@typescript-eslint/typescript-estree": "7.6.0", + "@typescript-eslint/utils": "7.6.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.3.0" + }, + "dependencies": { + "@typescript-eslint/types": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.6.0.tgz", + "integrity": "sha512-h02rYQn8J+MureCvHVVzhl69/GAfQGPQZmOMjG1KfCl7o3HtMSlPaPUAPu6lLctXI5ySRGIYk94clD/AUMCUgQ==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.6.0.tgz", + "integrity": "sha512-+7Y/GP9VuYibecrCQWSKgl3GvUM5cILRttpWtnAu8GNL9j11e4tbuGZmZjJ8ejnKYyBRb2ddGQ3rEFCq3QjMJw==", + "dev": true, + "requires": { + "@typescript-eslint/types": "7.6.0", + "@typescript-eslint/visitor-keys": "7.6.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.6.0.tgz", + "integrity": "sha512-4eLB7t+LlNUmXzfOu1VAIAdkjbu5xNSerURS9X/S5TUKWFRpXRQZbmtPqgKmYx8bj3J0irtQXSiWAOY82v+cgw==", + "dev": true, + "requires": { + "@typescript-eslint/types": "7.6.0", + "eslint-visitor-keys": "^3.4.3" + } + }, + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + }, + "semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "@typescript-eslint/types": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.7.0.tgz", + "integrity": "sha512-G01YPZ1Bd2hn+KPpIbrAhEWOn5lQBrjxkzHkWvP6NucMXFtfXoevK82hzQdpfuQYuhkvFDeQYbzXCjR1z9Z03w==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.7.0.tgz", + "integrity": "sha512-8p71HQPE6CbxIBy2kWHqM1KGrC07pk6RJn40n0DSc6bMOBBREZxSDJ+BmRzc8B5OdaMh1ty3mkuWRg4sCFiDQQ==", + "dev": true, + "requires": { + "@typescript-eslint/types": "7.7.0", + "@typescript-eslint/visitor-keys": "7.7.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + }, + "semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "@typescript-eslint/utils": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.6.0.tgz", + "integrity": "sha512-x54gaSsRRI+Nwz59TXpCsr6harB98qjXYzsRxGqvA5Ue3kQH+FxS7FYU81g/omn22ML2pZJkisy6Q+ElK8pBCA==", + "dev": true, + "requires": { + "@eslint-community/eslint-utils": "^4.4.0", + "@types/json-schema": "^7.0.15", + "@types/semver": "^7.5.8", + "@typescript-eslint/scope-manager": "7.6.0", + "@typescript-eslint/types": "7.6.0", + "@typescript-eslint/typescript-estree": "7.6.0", + "semver": "^7.6.0" + }, + "dependencies": { + "@typescript-eslint/scope-manager": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.6.0.tgz", + "integrity": "sha512-ngttyfExA5PsHSx0rdFgnADMYQi+Zkeiv4/ZxGYUWd0nLs63Ha0ksmp8VMxAIC0wtCFxMos7Lt3PszJssG/E6w==", + "dev": true, + "requires": { + "@typescript-eslint/types": "7.6.0", + "@typescript-eslint/visitor-keys": "7.6.0" + } + }, + "@typescript-eslint/types": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.6.0.tgz", + "integrity": "sha512-h02rYQn8J+MureCvHVVzhl69/GAfQGPQZmOMjG1KfCl7o3HtMSlPaPUAPu6lLctXI5ySRGIYk94clD/AUMCUgQ==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.6.0.tgz", + "integrity": "sha512-+7Y/GP9VuYibecrCQWSKgl3GvUM5cILRttpWtnAu8GNL9j11e4tbuGZmZjJ8ejnKYyBRb2ddGQ3rEFCq3QjMJw==", + "dev": true, + "requires": { + "@typescript-eslint/types": "7.6.0", + "@typescript-eslint/visitor-keys": "7.6.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.6.0.tgz", + "integrity": "sha512-4eLB7t+LlNUmXzfOu1VAIAdkjbu5xNSerURS9X/S5TUKWFRpXRQZbmtPqgKmYx8bj3J0irtQXSiWAOY82v+cgw==", + "dev": true, + "requires": { + "@typescript-eslint/types": "7.6.0", + "eslint-visitor-keys": "^3.4.3" + } + }, + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + }, + "semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "@typescript-eslint/visitor-keys": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.7.0.tgz", + "integrity": "sha512-h0WHOj8MhdhY8YWkzIF30R379y0NqyOHExI9N9KCzvmu05EgG4FumeYa3ccfKUSphyWkWQE1ybVrgz/Pbam6YA==", + "dev": true, + "requires": { + "@typescript-eslint/types": "7.7.0", + "eslint-visitor-keys": "^3.4.3" + } + }, + "@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, + "abab": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "dev": true + }, + "acorn": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", + "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", + "dev": true + }, + "acorn-globals": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", + "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "dev": true, + "requires": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" + }, + "dependencies": { + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true + } + } + }, + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "requires": {} + }, + "acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "dev": true + }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "requires": { + "debug": "4" + } + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "requires": { + "type-fest": "^0.21.3" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "array-buffer-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + } + }, + "array-includes": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", + "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-string": "^1.0.7" + } + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "array.prototype.findlastindex": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", + "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.2.1" + } + }, + "array.prototype.flat": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + } + }, + "array.prototype.flatmap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + } + }, + "arraybuffer.prototype.slice": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", + "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", + "dev": true, + "requires": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-array-buffer": "^3.0.2", + "is-shared-array-buffer": "^1.0.2" + } + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, + "available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true + }, + "babel-jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz", + "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==", + "dev": true, + "requires": { + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + } + }, + "babel-plugin-jest-hoist": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz", + "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==", + "dev": true, + "requires": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.0.0", + "@types/babel__traverse": "^7.0.6" + } + }, + "babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "requires": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + } + }, + "babel-preset-jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz", + "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==", + "dev": true, + "requires": { + "babel-plugin-jest-hoist": "^27.5.1", + "babel-preset-current-node-syntax": "^1.0.0" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "big-integer": { + "version": "1.6.52", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz", + "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==", + "dev": true + }, + "bplist-parser": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz", + "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==", + "dev": true, + "requires": { + "big-integer": "^1.6.44" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", + "dev": true + }, + "browserslist": { + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", + "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001565", + "electron-to-chromium": "^1.4.601", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + } + }, + "bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "requires": { + "node-int64": "^0.4.0" + } + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "dev": true + }, + "bundle-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-3.0.0.tgz", + "integrity": "sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==", + "dev": true, + "requires": { + "run-applescript": "^5.0.0" + } + }, + "call-bind": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", + "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", + "dev": true, + "requires": { + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.1", + "set-function-length": "^1.1.1" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30001568", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001568.tgz", + "integrity": "sha512-vSUkH84HontZJ88MiNrOau1EBrCqEQYgkC5gIySiDlpsm8sGVrhU7Kx4V6h0tnqaHzIHZv08HlJIwPbL4XL9+A==", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true + }, + "ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true + }, + "cjs-module-lexer": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", + "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==", + "dev": true + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true + }, + "collect-v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", + "dev": true + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "confusing-browser-globals": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", + "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", + "dev": true + }, + "convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "cssom": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", + "dev": true + }, + "cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dev": true, + "requires": { + "cssom": "~0.3.6" + }, + "dependencies": { + "cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true + } + } + }, + "custom-card-helpers": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/custom-card-helpers/-/custom-card-helpers-1.9.0.tgz", + "integrity": "sha512-5IW4OXq3MiiCqDvqeu+MYsM1NmntKW1WfJhyJFsdP2tbzqEI4BOnqRz2qzdp08lE4QLVhYfRLwe0WAqgQVNeFg==", + "requires": { + "@formatjs/intl-utils": "^3.8.4", + "home-assistant-js-websocket": "^6.0.1", + "intl-messageformat": "^9.11.1", + "lit": "^2.1.1", + "rollup": "^2.63.0", + "superstruct": "^0.15.3", + "typescript": "^4.5.4" + }, + "dependencies": { + "@lit/reactive-element": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-1.6.3.tgz", + "integrity": "sha512-QuTgnG52Poic7uM1AN5yJ09QMe0O28e10XzSvWDz02TJiiKee4stsiownEIadWm8nYzyDAyT+gKzUoZmiWQtsQ==", + "requires": { + "@lit-labs/ssr-dom-shim": "^1.0.0" + } + }, + "lit": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/lit/-/lit-2.8.0.tgz", + "integrity": "sha512-4Sc3OFX9QHOJaHbmTMk28SYgVxLN3ePDjg7hofEft2zWlehFL3LiAuapWc4U/kYwMYJSh2hTCPZ6/LIC7ii0MA==", + "requires": { + "@lit/reactive-element": "^1.6.0", + "lit-element": "^3.3.0", + "lit-html": "^2.8.0" + } + }, + "lit-element": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-3.3.3.tgz", + "integrity": "sha512-XbeRxmTHubXENkV4h8RIPyr8lXc+Ff28rkcQzw3G6up2xg5E8Zu1IgOWIwBLEQsu3cOVFqdYwiVi0hv0SlpqUA==", + "requires": { + "@lit-labs/ssr-dom-shim": "^1.1.0", + "@lit/reactive-element": "^1.3.0", + "lit-html": "^2.8.0" + } + }, + "lit-html": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-2.8.0.tgz", + "integrity": "sha512-o9t+MQM3P4y7M7yNzqAyjp7z+mQGa4NS4CxiyLqFPyFWyc4O+nodLrkrxSaCTrla6M5YOLaT3RpbbqjszB5g3Q==", + "requires": { + "@types/trusted-types": "^2.0.2" + } + } + } + }, + "data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "dev": true, + "requires": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + } + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "decimal.js": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", + "dev": true + }, + "dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", + "dev": true + }, + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true + }, + "default-browser": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-4.0.0.tgz", + "integrity": "sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==", + "dev": true, + "requires": { + "bundle-name": "^3.0.0", + "default-browser-id": "^3.0.0", + "execa": "^7.1.1", + "titleize": "^3.0.0" + }, + "dependencies": { + "execa": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz", + "integrity": "sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.1", + "human-signals": "^4.3.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^3.0.7", + "strip-final-newline": "^3.0.0" + } + }, + "human-signals": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", + "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", + "dev": true + }, + "is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true + }, + "mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true + }, + "npm-run-path": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.2.0.tgz", + "integrity": "sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==", + "dev": true, + "requires": { + "path-key": "^4.0.0" + } + }, + "onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "requires": { + "mimic-fn": "^4.0.0" + } + }, + "path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true + }, + "strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true + } + } + }, + "default-browser-id": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-3.0.0.tgz", + "integrity": "sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==", + "dev": true, + "requires": { + "bplist-parser": "^0.2.0", + "untildify": "^4.0.0" + } + }, + "define-data-property": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", + "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "dev": true, + "requires": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + } + }, + "define-lazy-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", + "dev": true + }, + "define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "requires": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true + }, + "detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true + }, + "diff-sequences": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", + "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", + "dev": true + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "domexception": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", + "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "dev": true, + "requires": { + "webidl-conversions": "^5.0.0" + }, + "dependencies": { + "webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "dev": true + } + } + }, + "electron-to-chromium": { + "version": "1.4.610", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.610.tgz", + "integrity": "sha512-mqi2oL1mfeHYtOdCxbPQYV/PL7YrQlxbvFEZ0Ee8GbDdShimqt2/S6z2RWqysuvlwdOrQdqvE0KZrBTipAeJzg==", + "dev": true + }, + "emittery": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", + "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==" + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-abstract": { + "version": "1.22.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz", + "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==", + "dev": true, + "requires": { + "array-buffer-byte-length": "^1.0.0", + "arraybuffer.prototype.slice": "^1.0.2", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.5", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.2", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.12", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.1", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.1", + "safe-array-concat": "^1.0.1", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.8", + "string.prototype.trimend": "^1.0.7", + "string.prototype.trimstart": "^1.0.7", + "typed-array-buffer": "^1.0.0", + "typed-array-byte-length": "^1.0.0", + "typed-array-byte-offset": "^1.0.0", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.13" + } + }, + "es-set-tostringtag": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", + "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==", + "dev": true, + "requires": { + "get-intrinsic": "^1.2.2", + "has-tostringtag": "^1.0.0", + "hasown": "^2.0.0" + } + }, + "es-shim-unscopables": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "dev": true, + "requires": { + "hasown": "^2.0.0" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "dev": true, + "requires": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2", + "source-map": "~0.6.1" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "eslint": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "dev": true, + "requires": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + }, + "globals": { + "version": "13.23.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", + "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + } + } + }, + "eslint-config-airbnb-base": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", + "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==", + "dev": true, + "requires": { + "confusing-browser-globals": "^1.0.10", + "object.assign": "^4.1.2", + "object.entries": "^1.1.5", + "semver": "^6.3.0" + } + }, + "eslint-config-prettier": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", + "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", + "dev": true, + "requires": {} + }, + "eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "dev": true, + "requires": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "eslint-module-utils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", + "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", + "dev": true, + "requires": { + "debug": "^3.2.7" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "eslint-plugin-import": { + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", + "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", + "dev": true, + "requires": { + "array-includes": "^3.1.7", + "array.prototype.findlastindex": "^1.2.3", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.8.0", + "hasown": "^2.0.0", + "is-core-module": "^2.13.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.7", + "object.groupby": "^1.0.1", + "object.values": "^1.1.7", + "semver": "^6.3.1", + "tsconfig-paths": "^3.15.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + } + } + }, + "eslint-plugin-prettier": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.3.tgz", + "integrity": "sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==", + "dev": true, + "requires": { + "prettier-linter-helpers": "^1.0.0", + "synckit": "^0.8.6" + } + }, + "eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true + }, + "espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "requires": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + } + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true + }, + "expect": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz", + "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", + "dev": true, + "requires": { + "@jest/types": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1" + } + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-diff": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", + "dev": true + }, + "fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "requires": { + "bser": "2.1.1" + } + }, + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "requires": { + "flat-cache": "^3.0.4" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "dependencies": { + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + } + } + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "requires": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.2.9", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", + "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", + "dev": true + }, + "for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "requires": { + "is-callable": "^1.1.3" + } + }, + "form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "optional": true + }, + "function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true + }, + "function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + } + }, + "functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "get-intrinsic": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", + "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", + "dev": true, + "requires": { + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + } + }, + "get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true + }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true + }, + "get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "requires": { + "is-glob": "^4.0.3" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "requires": { + "define-properties": "^1.1.3" + } + }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + }, + "gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3" + } + }, + "graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "has-property-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", + "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", + "dev": true, + "requires": { + "get-intrinsic": "^1.2.2" + } + }, + "has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "dev": true + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true + }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dev": true, + "requires": { + "function-bind": "^1.1.2" + } + }, + "home-assistant-js-websocket": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/home-assistant-js-websocket/-/home-assistant-js-websocket-6.1.1.tgz", + "integrity": "sha512-TnZFzF4mn5F/v0XKUTK2GMQXrn/+eQpgaSDSELl6U0HSwSbFwRhGWLz330YT+hiKMspDflamsye//RPL+zwhDw==" + }, + "html-encoding-sniffer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", + "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "dev": true, + "requires": { + "whatwg-encoding": "^1.0.5" + } + }, + "html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dev": true, + "requires": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + } + }, + "https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "requires": { + "agent-base": "6", + "debug": "4" + } + }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "dev": true + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "requires": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "internal-slot": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz", + "integrity": "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==", + "dev": true, + "requires": { + "get-intrinsic": "^1.2.2", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" + } + }, + "intl-messageformat": { + "version": "9.13.0", + "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-9.13.0.tgz", + "integrity": "sha512-7sGC7QnSQGa5LZP7bXLDhVDtQOeKGeBFGHF2Y8LVBwYZoQZCgWeKoPGTa5GMG8g/TzDgeXuYJQis7Ggiw2xTOw==", + "requires": { + "@formatjs/ecma402-abstract": "1.11.4", + "@formatjs/fast-memoize": "1.2.1", + "@formatjs/icu-messageformat-parser": "2.1.0", + "tslib": "^2.1.0" + } + }, + "is-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "requires": { + "has-bigints": "^1.0.1" + } + }, + "is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-builtin-module": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", + "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", + "dev": true, + "requires": { + "builtin-modules": "^3.3.0" + } + }, + "is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true + }, + "is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dev": true, + "requires": { + "hasown": "^2.0.0" + } + }, + "is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "dev": true, + "requires": { + "is-docker": "^3.0.0" + } + }, + "is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", + "dev": true + }, + "is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true + }, + "is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "dev": true + }, + "is-reference": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", + "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", + "dev": true, + "requires": { + "@types/estree": "*" + } + }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true + }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "is-typed-array": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", + "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "dev": true, + "requires": { + "which-typed-array": "^1.1.11" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "dev": true + }, + "is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "requires": { + "is-docker": "^2.0.0" + }, + "dependencies": { + "is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true + } + } + }, + "isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true + }, + "istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "requires": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + } + }, + "istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + } + }, + "istanbul-reports": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", + "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", + "dev": true, + "requires": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + } + }, + "jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz", + "integrity": "sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==", + "dev": true, + "requires": { + "@jest/core": "^27.5.1", + "import-local": "^3.0.2", + "jest-cli": "^27.5.1" + } + }, + "jest-changed-files": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.5.1.tgz", + "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==", + "dev": true, + "requires": { + "@jest/types": "^27.5.1", + "execa": "^5.0.0", + "throat": "^6.0.1" + } + }, + "jest-circus": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.5.1.tgz", + "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==", + "dev": true, + "requires": { + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "expect": "^27.5.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3", + "throat": "^6.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-cli": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz", + "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==", + "dev": true, + "requires": { + "@jest/core": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "prompts": "^2.0.1", + "yargs": "^16.2.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-config": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz", + "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==", + "dev": true, + "requires": { + "@babel/core": "^7.8.0", + "@jest/test-sequencer": "^27.5.1", + "@jest/types": "^27.5.1", + "babel-jest": "^27.5.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.1", + "graceful-fs": "^4.2.9", + "jest-circus": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-jasmine2": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-diff": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", + "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "diff-sequences": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-docblock": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz", + "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==", + "dev": true, + "requires": { + "detect-newline": "^3.0.0" + } + }, + "jest-each": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz", + "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==", + "dev": true, + "requires": { + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-environment-jsdom": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz", + "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==", + "dev": true, + "requires": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1", + "jsdom": "^16.6.0" + } + }, + "jest-environment-node": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz", + "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==", + "dev": true, + "requires": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + } + }, + "jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", + "dev": true + }, + "jest-haste-map": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz", + "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", + "dev": true, + "requires": { + "@jest/types": "^27.5.1", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.3.2", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^27.5.1", + "jest-serializer": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "micromatch": "^4.0.4", + "walker": "^1.0.7" + } + }, + "jest-jasmine2": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz", + "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==", + "dev": true, + "requires": { + "@jest/environment": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "expect": "^27.5.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", + "throat": "^6.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-leak-detector": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz", + "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==", + "dev": true, + "requires": { + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + } + }, + "jest-matcher-utils": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", + "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-message-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", + "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.5.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-mock": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz", + "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", + "dev": true, + "requires": { + "@jest/types": "^27.5.1", + "@types/node": "*" + } + }, + "jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "requires": {} + }, + "jest-regex-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz", + "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==", + "dev": true + }, + "jest-resolve": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz", + "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==", + "dev": true, + "requires": { + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "resolve": "^1.20.0", + "resolve.exports": "^1.1.0", + "slash": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-resolve-dependencies": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz", + "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==", + "dev": true, + "requires": { + "@jest/types": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-snapshot": "^27.5.1" + } + }, + "jest-runner": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz", + "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==", + "dev": true, + "requires": { + "@jest/console": "^27.5.1", + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-leak-detector": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "source-map-support": "^0.5.6", + "throat": "^6.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-runtime": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz", + "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==", + "dev": true, + "requires": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/globals": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "execa": "^5.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-serializer": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", + "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", + "dev": true, + "requires": { + "@types/node": "*", + "graceful-fs": "^4.2.9" + } + }, + "jest-snapshot": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz", + "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==", + "dev": true, + "requires": { + "@babel/core": "^7.7.2", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.0.0", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/babel__traverse": "^7.0.4", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "natural-compare": "^1.4.0", + "pretty-format": "^27.5.1", + "semver": "^7.3.2" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "jest-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "dev": true, + "requires": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-validate": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz", + "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==", + "dev": true, + "requires": { + "@jest/types": "^27.5.1", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "leven": "^3.1.0", + "pretty-format": "^27.5.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-watcher": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz", + "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==", + "dev": true, + "requires": { + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "jest-util": "^27.5.1", + "string-length": "^4.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "jsdom": { + "version": "16.7.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", + "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", + "dev": true, + "requires": { + "abab": "^2.0.5", + "acorn": "^8.2.4", + "acorn-globals": "^6.0.0", + "cssom": "^0.4.4", + "cssstyle": "^2.3.0", + "data-urls": "^2.0.0", + "decimal.js": "^10.2.1", + "domexception": "^2.0.1", + "escodegen": "^2.0.0", + "form-data": "^3.0.0", + "html-encoding-sniffer": "^2.0.1", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.0", + "parse5": "6.0.1", + "saxes": "^5.0.1", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.0.0", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^2.0.0", + "webidl-conversions": "^6.1.0", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.5.0", + "ws": "^7.4.6", + "xml-name-validator": "^3.0.0" + } + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "requires": { + "json-buffer": "3.0.1" + } + }, + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true + }, + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "lit": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lit/-/lit-3.1.2.tgz", + "integrity": "sha512-VZx5iAyMtX7CV4K8iTLdCkMaYZ7ipjJZ0JcSdJ0zIdGxxyurjIn7yuuSxNBD7QmjvcNJwr0JS4cAdAtsy7gZ6w==", + "requires": { + "@lit/reactive-element": "^2.0.4", + "lit-element": "^4.0.4", + "lit-html": "^3.1.2" + } + }, + "lit-element": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.0.4.tgz", + "integrity": "sha512-98CvgulX6eCPs6TyAIQoJZBCQPo80rgXR+dVBs61cstJXqtI+USQZAbA4gFHh6L/mxBx9MrgPLHLsUgDUHAcCQ==", + "requires": { + "@lit-labs/ssr-dom-shim": "^1.2.0", + "@lit/reactive-element": "^2.0.4", + "lit-html": "^3.1.2" + } + }, + "lit-html": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.1.2.tgz", + "integrity": "sha512-3OBZSUrPnAHoKJ9AMjRL/m01YJxQMf+TMHanNtTHG68ubjnZxK0RFl102DPzsw4mWnHibfZIBJm3LWCZ/LmMvg==", + "requires": { + "@types/trusted-types": "^2.0.2" + } + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "magic-string": { + "version": "0.30.5", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz", + "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==", + "dev": true, + "requires": { + "@jridgewell/sourcemap-codec": "^1.4.15" + } + }, + "make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "requires": { + "semver": "^7.5.3" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "requires": { + "tmpl": "1.0.5" + } + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "mime": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", + "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", + "dev": true + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "requires": { + "mime-db": "1.52.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, + "node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "nwsapi": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.7.tgz", + "integrity": "sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==", + "dev": true + }, + "object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "dev": true + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + } + }, + "object.entries": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.7.tgz", + "integrity": "sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + } + }, + "object.fromentries": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", + "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + } + }, + "object.groupby": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz", + "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1" + } + }, + "object.values": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", + "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "open": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/open/-/open-9.1.0.tgz", + "integrity": "sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==", + "dev": true, + "requires": { + "default-browser": "^4.0.0", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "is-wsl": "^2.2.0" + } + }, + "opener": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", + "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", + "dev": true + }, + "optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dev": true, + "requires": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + } + } + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true + }, + "prettier": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz", + "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==", + "dev": true + }, + "prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "requires": { + "fast-diff": "^1.1.2" + } + }, + "pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + } + } + }, + "prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "requires": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + } + }, + "psl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", + "dev": true + }, + "punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true + }, + "querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + }, + "regexp.prototype.flags": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", + "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "set-function-name": "^2.0.0" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true + }, + "resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "requires": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "requires": { + "resolve-from": "^5.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + } + } + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "resolve.exports": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.1.tgz", + "integrity": "sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ==", + "dev": true + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "rollup": { + "version": "2.79.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", + "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", + "requires": { + "fsevents": "~2.3.2" + } + }, + "rollup-plugin-serve": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/rollup-plugin-serve/-/rollup-plugin-serve-2.0.3.tgz", + "integrity": "sha512-gQKmfQng17+jOsX5tmDanvJkm0f9XLqWVvXsD7NGd1SlneT+U1j/HjslDUXQz6cqwLnVDRc6xF2lj6rre+eeeQ==", + "dev": true, + "requires": { + "mime": "^3", + "opener": "1" + } + }, + "rollup-plugin-terser": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", + "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "jest-worker": "^26.2.1", + "serialize-javascript": "^4.0.0", + "terser": "^5.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "rollup-plugin-typescript2": { + "version": "0.36.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-typescript2/-/rollup-plugin-typescript2-0.36.0.tgz", + "integrity": "sha512-NB2CSQDxSe9+Oe2ahZbf+B4bh7pHwjV5L+RSYpCu7Q5ROuN94F9b6ioWwKfz3ueL3KTtmX4o2MUH2cgHDIEUsw==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^4.1.2", + "find-cache-dir": "^3.3.2", + "fs-extra": "^10.0.0", + "semver": "^7.5.4", + "tslib": "^2.6.2" + }, + "dependencies": { + "@rollup/pluginutils": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", + "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", + "dev": true, + "requires": { + "estree-walker": "^2.0.1", + "picomatch": "^2.2.2" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "run-applescript": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-5.0.0.tgz", + "integrity": "sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==", + "dev": true, + "requires": { + "execa": "^5.0.0" + } + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "safe-array-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", + "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "dev": true, + "requires": { + "xmlchars": "^2.2.0" + } + }, + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + }, + "serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "set-function-length": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", + "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "dev": true, + "requires": { + "define-data-property": "^1.1.1", + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + } + }, + "set-function-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", + "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", + "dev": true, + "requires": { + "define-data-property": "^1.0.1", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.0" + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "requires": { + "escape-string-regexp": "^2.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true + } + } + }, + "string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "requires": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + } + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "string.prototype.trim": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", + "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + } + }, + "string.prototype.trimend": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", + "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + } + }, + "string.prototype.trimstart": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", + "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, + "superstruct": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.15.5.tgz", + "integrity": "sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ==" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "supports-hyperlinks": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", + "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "dev": true, + "requires": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, + "symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true + }, + "synckit": { + "version": "0.8.6", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.6.tgz", + "integrity": "sha512-laHF2savN6sMeHCjLRkheIU4wo3Zg9Ln5YOjOo7sZ5dVQW8yF5pPE5SIw1dsPhq3TRp1jisKRCdPhfs/1WMqDA==", + "dev": true, + "requires": { + "@pkgr/utils": "^2.4.2", + "tslib": "^2.6.2" + } + }, + "terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + } + }, + "terser": { + "version": "5.24.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.24.0.tgz", + "integrity": "sha512-ZpGR4Hy3+wBEzVEnHvstMvqpD/nABNelQn/z2r0fjVWGQsN3bpOLzQlqDxmb4CDZnXq5lpjnQ+mHQLAOpfM5iw==", + "dev": true, + "requires": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + } + }, + "test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "requires": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "throat": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.2.tgz", + "integrity": "sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ==", + "dev": true + }, + "titleize": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/titleize/-/titleize-3.0.0.tgz", + "integrity": "sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==", + "dev": true + }, + "tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "tough-cookie": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", + "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", + "dev": true, + "requires": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "dependencies": { + "universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "dev": true + } + } + }, + "tr46": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "dev": true, + "requires": { + "punycode": "^2.1.1" + } + }, + "ts-api-utils": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", + "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", + "dev": true, + "requires": {} + }, + "tsconfig-paths": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "dev": true, + "requires": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, + "dependencies": { + "json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true + } + } + }, + "tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true + }, + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true + }, + "typed-array-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", + "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "is-typed-array": "^1.1.10" + } + }, + "typed-array-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", + "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + } + }, + "typed-array-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", + "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + } + }, + "typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + } + }, + "typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "requires": { + "is-typedarray": "^1.0.0" + } + }, + "typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==" + }, + "unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + } + }, + "undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true + }, + "universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true + }, + "untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", + "dev": true + }, + "update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "dev": true, + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dev": true, + "requires": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "v8-to-istanbul": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", + "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0", + "source-map": "^0.7.3" + }, + "dependencies": { + "convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true + } + } + }, + "w3c-hr-time": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "dev": true, + "requires": { + "browser-process-hrtime": "^1.0.0" + } + }, + "w3c-xmlserializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", + "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "dev": true, + "requires": { + "xml-name-validator": "^3.0.0" + } + }, + "walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "requires": { + "makeerror": "1.0.12" + } + }, + "webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "dev": true + }, + "whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "dev": true, + "requires": { + "iconv-lite": "0.4.24" + } + }, + "whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", + "dev": true + }, + "whatwg-url": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", + "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "dev": true, + "requires": { + "lodash": "^4.7.0", + "tr46": "^2.1.0", + "webidl-conversions": "^6.1.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, + "which-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", + "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.4", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + } + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "dev": true, + "requires": {} + }, + "xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", + "dev": true + }, + "xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "dev": true + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..66d76b2 --- /dev/null +++ b/package.json @@ -0,0 +1,46 @@ +{ + "name": "soundtouchplus-card", + "version": "", + "description": "", + "main": "src/main.js", + "module": "src/main.js", + "repository": "", + "author": "Todd Lucas", + "license": "MIT", + "dependencies": { + "@mdi/js": "^7.4.47", + "custom-card-helpers": "^1.9.0", + "lit": "^3.1.2" + }, + "devDependencies": { + "@babel/core": "^7.24.4", + "@rollup/plugin-babel": "^6.0.4", + "@rollup/plugin-commonjs": "^25.0.7", + "@rollup/plugin-json": "^6.1.0", + "@rollup/plugin-node-resolve": "^15.2.3", + "@types/jest": "27.4.1", + "@typescript-eslint/eslint-plugin": "^7.6.0", + "@typescript-eslint/parser": "^7.7.0", + "eslint": "^8.57.0", + "eslint-config-airbnb-base": "^15.0.0", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-import": "^2.29.1", + "eslint-plugin-prettier": "^5.1.3", + "jest": "27.5.1", + "prettier": "^3.2.5", + "rollup": "^2.79.1", + "rollup-plugin-serve": "^2.0.3", + "rollup-plugin-terser": "^7.0.2", + "rollup-plugin-typescript2": "^0.36.0", + "typescript": "^4.9.5" + }, + "scripts": { + "start": "rollup -c --watch", + "build": "npm run lint && npm run rollup && npm run deploy-vm", + "buildgithub": "npm run lint && npm run rollup", + "deploy-prod": "npm run build && cp dist/soundtouchplus-card.js ~/homeassistant/www/community/soundtouchplus-card/soundtouchplus-card.js", + "deploy-vm": "xcopy \"dist\\soundtouchplus-card.*\" \"\\\\homeassistantvm\\config\\www\" /Y /-I", + "lint": "eslint src/*.ts", + "rollup": "rollup -c" + } +} diff --git a/rollup.config.js b/rollup.config.js new file mode 100644 index 0000000..ebacde8 --- /dev/null +++ b/rollup.config.js @@ -0,0 +1,46 @@ +import typescript from 'rollup-plugin-typescript2'; +import commonjs from '@rollup/plugin-commonjs'; +import nodeResolve from '@rollup/plugin-node-resolve'; +import babel from '@rollup/plugin-babel'; +import { terser } from 'rollup-plugin-terser'; +import serve from 'rollup-plugin-serve'; +import json from '@rollup/plugin-json'; + +const serveopts = { + contentBase: ['./dist'], + host: '0.0.0.0', + port: 5000, + allowCrossOrigin: true, + headers: { + 'Access-Control-Allow-Origin': '*', + }, +}; + +const plugins = [ + nodeResolve({}), + commonjs(), + typescript(), + json(), + babel({ + exclude: 'node_modules/**', + babelHelpers: 'bundled', + }), + process.env.ROLLUP_WATCH && serve(serveopts), + !process.env.ROLLUP_WATCH && !process.env.DEV && terser(), +]; + +export default [ + { + input: 'src/main.ts', + output: { + format: 'es', + sourcemap: true, + file: 'dist/soundtouchplus-card.js', + }, + onwarn(warning, warn) { + if (warning.code === 'THIS_IS_UNDEFINED') return; + warn(warning); + }, + plugins: [...plugins], + }, +]; diff --git a/src/card.ts b/src/card.ts new file mode 100644 index 0000000..2597e46 --- /dev/null +++ b/src/card.ts @@ -0,0 +1,649 @@ +// lovelace card imports. +import { HomeAssistant } from 'custom-card-helpers'; +import { css, html, LitElement, TemplateResult } from 'lit'; +import { styleMap } from 'lit-html/directives/style-map.js'; +import { property, state } from 'lit/decorators.js'; +import { choose } from 'lit/directives/choose.js'; +import { when } from 'lit/directives/when.js'; + +// our imports. +import { Store } from './model/store'; +import { CardConfig } from './types/cardconfig' +import { CustomImageUrls } from './types/customimageurls' +import { Section } from './types/section' +import './components/footer'; +import './editor/editor'; +import { PROGRESS_DONE, PROGRESS_STARTED, SECTION_SELECTED } from './constants'; +import { formatPlayerInfo, removeSpecialChars } from './utils/media-browser-utils'; +import { isNumber } from './utils/utils'; + +//const LOGPFX = "STPC - card." + +const { PRESETS, RECENTS, PANDORA_STATIONS, PLAYER } = Section; +const HEADER_HEIGHT = 2; +const FOOTER_HEIGHT = 4; +const CARD_DEFAULT_HEIGHT = '35.15rem'; +const CARD_DEFAULT_WIDTH = '35.15rem'; +const CARD_EDIT_PREVIEW_HEIGHT = '42rem'; +const CARD_EDIT_PREVIEW_WIDTH = '100%'; + +const PARENTELEMENT_TAGNAME_HUI_CARD_OPTIONS = 'HUI-CARD-OPTIONS'; +const PARENTELEMENT_TAGNAME_HUI_CARD_PREVIEW = 'HUI-CARD-PREVIEW'; + +const EDIT_TAB_HEIGHT = '48px'; +const EDIT_BOTTOM_TOOLBAR_HEIGHT = '59px'; +//const CARD_EDIT_PREVIEW_WIDTH = 35.3; // width of card editor parent. + +// Good source of help documentation on HA custom cards: +// https://gist.github.com/thomasloven/1de8c62d691e754f95b023105fe4b74b + +export class Card extends LitElement { + + /** + * Home Assistant will update the hass property of the config element on state changes, and + * the lovelace config element, which contains information about the dashboard configuration. + * + * Whenever anything updates in Home Assistant, the hass object is updated and passed out + * to every card. If you want to react to state changes, this is where you do it. If not, + * you can just ommit this setter entirely. + * Note that if you do NOT have a `set hass(hass)` in your class, you can access the hass + * object through `this.hass`. But if you DO have it, you need to save the hass object + * manually, like so: + * `this._hass = hass;` + * */ + @property({ attribute: false }) public hass!: HomeAssistant; + @property({ attribute: false }) config!: CardConfig; + + @state() section!: Section; + @state() store!: Store; + @state() showLoader!: boolean; + @state() loaderTimestamp!: number; + @state() cancelLoader!: boolean; + @state() playerId!: string; + + /** Indicates if setConfig setup is executing for the first time (true) or not (false). */ + private _isFirstTimeSetup: boolean = true; + + /** + * Initializes a new instance of the class. + */ + constructor() { + + super(); + this.showLoader = false; + this.cancelLoader = false; + this.loaderTimestamp = 0; + } + + + /** + * Invoked on each update to perform rendering tasks. + * + * This method may return any value renderable by lit-html's `ChildPart` (typically a `TemplateResult`). + * Setting properties inside this method will *not* trigger the element to update. + */ + protected render(): TemplateResult | void { + + //console.log(LOGPFX + "render()\n Rendering card"); + + // just in case hass property has not been set yet. + if (!this.hass) + return html``; + + // note that this cannot be called from `setConfig` method, as the `hass` property + // has not been set set. + this.createStore(); + + // calculate height of the card, accounting for any extra + // titles that are shown, footer, etc. + const sections = this.config.sections; + const showFooter = !sections || sections.length > 1; + const title = formatPlayerInfo(this.store.player, this.config.title); + + //console.log(LOGPFX + "render():\n this.section=%s", JSON.stringify(this.section)) + + // render html for the card. + return html` + +

+ ${title ? html`
${title}
` : html``} +
+ ${ + this.playerId + ? choose(this.section, [ + [PRESETS, () => html` `], + [RECENTS, () => html` `], + [PANDORA_STATIONS, () => html` `], + [PLAYER, () => html` `], + ]) + : html`
Player not configured
` + } +
+ ${when(showFooter, () => + html` + `, + )} + + `; + } + + + /** + * Creates the common services and data areas that are used by the various card sections. + * + * Note that this method cannot be called from `setConfig` method, as the `hass` property + * has not been set set! + */ + private createStore() { + + // create the store. + this.store = new Store(this.hass, this.config, this, this.section, this.config.entity); + + // have we set the player id yet? if not, then make it so. + if (this.playerId == undefined) { + this.playerId = this.config.entity; + } + } + + + /** + * Invoked when the component is added to the document's DOM. + * + * In `connectedCallback()` you should setup tasks that should only occur when + * the element is connected to the document. The most common of these is + * adding event listeners to nodes external to the element, like a keydown + * event handler added to the window. + * + * Typically, anything done in `connectedCallback()` should be undone when the + * element is disconnected, in `disconnectedCallback()`. + */ + connectedCallback() { + + // invoke base class method. + super.connectedCallback(); + + // add event listeners for this control. + window.addEventListener(PROGRESS_DONE, this.OnProgressDone); + window.addEventListener(PROGRESS_STARTED, this.OnProgressStarted); + window.addEventListener(SECTION_SELECTED, this.OnSectionSelected); + } + + + /** + * Invoked when the component is removed from the document's DOM. + * + * This callback is the main signal to the element that it may no longer be + * used. `disconnectedCallback()` should ensure that nothing is holding a + * reference to the element (such as event listeners added to nodes external + * to the element), so that it is free to be garbage collected. + * + * An element may be re-connected after being disconnected. + */ + disconnectedCallback() { + + // invoke base class method. + super.disconnectedCallback(); + + // remove event listeners for this control. + window.removeEventListener(PROGRESS_DONE, this.OnProgressDone); + window.removeEventListener(PROGRESS_STARTED, this.OnProgressStarted); + window.removeEventListener(SECTION_SELECTED, this.OnSectionSelected); + } + + + /** + * Handles the `PROGRESS_DONE` event. + * This will hide the circular progress indicator on the main card display. + * + * @param args Event arguments (none passed). + */ + protected OnProgressDone = () => { + + this.cancelLoader = true; + const duration = Date.now() - this.loaderTimestamp; + + //console.log(LOGPFX + "OnProgressDone()\nHiding progress indicator - duration=%s, this.showLoader=%s", JSON.stringify(duration), JSON.stringify(this.showLoader)); + if (this.showLoader) { + if (duration < 1000) { + setTimeout(() => (this.showLoader = false), 1000 - duration); + } else { + this.showLoader = false; + //console.log("progress is hidden"); + } + } + } + + + /** + * Handles the `PROGRESS_STARTED` event. + * This will show the circular progress indicator on the main card display for lengthy operations. + * + * A delay of 250 milliseconds is executed before the progress indicator is shown - if the progress + * done event is received in this delay period, then the progress indicator is not shown. This + * keeps the progress indicator from "flickering" for operations that are quick to respond. + * + * @param args Event arguments that contain the media item that was clicked on. + */ + protected OnProgressStarted = (args: Event) => { + + //console.log("OnProgressStarted() - Event Args:\n%s", JSON.stringify(args,null,2)); + //console.log("progress - this.showLoader=%s\n this.config.sections=%s\n args section=%s\n this.section=%s", JSON.stringify(this.showLoader), JSON.stringify(this.config.sections), JSON.stringify((event as CustomEvent).detail.section), JSON.stringify(this.section)); + if (!this.showLoader && (!this.config.sections || (args as CustomEvent).detail.section === this.section)) { + this.cancelLoader = false; + //console.log("progress is about to show"); + + // wait just a bit before showing the progress indicator; if the progress done event is received + // in this delay period, then the progress indicator is not shown. + setTimeout(() => { + if (!this.cancelLoader) { + this.showLoader = true; + this.loaderTimestamp = Date.now(); + //console.log("progress is showing - loaderTimestamp=%s", JSON.stringify(this.loaderTimestamp)); + } + }, 250); + } + } + + + /** + * Handles the `SECTION_SELECTED` event. + * + * This will select a section for display / rendering. + * + * @param args Event arguments that contain the section that was selected. + */ + protected OnSectionSelected = (args: Event) => { + + const sectionToSelect = (args as CustomEvent).detail as Section; + + // is section activated? if so, then select it. + if (this.config.sections?.includes(sectionToSelect)) { + //setTimeout(() => (this.section = sectionToSelect), 1000); + this.section = sectionToSelect; + } + } + + + /** + * Handles the `SHOW_SECTION` event. + * + * This will change the `section` attribute value to the value supplied, which will also force + * a refresh of the card and display the selected section. + * + * @param args Event arguments that contain the section to show. + */ + protected OnShowSection = (args: CustomEvent) => { + + //console.log("OnShowSection\n this.config.sections=%s\n event section=%s\n this.section=%s", JSON.stringify(this.config.sections), JSON.stringify(args.detail), JSON.stringify(this.section)); + + const section = args.detail; + + if (!this.config.sections || this.config.sections.indexOf(section) > -1) { + this.section = section; + //console.log("card.OnShowSection()\n changed section - this.section=%s", JSON.stringify(this.section)); + } + } + + + /** + * Handles the Media List `item-selected` event. (INACTIVE) + * + * This will change the current section selection to the PLAYER section. + * This will be useful if we ever implement a media player, so that the player is shown + * immediately after a media list item is selected for play. + * + * @param args Event arguments (none passed). + */ + protected onMediaListItemSelected = () => { + + // if player section is configured, then show it (after a slight delay). + if (this.config.sections?.includes(PLAYER)) { + // setTimeout(() => (this.section = PLAYER), 1000); + } + } + + + /** + * Home Assistant will call setConfig(config) when the configuration changes. This + * is most likely to occur when changing the configuration via the UI editor, but + * can also occur if YAML changes are made (for cards without UI config editor). + * + * If you throw an exception in this method (e.g. invalid configuration, etc), then + * Home Assistant will render an error card to notify the user. + * + * The config argument object contains the configuration specified by the user for + * the card. It will minimally contain: + * `config.type = "custom:my-custom-card"` + * + * The `setConfig` method MUST be defined, and is in fact the only function that must be. + * It doesn't need to actually DO anything, though. + * + * Note that setConfig will ALWAYS be called at the start of the lifetime of the card + * BEFORE the `hass` object is first provided. It MAY be called several times during + * the lifetime of the card, e.g. if the configuration of the card is changed. + * + * We use it here to update the internal config property, as well as perform some + * basic validation and initialization of the config. + * + * @param config Contains the configuration specified by the user for the card. + */ + public setConfig(config: CardConfig): void { + + // copy the passed configuration object to create a new instance. + const newConfig: CardConfig = JSON.parse(JSON.stringify(config)); + + // if entity value not set then render an error card. + if (!newConfig.entity) + throw new Error("SoundTouchPlus media player entity id not configured"); + + // remove any configuration properties that do not have a value set. + for (const [key, value] of Object.entries(newConfig)) { + if (Array.isArray(value) && value.length === 0) { + //console.log(LOGPFX + "setConfig()\n Removing empty value config key '%s'", key) + delete newConfig[key]; + } + } + + // default configration values if not set. + newConfig.presetBrowserItemsPerRow = newConfig.presetBrowserItemsPerRow || 3; + newConfig.presetBrowserItemsHideSource = newConfig.presetBrowserItemsHideSource || false; + newConfig.presetBrowserItemsHideTitle = newConfig.presetBrowserItemsHideTitle || false; + newConfig.recentBrowserItemsPerRow = newConfig.recentBrowserItemsPerRow || 10; + newConfig.recentBrowserItemsHideSource = newConfig.recentBrowserItemsHideSource || false; + newConfig.recentBrowserItemsHideTitle = newConfig.recentBrowserItemsHideTitle || false; + newConfig.pandoraBrowserItemsPerRow = newConfig.pandoraBrowserItemsPerRow || 9; + newConfig.pandoraBrowserItemsHideTitle = newConfig.pandoraBrowserItemsHideTitle || false; + + // if custom imageUrl's are supplied, then remove special characters from each title + // to speed up comparison when imageUrl's are loaded later on. we will also + // replace any spaces in the imageUrl with "%20" to make it url friendly. + const customImageUrlsTemp = {}; + for (const itemTitle in (newConfig.customImageUrls)) { + const title = removeSpecialChars(itemTitle); + let imageUrl = newConfig.customImageUrls[itemTitle]; + imageUrl = imageUrl?.replace(' ', '%20'); + customImageUrlsTemp[title] = imageUrl; + } + newConfig.customImageUrls = customImageUrlsTemp; + + // store configuration so other card sections can access them. + this.config = newConfig; + + //console.log("STPC - card.setConfig():\n%s", JSON.stringify(this.config, null, 2)); // prettyprint + + // is this the first time executing setConfig method? + if (this._isFirstTimeSetup) { + + // if there are things that you only want to happen one time when the configuration + // is initially loaded, then do them here. + + // set the initial section reference; if none defined, then default; + if ((!newConfig.sections) || (newConfig.sections.length == 0)) { + newConfig.sections = [PRESETS, RECENTS]; + this.section = PRESETS; + } else { + this.section = newConfig.sections[0] as Section; + } + + // indicate first time setup has completed. + this._isFirstTimeSetup = false; + } + } + + + /** + * Returns the size of the card as a number or a promise that will resolve to a number. + * A height of 1 is equivalent to 50 pixels. + * This will help Home Assistant distribute the cards evenly over the columns. + * A card size of 1 will be assumed if the method is not defined. + */ + getCardSize() { + return 3; + } + + + /** + * Returns a custom element for editing the user configuration. + * + * Home Assistant will display this element in the card editor in the dashboard, along with + * the rendered card (to the right) of the editor. + * + * The `parentElement?.tagName` will be 'HUI-CARD-PREVIEW' if the card is being shown in the + * card editor. You can check for this if you want to display the card differently while + * the card is being actively edited. + * + * The `parentElement?.tagName` will be 'HUI-CARD-OPTIONS' if the card is being shown while + * editing a dashboard (but not editing the card). You can check for this if you want to display + * the card differently while the dashboard is being actively edited. + */ + public static getConfigElement() { + return document.createElement('stpc-editor'); + } + + + /** + * Returns a default card configuration (without the type: parameter) in json form + * for use by the card type picker in the dashboard. + * + * Use this method to generate the initial configuration; assign defaults, omit + * parameters that are optional, etc. + */ + public static getStubConfig(): Record { + + // TODO - add code to search for SoundTouch entities that are already installed, + // and default the "entity" key value. + + // does entity id exist in hass state data? + //for const player as SoundTouchPlusHassEntity = Object.values(hass.states) + // .filter((ent) => ent.entity_id.match(entityId)); + + return { + sections: [Section.PRESETS, Section.RECENTS], + entity: "", + title: 'SoundTouch Card "{player.name}"', + presetBrowserTitle: '"{player.name}" Presets', + presetBrowserSubTitle: "last updated on {player.soundtouchplus_presets_lastupdated}", + presetBrowserItemsPerRow: 3, + presetBrowserItemsHideTitle: false, + presetBrowserItemsHideSource: false, + recentBrowserTitle: '"{player.name}" Recently Played', + recentBrowserSubTitle: "last updated on {player.soundtouchplus_recents_lastupdated}", + recentBrowserItemsPerRow: 10, + recentBrowserItemsHideTitle: false, + recentBrowserItemsHideSource: false, + pandoraBrowserTitle: '"{player.name}" My Pandora Stations', + pandoraBrowserSubTitle: "refreshed on {lastupdatedon}", + pandoraBrowserItemsPerRow: 9, + pandoraBrowserItemsHideTitle: false, + customImageUrls: { + "default": "/local/images/soundtouchplus_card_customimages/default.png", + "empty preset": "/local/images/soundtouchplus_card_customimages/empty_preset.png", + "My Private Playlist": "/local/images/soundtouchplus_card_customimages/logo_spotify.png", + "Daily Mix 1": "https://brands.home-assistant.io/spotifyplus/icon.png", + } + } + } + + + /** + * Style the element. + * + * @param height The computed height of the entire card (title, section, footer). + */ + styleCard() { + + //console.log("card.styleCard() - configuration values:\nthis.config.width=%s\nthis.config.height=%s", this.config.width, this.config.height); + + let cardWidth: string | undefined = undefined; + let cardHeight: string | undefined = undefined; + let editTabHeight = '0px'; + let editBottomToolbarHeight = '0px'; + + // are we previewing the card in the card editor? + // if so, then we will ignore the configuration dimensions and use constants. + if (this.parentElement?.tagName == PARENTELEMENT_TAGNAME_HUI_CARD_PREVIEW) { + //console.log("card.styleCard() - card is in edit preview"); + cardHeight = CARD_EDIT_PREVIEW_HEIGHT; + cardWidth = CARD_EDIT_PREVIEW_WIDTH; + return styleMap({ + '--stpc-card-edit-tab-height': `${editTabHeight}`, + '--stpc-card-edit-bottom-toolbar-height': `${editBottomToolbarHeight}`, + height: `${cardHeight ? cardHeight : undefined}`, + width: `${cardWidth ? cardWidth : undefined}`, + }); + } + + // set card editor options. + // we have to account for various editor toolbars in the height calculations when using 'fill' mode. + // we do not have to worry about width calculations, as the width is the same with or without edit mode. + if (this.parentElement?.tagName == PARENTELEMENT_TAGNAME_HUI_CARD_OPTIONS) { + //console.log("card.styleCard() width - dashboard is in edit mode"); + editTabHeight = EDIT_TAB_HEIGHT; + editBottomToolbarHeight = EDIT_BOTTOM_TOOLBAR_HEIGHT; + } + + // set card width based on configuration. + // - if 'fill', then use 100% of the horizontal space. + // - if number value specified, then use as width (in rem units). + // - if no value specified, then use default. + if (this.config.width == 'fill') { + //console.log("card.styleCard() width - fill specified"); + cardWidth = '100%'; + } else if (isNumber(this.config.width)) { + //console.log("card.styleCard() width - number was specified"); + cardWidth = this.config.width + 'rem'; + } else { + //console.log("card.styleCard() width - config not specified; use default"); + cardWidth = CARD_DEFAULT_WIDTH; + } + + // set card height based on configuration. + // - if 'fill', then use 100% of the vertical space. + // - if number value specified, then use as height (in rem units). + // - if no value specified, then use default. + if (this.config.height == 'fill') { + //console.log("card.styleCard() height - fill specified"); + cardHeight = 'calc(100vh - var(--stpc-card-footer-height) - var(--stpc-card-edit-tab-height) - var(--stpc-card-edit-bottom-toolbar-height))'; + } else if (isNumber(this.config.height)) { + //console.log("card.styleCard() height - number was specified"); + cardHeight = this.config.height + 'rem'; + } else { + //console.log("card.styleCard() height - config not specified; use default"); + cardHeight = CARD_DEFAULT_HEIGHT; + } + + //console.log("card.styleCard() - calculated dimensions:\ncardWidth=%s\ncardHeight=%s\neditTabHeight=%s\neditBottomToolbarHeight=%s", cardWidth, cardHeight, editTabHeight, editBottomToolbarHeight); + + return styleMap({ + '--stpc-card-edit-tab-height': `${editTabHeight}`, + '--stpc-card-edit-bottom-toolbar-height': `${editBottomToolbarHeight}`, + height: `${cardHeight ? cardHeight : undefined}`, + width: `${cardWidth ? cardWidth : undefined}`, + }); + } + + + /** + * Style definitions used by this card. + */ + static get styles() { + return css` + :host { + display: inline-block; + width: 100% !important; + height: 100% !important; + } + + * { + margin: 0; + } + + html, + body { + height: 100%; + margin: 0; + } + + soundtouchplus-card { + display: block; + height: 100% !important; + width: 100% !important; + } + + hui-card-preview { + min-height: 10rem; + height: 40rem; + min-width: 10rem; + width: 40rem; + } + + .stpc-card { + --stpc-card-header-height: ${HEADER_HEIGHT}rem; + --stpc-card-footer-height: ${FOOTER_HEIGHT}rem; + --stpc-card-edit-tab-height: 0px; + --stpc-card-edit-bottom-toolbar-height: 0px; + box-sizing: border-box; + color: var(--secondary-text-color); + overflow: hidden; + display: flex; + flex-direction: column; + min-height: 20rem; + height: calc(100vh - var(--stpc-card-footer-height) - var(--stpc-card-edit-tab-height) - var(--stpc-card-edit-bottom-toolbar-height)); + min-width: 20rem; + width: calc(100vw - var(--mdc-drawer-width)); + } + + .stpc-card-header { + margin: 0.2rem 0; + text-align: center; + align-content: center; + font-weight: bold; + font-size: 1.2rem; + color: var(--secondary-text-color); + height: var(--stpc-card-header-height); + } + + .stpc-card-content { + overflow-y: auto; + flex: 1; + } + + .stpc-card-footer { + padding-top: 0.3rem; + padding-left: 0.3rem; + padding-right: 0.3rem; + height: var(--stpc-card-footer-height); + } + + .stpc-loader { + position: absolute; + z-index: 1000; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + --mdc-theme-primary: var(--accent-color); + } + + .stpc-not-configured { + text-align: center; + margin-top: 50%; + } + + ha-icon-button { + padding-left: 1rem; + padding-right: 1rem; + } + + ha-circular-progress { + --md-sys-color-primary: var(--accent-color); + } + `; + } +} diff --git a/src/components/footer.ts b/src/components/footer.ts new file mode 100644 index 0000000..9a2d216 --- /dev/null +++ b/src/components/footer.ts @@ -0,0 +1,116 @@ +// lovelace card imports. +import { css, html, LitElement, TemplateResult, nothing } from 'lit'; +import { property } from 'lit/decorators.js'; +import { mdiHome, mdiStarOutline, mdiHistory, mdiPandora } from '@mdi/js'; + +// our imports. +import { SHOW_SECTION } from '../constants'; +import { CardConfig } from '../types/cardconfig' +import { Section } from '../types/section' +import { customEvent } from '../utils/utils'; + + +const { PRESETS, RECENTS, PANDORA_STATIONS, PLAYER } = Section; + +class Footer extends LitElement { + + @property({ attribute: false }) config!: CardConfig; + @property() section!: Section; + + /** + * Invoked on each update to perform rendering tasks. + * This method may return any value renderable by lit-html's `ChildPart` (typically a `TemplateResult`). + * Setting properties inside this method will *not* trigger the element to update. + */ + protected render(): TemplateResult | void { + + return html` + this.dispatchSection(PLAYER)} + selected=${this.selected(PLAYER)} + > + this.dispatchSection(PRESETS)} + selected=${this.selected(PRESETS)} + > + this.dispatchSection(RECENTS)} + selected=${this.selected(RECENTS)} + > + this.dispatchSection(PANDORA_STATIONS)} + selected=${this.selected(PANDORA_STATIONS)} + > + `; + } + + + private dispatchSection(section: Section) { + this.dispatchEvent(customEvent(SHOW_SECTION, section)); + } + + private selected(section: Section | typeof nothing) { + return this.section === section || nothing; + } + + + private hide(searchElement: Section) { + return (this.config.sections && !this.config.sections?.includes(searchElement)) || nothing; + } + + + /** + * Style definitions used by this card section. + */ + static get styles() { + return css` + :host > *[selected] { + color: var(--accent-color); + } + + :host > *[hide] { + display: none; + } + + .ha-icon-button { + --mwc-icon-button-size: 3rem; + --mwc-icon-size: 2rem; + } + `; + } + +// /** +// * Style definitions used by this card section. +// */ +// static get styles() { +// return css` +// :host { +// display: flex; +// justify-content: space-between; +// } +// :host > * { +// padding: 0; +// } +// :host > *[selected] { +// color: var(--accent-color); +// } +// :host > *[hide] { +// display: none; +// } +// .ha-icon-button { +// --mwc-icon-button-size: 3rem; +// --mwc-icon-size: 2rem; +// } +// `; +// } +} + +customElements.define('stpc-footer', Footer); diff --git a/src/components/ha-player.ts b/src/components/ha-player.ts new file mode 100644 index 0000000..cf934f4 --- /dev/null +++ b/src/components/ha-player.ts @@ -0,0 +1,33 @@ +// lovelace card imports. +import { html, LitElement, TemplateResult } from 'lit'; +import { property } from 'lit/decorators.js'; + +// our imports. +import { Store } from '../model/store'; +import { MediaPlayerEntityFeature } from '../types'; + +class HaPlayer extends LitElement { + + @property({ attribute: false }) store!: Store; + @property({ attribute: false }) features!: MediaPlayerEntityFeature[]; + + /** + * Invoked on each update to perform rendering tasks. + * This method may return any value renderable by lit-html's `ChildPart` (typically a `TemplateResult`). + * Setting properties inside this method will *not* trigger the element to update. + */ + protected render(): TemplateResult | void { + + const state = this.store.hass.states[this.store.player.id]; + let supportedFeatures = 0; + this.features.forEach((feature) => (supportedFeatures += feature)); + + const playerState = { + ...state, + attributes: { ...state.attributes, supported_features: supportedFeatures }, + }; + return html` `; + } +} + +customElements.define('stpc-ha-player', HaPlayer); diff --git a/src/components/media-browser-icons.ts b/src/components/media-browser-icons.ts new file mode 100644 index 0000000..d2765a1 --- /dev/null +++ b/src/components/media-browser-icons.ts @@ -0,0 +1,182 @@ +// lovelace card imports. +import { css, html, LitElement, TemplateResult } from 'lit'; +import { property, state } from 'lit/decorators.js'; + +// our imports. +import { Store } from '../model/store'; +import { CardConfig } from '../types/cardconfig' +import { Section } from '../types/section'; +import { ContentItemParent } from '../types/soundtouchplus/contentitem'; +import { ITEM_SELECTED, ITEM_SELECTED_WITH_HOLD } from '../constants'; +import { customEvent } from '../utils/utils'; +import { + itemsWithFallbacks, + renderMediaBrowserContentItem, + styleMediaBrowserItemBackgroundImage, + styleMediaBrowserItemTitle +} from '../utils/media-browser-utils'; + +export class MediaBrowserIcons extends LitElement { + + @property({ attribute: false }) store!: Store; + @property({ attribute: false }) items!: ContentItemParent[]; + + @state() mousedownTimestamp!: number; + + private config!: CardConfig; + private section!: Section; + + /** + * Initializes a new instance of the class. + */ + constructor() { + + super(); + this.mousedownTimestamp = 0; + } + + + /** + * Invoked on each update to perform rendering tasks. + * This method may return any value renderable by lit-html's `ChildPart` (typically a `TemplateResult`). + * Setting properties inside this method will *not* trigger the element to update. + */ + protected render(): TemplateResult | void { + + // set common references from application common storage area. + this.config = this.store.config; + this.section = this.store.section; + + // set title / source visibility based on selected section. + let hideTitle = true; + let hideSource = true; + let itemsPerRow = 1; + if (this.section == Section.PRESETS) { + itemsPerRow = this.config.presetBrowserItemsPerRow || 3; + hideTitle = this.config.presetBrowserItemsHideTitle || false; + hideSource = this.config.presetBrowserItemsHideSource || false; + } else if (this.section == Section.RECENTS) { + itemsPerRow = this.config.recentBrowserItemsPerRow || 3; + hideTitle = this.config.recentBrowserItemsHideTitle || false; + hideSource = this.config.recentBrowserItemsHideSource || false; + } else if (this.section == Section.PANDORA_STATIONS) { + itemsPerRow = this.config.pandoraBrowserItemsPerRow || 3; + hideTitle = this.config.pandoraBrowserItemsHideTitle || false; + hideSource = true; + } + + return html` + +
+ ${itemsWithFallbacks(this.items, this.config).map( + (item, index) => html` + ${styleMediaBrowserItemBackgroundImage(item.thumbnail, index)} + this.buttonMediaBrowserItemClick(customEvent(ITEM_SELECTED, item))} + @mousedown=${() => this.buttonMediaBrowserItemMouseDown()} + > + ${renderMediaBrowserContentItem(item.ContentItem, !item.thumbnail || !hideTitle, !hideSource)} + + `, + )} +
+ `; + } + + + /** + * Event fired when a mousedown event takes place for a media browser item button. + * In this case, we will store the current time (in milliseconds) so that we can calculate + * the duration in the "click" event (occurs after a mouseup event). + * + * @param event Event arguments. + */ + private buttonMediaBrowserItemMouseDown(): boolean { + // store when the mouse down event took place. + this.mousedownTimestamp = Date.now(); + return true; + } + + + /** + * Event fired when a click event takes place for a media browser item button. + * + * In this case, we are looking to determine how long the mouse button was in the + * down position (e.g. the duration). If the duration was greater than 1500 milliseconds, + * then we will treat the event as a "click and hold" operation; otherwise, we will treat + * the event as a "click" operation. + * + * @param event Event arguments. + */ + private buttonMediaBrowserItemClick(event: CustomEvent): boolean { + // calculate the duration of the mouse down / up operation. + const duration = Date.now() - this.mousedownTimestamp; + this.mousedownTimestamp = 0; + if (duration < 1500) { + return this.dispatchEvent(event); + } else { + return this.dispatchEvent(customEvent(ITEM_SELECTED_WITH_HOLD, event.detail)); + } + } + + + /** + * Style definitions used by this card section. + * + * --control-button-padding: 0px; // image with rounded corners + */ + static get styles() { + return [ + styleMediaBrowserItemTitle, + css` + .icons { + display: flex; + flex-wrap: wrap; + } + + .button { + --control-button-padding: 0px; + --margin: 0.6%; + --width: calc(100% / var(--items-per-row) - (var(--margin) * 2)); + width: var(--width); + height: var(--width); + margin: var(--margin); + } + + .thumbnail { + width: 100%; + padding-bottom: 100%; + margin: 0 6%; + background-size: 100%; + background-repeat: no-repeat; + background-position: center; + } + + .title { + font-size: 0.8rem; + position: absolute; + width: 100%; + line-height: 160%; + bottom: 0; + background-color: rgba(var(--rgb-card-background-color), 0.733); + } + + .title-source { + font-size: 0.8rem; + //position: absolute; + width: 100%; + line-height: 160%; + //bottom: 0; + //background-color: rgba(var(--rgb-card-background-color), 0.733); + } + `, + ]; + } +} + +customElements.define('stpc-media-browser-icons', MediaBrowserIcons); diff --git a/src/components/media-browser-list.ts b/src/components/media-browser-list.ts new file mode 100644 index 0000000..328bb4e --- /dev/null +++ b/src/components/media-browser-list.ts @@ -0,0 +1,172 @@ +// lovelace card imports. +import { css, html, LitElement, TemplateResult } from 'lit'; +import { property, state } from 'lit/decorators.js'; + +// our imports. +import { Store } from '../model/store'; +import { CardConfig } from '../types/cardconfig' +import { ContentItemParent } from '../types/soundtouchplus/contentitem'; +import { Section } from '../types/section'; +import { listStyle, ITEM_SELECTED, ITEM_SELECTED_WITH_HOLD } from '../constants'; +import { customEvent } from '../utils/utils'; +import { + itemsWithFallbacks, + renderMediaBrowserContentItem, + styleMediaBrowserItemBackgroundImage, + styleMediaBrowserItemTitle +} from '../utils/media-browser-utils'; + +export class MediaBrowserList extends LitElement { + + @property({ attribute: false }) store!: Store; + @property({ type: Array }) items!: ContentItemParent[]; + + @state() mousedownTimestamp!: number; + + private config!: CardConfig; + private section!: Section; + + + /** + * Initializes a new instance of the class. + */ + constructor() { + + super(); + this.mousedownTimestamp = 0; + } + + + /** + * Invoked on each update to perform rendering tasks. + * This method may return any value renderable by lit-html's `ChildPart` (typically a `TemplateResult`). + * Setting properties inside this method will *not* trigger the element to update. + */ + protected render(): TemplateResult | void { + + // set common references from application common storage area. + this.config = this.store.config; + this.section = this.store.section; + + // set title / source visibility based on selected section. + let hideTitle = true; + let hideSource = true; + let itemsPerRow = 1; + if (this.section == Section.PRESETS) { + itemsPerRow = this.config.presetBrowserItemsPerRow || 3; + hideTitle = this.config.presetBrowserItemsHideTitle || false; + hideSource = this.config.presetBrowserItemsHideSource || false; + } else if (this.section == Section.RECENTS) { + itemsPerRow = this.config.recentBrowserItemsPerRow || 3; + hideTitle = this.config.recentBrowserItemsHideTitle || false; + hideSource = this.config.recentBrowserItemsHideSource || false; + } else if (this.section == Section.PANDORA_STATIONS) { + itemsPerRow = this.config.pandoraBrowserItemsPerRow || 3; + hideTitle = this.config.pandoraBrowserItemsHideTitle || false; + hideSource = true; + } + + return html` + + + ${itemsWithFallbacks(this.items, this.config).map((item, index) => { + return html` + ${styleMediaBrowserItemBackgroundImage(item.thumbnail, index)} + this.buttonMediaBrowserItemClick(customEvent(ITEM_SELECTED, item))} + @mousedown=${() => this.buttonMediaBrowserItemMouseDown()} + + > +
${renderMediaBrowserContentItem(item.ContentItem, !item.thumbnail || !hideTitle, !hideSource)}
+
+ `; + })} +
+ `; + } + + + /** + * Event fired when a mousedown event takes place for a media browser item button. + * In this case, we will store the current time (in milliseconds) so that we can calculate + * the duration in the "click" event (occurs after a mouseup event). + * + * @param event Event arguments. + */ + private buttonMediaBrowserItemMouseDown(): boolean { + //console.log("media-browser-icons.buttonMediaBrowserItemMouseDown()"); + // store when the mouse down event took place. + this.mousedownTimestamp = Date.now(); + return true; + } + + + /** + * Event fired when a click event takes place for a media browser item button. + * + * In this case, we are looking to determine how long the mouse button was in the + * down position (e.g. the duration). If the duration was greater than 1500 milliseconds, + * then we will treat the event as a "click and hold" operation; otherwise, we will treat + * the event as a "click" operation. + * + * @param event Event arguments. + */ + private buttonMediaBrowserItemClick(event: CustomEvent): boolean { + // calculate the duration of the mouse down / up operation. + const duration = Date.now() - this.mousedownTimestamp; + this.mousedownTimestamp = 0; + //console.log("media-browser-icons.buttonClick()\nevent=%s\nmousedown duration=%s", JSON.stringify(event), JSON.stringify(duration)); + if (duration < 1500) { + //console.log("media-browser-icons.buttonClick()\nmousedown duration was less than 1500ms - dispatching ITEM_SELECTED event"); + return this.dispatchEvent(event); + } else { + //console.log("media-browser-icons.buttonClick()\nmousedown duration was greater than 1500ms - dispatching ITEM_SELECTED_WITH_HOLD event"); + return this.dispatchEvent(customEvent(ITEM_SELECTED_WITH_HOLD, event.detail)); + } + } + + + /** + * Style definitions used by this card section. + * + * --control-button-padding: 0px; // image with rounded corners + */ + static get styles() { + return [ + css` + .button { + --control-button-padding: 0px; + --icon-width: 94px; + height: 100px; + } + + .row { + display: flex; + } + + .thumbnail { + width: var(--icon-width); + height: var(--icon-width); + background-size: contain; + background-repeat: no-repeat; + background-position: left; + } + + .title { + font-size: 1.1rem; + align-self: center; + flex: 1; + } + `, + styleMediaBrowserItemTitle, + listStyle, + ]; + } +} + +customElements.define('stpc-media-browser-list', MediaBrowserList); diff --git a/src/constants.ts b/src/constants.ts new file mode 100644 index 0000000..b0a7834 --- /dev/null +++ b/src/constants.ts @@ -0,0 +1,51 @@ +import { css } from 'lit'; + +/** current version of the card. */ +export const CARD_VERSION = '1.0.0'; + +/** SoundTouchPlus integration domain identifier. */ +export const DOMAIN_SOUNDTOUCHPLUS = 'soundtouchplus'; + +/** media_player integration domain identifier. */ +export const DOMAIN_MEDIA_PLAYER = 'media_player'; + +/** prefix used for event dispatching to make them unique throughtout the system. */ +const dispatchPrefix = 'stpc-dispatch-event-'; + +/** uniquely identifies the progress started event. */ +export const PROGRESS_STARTED = dispatchPrefix + 'progress-started'; + +/** uniquely identifies the progress done event. */ +export const PROGRESS_DONE = dispatchPrefix + 'progress-done'; + +/** uniquely identifies the section selected event. */ +export const SECTION_SELECTED = dispatchPrefix + 'section-selected'; + +/** uniquely identifies the section selected event. */ +export const PANDORA_BROWSER_REFRESH = dispatchPrefix + 'pandora-browser-refresh'; + +/** identifies the media browser refresh event. */ +export const MEDIA_BROWSER_REFRESH = 'media-browser-refresh'; + +/** identifies the item selected event. */ +export const ITEM_SELECTED = 'item-selected'; + +/** identifies the item selected event. */ +export const ITEM_SELECTED_WITH_HOLD = 'item-selected-with-hold'; + +/** identifies the show section event. */ +export const SHOW_SECTION = 'show-section'; + +export const TV_BASE64_IMAGE = + 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAAAAXNSR0IArs4c6QAAAJZlWElmTU0AKgAAAAgABQESAAMAAAABAAEAAAEaAAUAAAABAAAASgEbAAUAAAABAAAAUgExAAIAAAARAAAAWodpAAQAAAABAAAAbAAAAAAAAABiAAAAAQAAAGIAAAABd3d3Lmlua3NjYXBlLm9yZwAAAAOgAQADAAAAAQABAACgAgAEAAAAAQAAAgCgAwAEAAAAAQAAAgAAAAAA+uiskAAAAAlwSFlzAAAPEgAADxIBIZvyMwAAAi1pVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDYuMC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyI+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+d3d3Lmlua3NjYXBlLm9yZzwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8dGlmZjpZUmVzb2x1dGlvbj45ODwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+OTg8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgrH52sKAAA/4klEQVR4Ae3dCZAc13nY8dfHzOwNYAHiJAACIMAD4iFRlE3JsSSrSrLiWLEdQ7FNy5KllBLHRcV27NiupFKoVBLfsUNVJVVWJNqMFCuCY7ssu2jZkgWVbFG2RJGmSIgkTuIGcew1uztHH/m+Hiw0A+wxs9Mz093zb2mJObpfv/frmXlfv379njEsCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggkAgBKxG5IBMI9JnA29520L3zzbn1VjW3xbeDET8IQjNgT7rF0oWP//bBCeEIM0ZifehnD67zRga22BWzRn54bCewi2GueuHYV6pXDx8+6GWsvBQHgcQLEAAk/hCRwawJ/MQv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AQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBGIQ+P9v6JX0ZgeS/gAAAABJRU5ErkJggg=='; +export const MUSIC_NOTES_BASE64_IMAGE = + 'data:image/png;base64,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AQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAIEGFvj/AdpNbG+v3HHWAAAAAElFTkSuQmCC'; + + +export const listStyle = css` + .list { + --mdc-theme-primary: var(--accent-color); + --mdc-list-vertical-padding: 0px; + overflow: hidden; + } +`; diff --git a/src/editor/base-editor.ts b/src/editor/base-editor.ts new file mode 100644 index 0000000..58b4052 --- /dev/null +++ b/src/editor/base-editor.ts @@ -0,0 +1,221 @@ +// lovelace card imports. +import { css, LitElement } from 'lit'; +import { property, state } from 'lit/decorators.js'; +import { fireEvent, HomeAssistant } from 'custom-card-helpers'; + +// our imports. +import { CardConfig } from '../types/cardconfig' +import { Store } from '../model/store' +import { MediaPlayer } from '../model/media-player'; +import { Section } from '../types/section'; +import { SourceList } from '../types/soundtouchplus/sourcelist' +import { SoundTouchPlusService } from '../services/soundtouchplus-service'; + +export abstract class BaseEditor extends LitElement { + + /** Home Assistant hass instance. */ + @property({ attribute: false }) hass!: HomeAssistant; + + /** Card configuration data. */ + @property({ attribute: false }) config!: CardConfig; + + /** Application common storage area. */ + @property({ attribute: false }) store!: Store; + + @state() section!: Section; + @state() sourceListLastUpdatedOn!: number; + + /** MediaPlayer instance created from the configuration entity id. */ + public player!: MediaPlayer; + + /** Date and time (in epoch format) of when the source list was last updated. */ + //public sourceListLastUpdatedOn!: number; + + /** SoundTouchPlus device source list. */ + public sourceList!: SourceList; + + /** SoundTouchPlus services instance. */ + public soundTouchPlusService!: SoundTouchPlusService; + + + + setConfig(config: CardConfig) { + this.config = JSON.parse(JSON.stringify(config)); + //console.log("base-editor.setConfig():\n%s", JSON.stringify(this.config, null, 2)); // prettyprint + } + + + /** + * Initializes a new instance of the class. + */ + constructor() { + + super(); + + if (!this.sourceListLastUpdatedOn) { + //console.log("base-editor.constructor() Initializing instance\nsourceListLastUpdatedOn=%s", this.sourceListLastUpdatedOn); + this.section = Section.PRESETS; + this.sourceListLastUpdatedOn = 1; + } else { + //console.log("base-editor.constructor() Already Initialized\nsourceListLastUpdatedOn=%s", this.sourceListLastUpdatedOn); + } + } + + + /** + * Creates the common services and data areas that are used by the various card editors. + * + * It is called by each section editor, since all of them inherit from BaseEditor. We + * will check for this, and only create the store one time. + * + * Note that this method cannot be called from `setConfig` method, as the `hass` property + * has not been set set! + */ + public createStore() { + + // is a player entity configured? if not, then don't bother. + if (!this.config.entity) { + return + } + + // create the store. + // we only need to do this once, as each editor section will call this from their render() methods. + if (!this.store) { + //console.log("base-editor.createStore() creating store\nconfig.entity=%s", this.config.entity); + this.store = new Store(this.hass, this.config, this, this.section, this.config.entity); + } else { + //console.log("base-editor.createStore() store already created\nconfig.entity=%s", this.config.entity); + } + + // set other references obtained from the store. + this.player = this.store.player; + this.section = this.store.section; + + //console.log("base-editor.createStore() player reference set - player:\n%s", JSON.stringify(this.config.entity,null,2)); + + // TODO - we could also get the source list from the media player attributes. + // TODO - note that it could be a limited list (versus ALL sources), based upon user configuration. + //this.player.attributes.source_list + + // // is this the first render? if so, then refresh the list. + // if (this.sourceListLastUpdatedOn == 1) { + // console.log("base-editor.createStore() calling updateSourceList()"); + // this.updateSourceList(this.player); + // } + } + + + static get styles() { + return css` + ha-svg-icon { + margin: 5px; + } + ha-control-button { + white-space: nowrap; + } + ha-control-button-group { + margin: 5px; + } + div { + margin-top: 20px; + } + `; + } + + + protected configChanged(changedConfig: CardConfig | undefined = undefined) { + + //console.log("base-editor.configChanged() - configuration has changed"); + + // if card configuration changes were supplied, then update the existing configuration. + if (changedConfig) { + this.config = { + ...this.config, + ...changedConfig, + }; + } + + // fire an event indicating that the configuration has changed. + fireEvent(this, 'config-changed', { config: this.config }); + + // request an update, which will force the card editor to re-render. + this.requestUpdate(); + } + + + //protected configChanged() { + // console.log("base-editor.configChanged() - configuration has changed"); + // fireEvent(this, 'config-changed', { config: this.config }); + // this.requestUpdate(); + //} + + + protected dispatchClose() { + return this.dispatchEvent(new CustomEvent('closed')); + } + + + ///** + // * Updates the sourceList with the most current list of sources from the SoundTouch device. + // * + // * This method is called when the section is initially displayed. + // */ + //private updateSourceList(player: MediaPlayer): void { + + // console.log("base-editor.updateSourceList() - player object:\n%s", JSON.stringify(player,null,2)); + + // // update the media list; we will force the `sourceListLastUpdatedOn` attribute + // // with the current epoch date (in seconds) so that the refresh is only triggered once. + // this.sourceListLastUpdatedOn = Date.now() / 1000; + + // // call the service to retrieve the media list. + // this.soundTouchPlusService.GetSourceList(player.id) + // .then(result => { + // this.sourceList = result; + // this.sourceListLastUpdatedOn = Date.now() / 1000; + // console.log("%c base-editor.render - updateSourceList AFTER update:\n %s=sourceListLastUpdatedOn", "color: green;", JSON.stringify(this.sourceListLastUpdatedOn)); + // this.requestUpdate(); + // }); + //} + + + public getSourceAccountsList(sourcePrefix: string): any { + + //console.log("base-editor.getSourceAccountsList() Getting source account options"); + + const result = []; + + if (this.player) { + //console.log("base-editor.getSourceAccountsList() Getting sources from player source_list attribute"); + this.player.attributes.source_list + for (const source of (this.player.attributes.source_list || [])) { + if (source.startsWith(sourcePrefix)) { + let value = source.replace(sourcePrefix, ''); + value = value.replace('(', ''); + value = value.replace(')', ''); + value = value.trim(); + result.push(value); + } + } + } + + //// add all pandora source accounts to the list. + //if (this.sourceList) { + // for (const sourceItem of (this.sourceList.SourceItems || [])) { + // if (sourceItem.Source == 'PANDORA') + // result.push(sourceItem.SourceAccount); + // } + //} + + // if no sources found, then add a dummy entry. + if (result.length == 0) { + //console.log("base-editor.getSourceAccountsList() No PANDORA sources in SoundTouch source list"); + result.push('No PANDORA sources in SoundTouch source list'); + } + + //console.log("base-editor.getSourceAccountsList() - source list:\n%s", JSON.stringify(result)); + + return result; + } + +} diff --git a/src/editor/editor-form.ts b/src/editor/editor-form.ts new file mode 100644 index 0000000..c9c8c51 --- /dev/null +++ b/src/editor/editor-form.ts @@ -0,0 +1,98 @@ +// lovelace card imports. +import { css, html, TemplateResult } from 'lit'; +import { property } from 'lit/decorators.js'; + +// our imports. +import { BaseEditor } from './base-editor'; +import { CardConfig } from '../types/cardconfig'; + +class Form extends BaseEditor { + + @property({ attribute: false }) schema!: unknown; + @property({ attribute: false }) data!: unknown; + @property() changed!: (ev: CustomEvent) => void; + + + /** + * Invoked on each update to perform rendering tasks. + * + * This method may return any value renderable by lit-html's `ChildPart` (typically a `TemplateResult`). + * Setting properties inside this method will *not* trigger the element to update. + */ + protected render(): TemplateResult { + + return html` + + `; + } + + + static get styles() { //: CSSResultGroup { + return css` + .root > * { + display: block; + } + .root > *:not([own-margin]):not(:last-child) { + margin-bottom: 0px; + } + ha-alert[own-margin] { + margin-bottom: 4px; + } + `; + } + + + /** + * Handles a "value-changed" event. + * This event is raised whenever a form value is changed in the UI. + * + * This will update the configuration with the changed value and re-render the + * card preview area. + */ + protected OnValueChanged(args: CustomEvent): void { + + //console.log("OnValueChanged (editor-form) - event:\n%s", JSON.stringify(args, null, 2)); + + // get the updated changes from event details. + const changedConfig = (args.detail.value as CardConfig); + + // call configuration changed method to update the existing config with our changes, + // fire an event that something has changed, and re-render the card preview. + this.configChanged(changedConfig); + } +} + + +/** + * Formats labels for each editable field in the supplied schema. + * + * It uses the value assigned to the "label" key as the title by default. + * If a label key is not supplied, then it uses the value assigned to the "name" key, + * and converts it to proper-case (e.g. "myFieldName" returns "My Field Name"). + * + * If a "help" key value is supplied, then it adds the value to the label surrounded + * by parenthesis (e.g. "My Field Name (this is the help value)". + */ +export function formatLabel({ help, label, name }: { name: string; help: string; label: string }) { + + // if label was supplied then just use it as-is. + if (label) { + return label + (help ? ` (${help})` : ''); + } + + // otherwise use the proper-case value of the name. + let unCamelCased = name.replace(/([A-Z])/g, ' $1'); + unCamelCased = unCamelCased.charAt(0).toUpperCase() + unCamelCased.slice(1); + + // if help key supplied, then add the help value in parenthesis. + return unCamelCased + (help ? ` (${help})` : ''); +} + + +customElements.define('stpc-editor-form', Form); diff --git a/src/editor/editor.ts b/src/editor/editor.ts new file mode 100644 index 0000000..1ccefdf --- /dev/null +++ b/src/editor/editor.ts @@ -0,0 +1,129 @@ +// lovelace card imports. +import { css, html, nothing, TemplateResult } from 'lit'; +import { state } from 'lit/decorators.js'; +import { choose } from 'lit/directives/choose.js'; + +// our imports. +import { BaseEditor } from './base-editor'; +import { Section } from '../types/section' +import { SECTION_SELECTED } from '../constants'; +import './editor-form'; +import './general-editor'; +import './pandora-browser-editor'; +import './preset-browser-editor'; +import './recent-browser-editor'; +import { dispatch } from '../utils/utils'; + +/** Configuration area editor sections enum. */ +enum ConfigArea { + GENERAL = 'General', + PRESET_BROWSER = 'Presets', + RECENT_BROWSER = 'Recents', + PANDORA_BROWSER = 'Pandora', +} + +/** Configuration area editor section keys array. */ +const { GENERAL, PRESET_BROWSER, RECENT_BROWSER, PANDORA_BROWSER } = ConfigArea; + +class CardEditor extends BaseEditor { + + @state() private configArea = GENERAL; + + /** + * Invoked on each update to perform rendering tasks. + * + * This method may return any value renderable by lit-html's `ChildPart` (typically a `TemplateResult`). + * Setting properties inside this method will *not* trigger the element to update. + */ + protected render(): TemplateResult { + + if (!this.section) { + this.section = Section.PLAYER; + } + + // if no sections are selected then select the defaults. + if (!this.config.sections || this.config.sections.length === 0) { + //console.log("editor.render() selecting all sections"); + this.config.sections = [Section.PRESETS, Section.RECENTS]; + } + + return html` + + ${[GENERAL, PRESET_BROWSER, RECENT_BROWSER, PANDORA_BROWSER].map( + (configArea) => html` + this.dispatchSection(configArea)} + > + ${configArea} + + `, + )} + + + ${this.subEditor()} + `; + } + + + private subEditor() { + + //console.log("subEditor()\n this.configArea=%s", this.configArea); + + // show the desired section editor. + return choose(this.configArea, [ + [ + GENERAL, + () => html``, + ], + [ + PRESET_BROWSER, + () => html``, + ], + [ + RECENT_BROWSER, + () => html``, + ], + [ + PANDORA_BROWSER, + () => html``, + ], + ]); + } + + + private dispatchSection(configArea: ConfigArea) { + + // show the section that we are editing. + let sectionNew = Section.PLAYER; + if (configArea == GENERAL) { + sectionNew = Section.PLAYER; + } else if (configArea == PRESET_BROWSER) { + sectionNew = Section.PRESETS; + } else if (configArea == RECENT_BROWSER) { + sectionNew = Section.RECENTS; + } else if (configArea == PANDORA_BROWSER) { + sectionNew = Section.PANDORA_STATIONS; + } + + //console.log("editor.dispatchSection()\n OLD configArea=%s, NEW configArea=%s\n OLD section=%s, NEW section=%s", JSON.stringify(this.configArea), JSON.stringify(configArea), JSON.stringify(this.section), JSON.stringify(sectionNew)); + + // show the section editor form. + this.configArea = configArea; + + // show the rendered section. + this.section = sectionNew; + dispatch(SECTION_SELECTED, sectionNew); + } + + + static get styles() { + return css` + ha-control-button[selected] { + --control-button-background-color: var(--primary-color); + } + `; + } +} + +customElements.define('stpc-editor', CardEditor); diff --git a/src/editor/general-editor.ts b/src/editor/general-editor.ts new file mode 100644 index 0000000..deb670e --- /dev/null +++ b/src/editor/general-editor.ts @@ -0,0 +1,118 @@ +// lovelace card imports. +import { css, html, TemplateResult } from 'lit'; + +// our imports. +import { BaseEditor } from './base-editor'; +import { Section } from '../types/section' +import { DOMAIN_MEDIA_PLAYER, DOMAIN_SOUNDTOUCHPLUS } from '../constants'; + +const CONFIG_SETTINGS_SCHEMA = [ + { + name: 'sections', + label: 'Card sections to enable', + help: 'unchecked items will not be shown', + required: false, + type: 'multi_select', + options: { + player: 'Player', + presets: 'Presets', + recents: 'Recently Played', + pandorastations: 'Pandora Stations', + }, + }, + { + name: 'entity', + label: 'SoundTouch device to retrieve data from', + help: 'required', + required: true, + selector: { + entity: { + multiple: false, + filter: { + domain: DOMAIN_MEDIA_PLAYER, + integration: DOMAIN_SOUNDTOUCHPLUS + } + } + }, + }, + { + name: 'title', + label: 'Card title text', + help: 'displayed at the top of the card above the section', + required: false, + type: 'string', + }, + { + name: 'width', + label: 'Width of the card', + help: 'in rem units; or "fill" for 100% width', + required: false, + type: 'string', + default: 35.15, + }, + { + name: 'height', + label: 'Height of the card', + help: 'in rem units; or "fill" for 100% height', + required: false, + type: 'string', + default: 35.15, + }, + { + name: 'replaceHttpWithHttpsForThumbnails', + label: "Replace HTTP with HTTPS for image url's", + required: false, + selector: { boolean: {} }, + }, +]; + + +class GeneralEditor extends BaseEditor { + + /** + * Invoked on each update to perform rendering tasks. + * + * This method may return any value renderable by lit-html's `ChildPart` (typically a `TemplateResult`). + * Setting properties inside this method will *not* trigger the element to update. + */ + protected render(): TemplateResult { + + //console.log("general-editor.render() Rendering card"); + + // create application common storage area. + super.createStore(); + + // render html. + return html` +
+ Settings that control the overall look and feel of the card +
+ + `; + } + + + /** + * Style definitions used by this TemplateResult. + */ + static get styles() { + return css` + .schema-title { + margin: 0.4rem 0; + text-align: left; + font-size: 1rem; + color: var(--secondary-text-color); + } + ha-formfield { + height: 26px; + } + `; + } +} + +customElements.define('stpc-general-editor', GeneralEditor); diff --git a/src/editor/pandora-browser-editor.ts b/src/editor/pandora-browser-editor.ts new file mode 100644 index 0000000..eefa812 --- /dev/null +++ b/src/editor/pandora-browser-editor.ts @@ -0,0 +1,156 @@ +// lovelace card imports. +import { css, html, TemplateResult } from 'lit'; + +// our imports. +import { BaseEditor } from './base-editor'; +import { Section } from '../types/section' +import { CardConfig } from '../types/cardconfig'; +import { PANDORA_BROWSER_REFRESH } from '../constants'; +import { dispatch } from '../utils/utils'; + + +const CONFIG_SETTINGS_SCHEMA = [ + { + name: 'pandoraSourceAccount', + label: 'User account used to connect to Pandora music service', + help: 'usually an email address', + required: true, + selector: { + select: { + multiple: false, + mode: "dropdown", + sort: true, + options: [] // dynamically loaded by getSourceAccountsList() method + } + } + }, + { + name: 'pandoraBrowserTitle', + label: 'Section title text', + help: 'displayed at the top of the section', + required: false, + type: 'string', + }, + { + name: 'pandoraBrowserSubTitle', + label: 'Section sub-title text', + help: 'displayed below the section title', + required: false, + type: 'string', + }, + { + name: 'pandoraBrowserItemsPerRow', + label: '# of items to display per row', + help: 'use 1 for list format', + required: true, + type: 'integer', + default: 3, + valueMin: 1, + valueMax: 12, + }, + { + name: 'pandoraBrowserItemsHideTitle', + label: 'Hide item row title text', + required: false, + selector: { boolean: {} }, + }, +]; + + +class PandoraSettingsEditor extends BaseEditor { + + /** + * Invoked on each update to perform rendering tasks. + * + * This method may return any value renderable by lit-html's `ChildPart` (typically a `TemplateResult`). + * Setting properties inside this method will *not* trigger the element to update. + */ + protected render(): TemplateResult { + + //console.log("pandora-browser-editor.render() Rendering card"); + + // create application common storage area. + this.section = Section.PANDORA_STATIONS; + super.createStore(); + + // update select options in configuration settings schema. + if (CONFIG_SETTINGS_SCHEMA[0]) { + if (CONFIG_SETTINGS_SCHEMA[0].selector) { + if (CONFIG_SETTINGS_SCHEMA[0].selector.select) { + + const result = this.getSourceAccountsList('Pandora '); + CONFIG_SETTINGS_SCHEMA[0].selector.select.options = result; + + // // if only 1 source account matched, then set the configuration value + // // if it has not been set, and fire the config-changed event to indicate + // // the configuration has changed. + // if ((!this.config.pandoraSourceAccount) && (result.length == 1)) { + // console.log("pandora-browser-editor.getSourceAccountsPandora() 1 account match; defaulting to account: %s", result[0]); + // this.config.pandoraSourceAccount = result[0]; + // console.log("pandora-browser-editor.getSourceAccountsPandora() calling configChanged"); + // this.configChanged(); + // console.log("pandora-browser-editor.getSourceAccountsPandora() dispatching media-browser-refresh event"); + // this.dispatchEvent(customEvent(MEDIA_BROWSER_REFRESH, 'PANDORA')); + // } + } + } + } + + // render html. + return html` +
+ Settings that control the Pandora section look and feel +
+ + `; + } + + + /** + * Style definitions used by this TemplateResult. + */ + static get styles() { + return css` + .schema-title { + margin: 0.4rem 0; + text-align: left; + font-size: 1rem; + color: var(--secondary-text-color); + } + `; + } + + + /** + * Handles a "value-changed" event. + * This event is raised whenever a form value is changed in the UI. + * + * This will check for user account value changed, and refresh the media list display if needed. + */ + protected OnValueChanged(args: CustomEvent): void { + + //console.log("OnValueChanged (pandora-browser-editor) - event:\n%s", JSON.stringify(args, null, 2)); + + // get the updated changes from event details. + const changedConfig = (args.detail.value as CardConfig); + + // did the pandora user account value change? + // if so, then dispatch the pandora browser refresh event to refresh the media list. + if (this.config.pandoraSourceAccount != changedConfig.pandoraSourceAccount) { + dispatch(PANDORA_BROWSER_REFRESH); + } + + // note that we do not need to call`this.configChanged()`, as that has already happened + // in the base class (editor-form) `OnValueChanged` event. + } + +} + +customElements.define('stpc-pandora-browser-editor', PandoraSettingsEditor); diff --git a/src/editor/preset-browser-editor.ts b/src/editor/preset-browser-editor.ts new file mode 100644 index 0000000..5b867c3 --- /dev/null +++ b/src/editor/preset-browser-editor.ts @@ -0,0 +1,96 @@ +// lovelace card imports. +import { css, html, TemplateResult } from 'lit'; + +// our imports. +import { BaseEditor } from './base-editor'; +import { Section } from '../types/section' + +const CONFIG_SETTINGS_SCHEMA = [ + { + name: 'presetBrowserTitle', + label: 'Section title text', + help: 'displayed at the top of the section', + required: false, + type: 'string', + }, + { + name: 'presetBrowserSubTitle', + label: 'Section sub-title text', + help: 'displayed below the section title', + required: false, + type: 'string', + }, + { + name: 'presetBrowserItemsPerRow', + label: '# of items to display per row', + help: 'use 1 for list format', + required: true, + type: 'integer', + default: 3, + valueMin: 1, + valueMax: 6, + }, + { + name: 'presetBrowserItemsHideTitle', + label: 'Hide item row title text', + required: false, + selector: { boolean: {} }, + }, + { + name: 'presetBrowserItemsHideSource', + label: 'Hide item row source title text', + help: 'if Title visible', + required: false, + selector: { boolean: {} }, + }, +]; + + +class PresetSettingsEditor extends BaseEditor { + + /** + * Invoked on each update to perform rendering tasks. + * + * This method may return any value renderable by lit-html's `ChildPart` (typically a `TemplateResult`). + * Setting properties inside this method will *not* trigger the element to update. + */ + protected render(): TemplateResult { + + //console.log("preset-browser-editor.render() Rendering card"); + + // create application common storage area. + this.section = Section.PRESETS; + super.createStore(); + + // render html. + return html` +
+ Settings that control the Preset Browser section look and feel +
+ + `; + } + + + /** + * Style definitions used by this TemplateResult. + */ + static get styles() { + return css` + .schema-title { + margin: 0.4rem 0; + text-align: left; + font-size: 1rem; + color: var(--secondary-text-color); + } + `; + } + +} + +customElements.define('stpc-preset-browser-editor', PresetSettingsEditor); diff --git a/src/editor/recent-browser-editor.ts b/src/editor/recent-browser-editor.ts new file mode 100644 index 0000000..8ca8089 --- /dev/null +++ b/src/editor/recent-browser-editor.ts @@ -0,0 +1,96 @@ +// lovelace card imports. +import { css, html, TemplateResult } from 'lit'; + +// our imports. +import { BaseEditor } from './base-editor'; +import { Section } from '../types/section' + +const CONFIG_SETTINGS_SCHEMA = [ + { + name: 'recentBrowserTitle', + label: 'Section title text', + help: 'displayed at the top of the section', + required: false, + type: 'string', + }, + { + name: 'recentBrowserSubTitle', + label: 'Section sub-title text', + help: 'displayed below the section title', + required: false, + type: 'string', + }, + { + name: 'recentBrowserItemsPerRow', + label: '# of items to display per row', + help: 'use 1 for list format', + required: true, + type: 'integer', + default: 3, + valueMin: 1, + valueMax: 12, + }, + { + name: 'recentBrowserItemsHideTitle', + label: 'Hide item row title text', + required: false, + selector: { boolean: {} }, + }, + { + name: 'recentBrowserItemsHideSource', + label: 'Hide item row source title text', + help: 'if Title visible', + required: false, + selector: { boolean: {} }, + }, +]; + + +class RecentSettingsEditor extends BaseEditor { + + /** + * Invoked on each update to perform rendering tasks. + * + * This method may return any value renderable by lit-html's `ChildPart` (typically a `TemplateResult`). + * Setting properties inside this method will *not* trigger the element to update. + */ + protected render(): TemplateResult { + + //console.log("preset-browser-editor.render() Rendering card"); + + // create application common storage area. + this.section = Section.RECENTS; + super.createStore(); + + // render html. + return html` +
+ Settings that control the Recent Browser section look and feel +
+ + `; + } + + + /** + * Style definitions used by this TemplateResult. + */ + static get styles() { + return css` + .schema-title { + margin: 0.4rem 0; + text-align: left; + font-size: 1rem; + color: var(--secondary-text-color); + } + `; + } + +} + +customElements.define('stpc-recent-browser-editor', RecentSettingsEditor); diff --git a/src/main.ts b/src/main.ts new file mode 100644 index 0000000..2fd8417 --- /dev/null +++ b/src/main.ts @@ -0,0 +1,43 @@ +// our imports. +import { CARD_VERSION } from './constants'; +import { Player } from './sections/player'; +import { Card } from './card'; +import { PandoraBrowser } from './sections/pandora-browser'; +import { PresetBrowser } from './sections/preset-browser'; +import { RecentBrowser } from './sections/recent-browser'; +import './components/ha-player'; + + +// Good source of help documentation on HA custom cards: +// https://gist.github.com/thomasloven/1de8c62d691e754f95b023105fe4b74b + + +// Display card version details in console, as well as a link to help docs. +console.groupCollapsed( + `%cSOUNDTOUCHPLUS-CARD ${CARD_VERSION} IS INSTALLED`, + "color: green; font-weight: bold" +); +console.log( + "Wiki Docs:", + "https://github.com/thlucas1/homeassistantcomponent_soundtouchplus/wiki" +); +console.groupEnd(); + + +// Register our card for the card picker dialog in the HA UI dashboard +// by adding it to the "window.customCards" array with attributes that +// describe the card and what it provides ("type" and "name" are required). +window.customCards.push({ + type: 'soundtouchplus-card', + name: 'SoundTouchPlus Card', + description: 'Home Assistant UI card that supports features unique to the SoundTouchPlus custom integration', + //documentationURL: 'https://github.com/thlucas1/homeassistantcomponent_soundtouchplus/wiki', + preview: true, +}); + +// add our card sections to the HA UI card picker dialog. +customElements.define('soundtouchplus-card', Card); +customElements.define('stpc-player', Player); +customElements.define('stpc-pandora-browser', PandoraBrowser); +customElements.define('stpc-preset-browser', PresetBrowser); +customElements.define('stpc-recent-browser', RecentBrowser); diff --git a/src/model/media-player.ts b/src/model/media-player.ts new file mode 100644 index 0000000..2d2675c --- /dev/null +++ b/src/model/media-player.ts @@ -0,0 +1,35 @@ +import { SoundTouchPlusHassEntity } from '../types/hassentity-soundtouchplus' +import { SoundTouchPlusHassEntityAttributes } from '../types/hassentityattributes-soundtouchplus' + +//const LOGPFX = "STPC - model/media-player." + +/** + * SoundTouchPlus MediaPlayer class. + * + * An instance of this class is created from Home Assistant state data that + * represents a SoundTouchPlusHassEntity type. It contains all attributes + * of a HASS entity and HASS MediaPlayer, as well as the custom attributes + * created by the SoundTouchPlus integration MediaPlayer. + */ +export class MediaPlayer { + + attributes: SoundTouchPlusHassEntityAttributes; + id: string; + name: string; + state: string; + + /** + * Initializes a new instance of the class. + * + * @param hassEntity Home Assistant state data that represents a SoundTouchPlusHassEntity type. + */ + constructor(hassEntity: SoundTouchPlusHassEntity) { + + // initialize storage. + this.id = hassEntity.entity_id; + this.state = hassEntity.state; + this.attributes = hassEntity.attributes; + this.name = this.attributes.friendly_name || ''; + + } +} diff --git a/src/model/store.ts b/src/model/store.ts new file mode 100644 index 0000000..bb78a4a --- /dev/null +++ b/src/model/store.ts @@ -0,0 +1,81 @@ +import { HomeAssistant } from 'custom-card-helpers'; +import { HassService } from '../services/hass-service'; +import { SoundTouchPlusService } from '../services/soundtouchplus-service'; +import { CardConfig } from '../types/cardconfig' +import { Section } from '../types/section' +import { MediaPlayer } from './media-player'; + +/** + * Card storage class instance. + * + * This class is used to store references to common services and data areas + * that are used by the various card sections. + * */ +export class Store { + + /** Home Assistant instance. */ + public hass: HomeAssistant; + + /** Card configuration data. */ + public config: CardConfig; + + /** Home Assistant services helper instance. */ + public hassService: HassService; + + /** SoundTouchPlus services helper instance. */ + public soundTouchPlusService: SoundTouchPlusService; + + /** SoundTouchPlus MediaPlayer object that will process requests. */ + public player: MediaPlayer; + + /** Currently selected section. */ + public section: Section; + + + /** + * Initializes a new instance of the class. + * + * @param hass Home Assistant instance. + * @param config Card configuration data. + * @param card Custom card instance. + * @param section Currently selected section of the card. + * @param playerId Entity ID of the SoundTouchPlus device that will process requests. + */ + constructor(hass: HomeAssistant, config: CardConfig, card: Element, section: Section, playerId: string) { + + // if hass property has not been set yet, then it's a programmer problem! + if (!hass) { + throw new Error("STPC0005 hass property has not been set!"); + } + + // initialize storage. + this.hass = hass; + this.config = config; + this.hassService = new HassService(hass, config, card, section); + this.soundTouchPlusService = new SoundTouchPlusService(hass, card, section); + this.player = this.getMediaPlayerObject(playerId); + this.section = section; + } + + + /** + * Returns a MediaPlayer object for the given entity id value. + * + * @param entityId Entity ID of the media player. + * @returns A MediaPlayer object. + * @throws Error if the specified entityId values does not exist in the hass.states data. + */ + public getMediaPlayerObject(entityId: string) { + + // does entity id exist in hass state data? + const hassEntity = Object.values(this.hass.states) + .filter((ent) => ent.entity_id.match(entityId)); + + // if not, then it's an error! + if (!hassEntity) + throw new Error("Entity id '" + JSON.stringify(entityId) + "' does not exist in the state machine"); + + // convert the hass state representation to a media player object. + return new MediaPlayer(hassEntity[0]); + } +} diff --git a/src/sections/pandora-browser.ts b/src/sections/pandora-browser.ts new file mode 100644 index 0000000..5b0727a --- /dev/null +++ b/src/sections/pandora-browser.ts @@ -0,0 +1,289 @@ +// lovelace card imports. +import { css, html, LitElement, TemplateResult } from 'lit'; +import { property } from 'lit/decorators.js'; +import { HomeAssistant } from 'custom-card-helpers'; + +// our imports. +import '../components/media-browser-list'; +import '../components/media-browser-icons'; +import { Store } from '../model/store'; +import { MediaPlayer } from '../model/media-player'; +import { customEvent } from '../utils/utils'; +import { formatPlayerInfo } from '../utils/media-browser-utils'; +import { ITEM_SELECTED, PANDORA_BROWSER_REFRESH } from '../constants'; +import { SoundTouchPlusService } from '../services/soundtouchplus-service'; +import { CardConfig } from '../types/cardconfig' +import { NavigateItem } from '../types/soundtouchplus/navigateitem'; +import { NavigateResponse } from '../types/soundtouchplus/navigateresponse'; + +//const LOGPFX = "STPC - sections/pandora-browser." + +export class PandoraBrowser extends LitElement { + + /** Home Assistant hass instance. */ + @property({ attribute: false }) public hass!: HomeAssistant; + + /** Application common storage area. */ + @property({ attribute: false }) store!: Store; + + /** Card configuration data. */ + private config!: CardConfig; + + /** MediaPlayer instance created from the configuration entity id. */ + private player!: MediaPlayer; + + /** Date and time (in epoch format) of when the media list was last updated. */ + private medialistLastUpdatedOn!: number; + + /** SoundTouchPlus device navigate response list. */ + private mediaList!: NavigateResponse; + + /** SoundTouchPlus services instance. */ + private soundTouchPlusService!: SoundTouchPlusService; + + + /** + * Initializes a new instance of the class. + */ + constructor() { + + // initialize storage. + super(); + + // force refresh first time. + this.medialistLastUpdatedOn = 1; + } + + + + /** + * Invoked on each update to perform rendering tasks. + * This method may return any value renderable by lit-html's `ChildPart` (typically a `TemplateResult`). + * Setting properties inside this method will *not* trigger the element to update. + */ + protected render(): TemplateResult | void { + + try { + + //console.log("pandora-browser.render()\n Rendering pandora browser html"); + + // set common references from application common storage area. + this.hass = this.store.hass + this.config = this.store.config; + this.player = this.store.player; + this.soundTouchPlusService = this.store.soundTouchPlusService; + + // if entity value not set then render an error card. + if (!this.player) + throw new Error("SoundTouchPlus media player entity id not configured"); + + // is this the first render? if so, then refresh the list. + if (this.medialistLastUpdatedOn == 1) + this.updateMediaList(this.player); + + //console.log(LOGPFX + "render()\n NavigateResponse.LastUpdatedOn=%s", this.mediaList ? this.mediaList.LastUpdatedOn : "unknown"); + //console.log(LOGPFX + "render()\n this.mediaList='%s'", JSON.stringify(this.mediaList)); + + // format title and sub-title details. + const title = formatPlayerInfo(this.player, this.config.pandoraBrowserTitle, this.medialistLastUpdatedOn); + const subtitle = formatPlayerInfo(this.player, this.config.pandoraBrowserSubTitle, this.medialistLastUpdatedOn); + + return html` + ${title ? html`
${title}
` : html``} + ${subtitle ? html`
${subtitle}
` : html``} + ${ + (() => { + if (!this.config.pandoraSourceAccount) { + return ( + html`
Pandora user account not configured
` + ) + } else if (!this.mediaList) { + return ( + html`
No items found
` + ) + } else if (this.config.pandoraBrowserItemsPerRow === 1) { + return ( + html` + ` + ) + } else { + return ( + html` + ` + ) + } + })() + } + `; + + //} catch (ex) { + + // // log exceptions. + // const exObj = (ex as Error); + // console.log("STPC - Error rendering pandora browser html\n Name = '%s'\nMessage = %s", exObj.name, exObj.message); + // return html`Could not render card - check console log`; + + } finally { + } + } + + + /** + * Invoked when the component is added to the document's DOM. + * + * In `connectedCallback()` you should setup tasks that should only occur when + * the element is connected to the document. The most common of these is + * adding event listeners to nodes external to the element, like a keydown + * event handler added to the window. + * + * Typically, anything done in `connectedCallback()` should be undone when the + * element is disconnected, in `disconnectedCallback()`. + */ + connectedCallback() { + + // invoke base class method. + super.connectedCallback(); + + // add event listeners for this control. + window.addEventListener(PANDORA_BROWSER_REFRESH, this.OnPandoraBrowserRefresh); + } + + + /** + * Invoked when the component is removed from the document's DOM. + * + * This callback is the main signal to the element that it may no longer be + * used. `disconnectedCallback()` should ensure that nothing is holding a + * reference to the element (such as event listeners added to nodes external + * to the element), so that it is free to be garbage collected. + * + * An element may be re-connected after being disconnected. + */ + disconnectedCallback() { + + // invoke base class method. + super.disconnectedCallback(); + + // remove event listeners for this control. + window.removeEventListener(PANDORA_BROWSER_REFRESH, this.OnPandoraBrowserRefresh); + } + + + /** + * Handles the `PANDORA_BROWSER_REFRESH` event. + * + * This will refresh the media list display. + * + * @param args Event arguments (none passed). + */ + protected OnPandoraBrowserRefresh = () => { + + //console.log("OnPandoraBrowserRefresh event handler - event data:\n%s", JSON.stringify(args, null, 2)); + + // force media list to refresh on next render. + this.medialistLastUpdatedOn = 1; + }; + + + /** + * Handles the `item-selected` event fired when a media browser item is clicked. + * + * This will select the media browser item for playing. + * + * @param args Event arguments that contain the media item that was clicked on. + */ + protected onItemSelected = (args: CustomEvent) => { + const mediaItem = args.detail; + this.PlayItem(mediaItem); + this.dispatchEvent(customEvent(ITEM_SELECTED, mediaItem)); + }; + + + /** + * Calls the SoundTouchPlusService PlayContentItem method to play media. + * + * @param mediaItem The NavigateItem item that was selected. + */ + private async PlayItem(mediaItem: NavigateItem) { + if (mediaItem.ContentItem) { + await this.soundTouchPlusService.PlayContentItem(this.player.id, mediaItem.ContentItem); + } + } + + + /** + * Updates the mediaList with the most current list of pandora station items from the + * SoundTouch device. + * + * This method is called when the section is initially displayed, as well as when + * a refresh request is initiated by the user. + */ + private updateMediaList(player: MediaPlayer): void { + + // update the media list; we will force the `medialistLastUpdatedOn` attribute + // with the current epoch date (in seconds) so that the refresh is only triggered once. + this.medialistLastUpdatedOn = Date.now() / 1000; + + // was a user account configured? + if (!this.config.pandoraSourceAccount) { + //console.log("pandora-browser.updateMediaList() - source account not configured!"); + return; + } + + // call the service to retrieve the media list. + this.soundTouchPlusService.MusicServiceStationList(player.id, "PANDORA", this.config.pandoraSourceAccount, "stationName") + .then(result => { + this.mediaList = result; + this.medialistLastUpdatedOn = result.LastUpdatedOn || 0; + console.log("%c pandora-browser render - updateMediaList check info AFTER update:\n %s=medialistLastUpdatedOn", "color: green;", JSON.stringify(this.medialistLastUpdatedOn)); + this.requestUpdate(); + }); + } + + + /** + * style definitions used by this section. + * */ + static get styles() { + return css` + //:host { + // display: flex; + // justify-content: space-between; + // padding: 0.5rem; + //} + + .title { + margin: 0.1rem 0; + text-align: center; + font-weight: bold; + font-size: 1.0rem; + color: var(--secondary-text-color); + } + + .subtitle { + margin: 0.1rem 0; + text-align: center; + font-weight: normal; + font-size: 0.85rem; + color: var(--secondary-text-color); + } + + *[hide] { + display: none; + } + + .no-items { + text-align: center; + margin-top: 2rem; + } + `; + } +} \ No newline at end of file diff --git a/src/sections/player.ts b/src/sections/player.ts new file mode 100644 index 0000000..f309096 --- /dev/null +++ b/src/sections/player.ts @@ -0,0 +1,118 @@ +// lovelace card imports. +import { css, html, LitElement, nothing } from 'lit'; +import { property } from 'lit/decorators.js'; + +// our imports. +import { Store } from '../model/store'; +import { CardConfig } from '../types/cardconfig' +import { MUSIC_NOTES_BASE64_IMAGE, TV_BASE64_IMAGE } from '../constants'; +import { MediaPlayer } from '../model/media-player'; + +export class Player extends LitElement { + + @property({ attribute: false }) store!: Store; + + private config!: CardConfig; + private player!: MediaPlayer; + + render() { + + this.config = this.store.config; + this.player = this.store.player; + + return html` +
+
+
+ `; + } + + private artworkStyle() { + return `${this.getBackgroundImage()}; min-height: 5rem`; + } + + private getBackgroundImage() { + const fallbackImage = + this.config.fallbackArtwork ?? + (this.player.attributes.media_title === 'TV' ? TV_BASE64_IMAGE : MUSIC_NOTES_BASE64_IMAGE); + const fallbackBackgroundUrl = `url(${fallbackImage})`; + const image = this.getArtworkImage(); + if (image) { + return `background-image: url(${image.entityImage}), ${fallbackBackgroundUrl}${ + image.sizePercentage ? `; background-size: ${image.sizePercentage}%` : '' + }`; + } else { + return `background-image: ${fallbackBackgroundUrl}`; + } + } + + private getArtworkImage() { + const prefix = ''; + const { entity_picture } = this.player.attributes; + const entityImage = entity_picture ? prefix + entity_picture : entity_picture; + const sizePercentage = undefined; + return { entityImage, sizePercentage }; + } + + static get styles() { + return css` + .hoverable:focus, + .hoverable:hover { + color: var(--accent-color); + } + + .hoverable:active { + color: var(--primary-color); + } + + .container { + display: grid; + grid-template-columns: 100%; + grid-template-rows: min-content auto min-content; + grid-template-areas: + 'header' + 'artwork' + 'controls'; + min-height: 100%; + background-position: center; + background-repeat: no-repeat; + background-size: cover; + } + + .header { + grid-area: header; + margin: 0.75rem 3.25rem; + padding: 0.5rem; + } + + .controls { + grid-area: controls; + overflow-y: auto; + margin: 0.25rem; + padding: 0.5rem; + } + + .artwork { + grid-area: artwork; + align-self: center; + flex-grow: 1; + flex-shrink: 0; + width: 100%; + height: 100%; + min-height: 5rem; + background-position: center; + background-repeat: no-repeat; + background-size: contain; + } + + *[hide] { + display: none; + } + + *[background] { + background-color: rgba(var(--rgb-card-background-color), 0.9); + border-radius: 10px; + } + `; + } +} diff --git a/src/sections/preset-browser.ts b/src/sections/preset-browser.ts new file mode 100644 index 0000000..4f00b1c --- /dev/null +++ b/src/sections/preset-browser.ts @@ -0,0 +1,265 @@ +// lovelace card imports. +import { css, html, LitElement, TemplateResult } from 'lit'; +import { property } from 'lit/decorators.js'; +import { HomeAssistant } from 'custom-card-helpers'; + +// our imports. +import '../components/media-browser-list'; +import '../components/media-browser-icons'; +import { Store } from '../model/store'; +import { customEvent } from '../utils/utils'; +import { formatPlayerInfo } from '../utils/media-browser-utils'; +import { MediaPlayer } from '../model/media-player'; +import { ITEM_SELECTED, ITEM_SELECTED_WITH_HOLD } from '../constants'; +import { SoundTouchPlusService } from '../services/soundtouchplus-service'; +import { CardConfig } from '../types/cardconfig' +import { Preset } from '../types/soundtouchplus/preset'; +import { PresetList } from '../types/soundtouchplus/presetlist'; + +//const LOGPFX = "STPC - sections/preset-browser." + +export class PresetBrowser extends LitElement { + + /** Home Assistant hass instance. */ + @property({ attribute: false }) public hass!: HomeAssistant; + + /** Application common storage area. */ + @property({ attribute: false }) store!: Store; + + /** Card configuration data. */ + private config!: CardConfig; + + /** MediaPlayer instance created from the configuration entity id. */ + private player!: MediaPlayer; + + /** Date and time (in epoch format) of when the media list was last updated. */ + private medialistLastUpdatedOn!: number; + + /** SoundTouchPlus device preset list. */ + private mediaList!: PresetList; + + /** SoundTouchPlus services instance. */ + private soundTouchPlusService!: SoundTouchPlusService; + + + /** + * Initializes a new instance of the class. + */ + constructor() { + + // initialize storage. + super(); + + // force refresh first time. + this.medialistLastUpdatedOn = 1; + } + + + /** + * Invoked on each update to perform rendering tasks. + * This method may return any value renderable by lit-html's `ChildPart` (typically a `TemplateResult`). + * Setting properties inside this method will *not* trigger the element to update. + * + * Note the "@item-selected-with-hold" event handler on list generator below. This allows for a + * "click and hold" functionality to allow a preset slot to be "Set" to the currently playing media. + */ + protected render(): TemplateResult | void { + + try { + + //console.log(LOGPFX + "render()\n Rendering preset browser html"); + + // set common references from application common storage area. + this.hass = this.store.hass + this.config = this.store.config; + this.player = this.store.player; + this.soundTouchPlusService = this.store.soundTouchPlusService; + + // if entity value not set then render an error card. + if (!this.player) + throw new Error("SoundTouchPlus media player entity id not configured"); + + // was the media player preset list updated? + const playerLastUpdatedOn = (this.player.attributes.soundtouchplus_presets_lastupdated || 0); + console.log("%c preset-browser render - updateMediaList check info BEFORE update:\n %s=playerLastUpdatedOn\n %s=medialistLastUpdatedOn", "color: green;", JSON.stringify(playerLastUpdatedOn), JSON.stringify(this.medialistLastUpdatedOn)); + if ((playerLastUpdatedOn != this.medialistLastUpdatedOn) && (this.medialistLastUpdatedOn > 0)) + this.updateMediaList(this.player); + + //console.log(LOGPFX + "render()\n PresetList.LastUpdatedOn=%s", this.mediaList ? this.mediaList.LastUpdatedOn : "unknown"); + //console.log(LOGPFX + "render()\n this.mediaList='%s'", JSON.stringify(this.mediaList)); + + // format title and sub-title details. + const title = formatPlayerInfo(this.player, this.config.presetBrowserTitle); + const subtitle = formatPlayerInfo(this.player, this.config.presetBrowserSubTitle); + + return html` + ${title ? html`
${title}
` : html``} + ${subtitle ? html`
${subtitle}
` : html``} + ${ + (() => { + if (!this.mediaList) { + //console.log("%c render() !this.mediaList.Presets", "color: green;"); + return ( + html`
No presets found
` + ) + } else if (this.config.presetBrowserItemsPerRow === 1) { + //console.log("%c render() this.config.presetBrowserItemsPerRow === 1", "color: green;"); + return ( + html` + ` + ) + } else { + //console.log("%c render() this.config.presetBrowserItemsPerRow > 1", "color: green;"); + return ( + html` + ` + ) + } + })() + } + `; + + //} catch (ex) { + + // // log exceptions. + // const exObj = (ex as Error); + // console.log("STPC - Error rendering preset browser html\n Name = '%s'\nMessage = %s", exObj.name, exObj.message); + // return html`Could not render card - check console log`; + + } finally { + } + } + + + /** + * Handles the `item-selected` event fired when a media browser item is clicked. + * + * This will select the media browser item for playing. + * + * @param args Event arguments that contain the media item that was clicked on. + */ + protected OnItemSelected = (args: CustomEvent) => { + const mediaItem = args.detail; + this.SelectPreset(mediaItem); + this.dispatchEvent(customEvent(ITEM_SELECTED, mediaItem)); + }; + + + /** + * Handles the `item-selected-with-hold` event fired when a media browser item is clicked and held. + * + * This will set the selected preset item to the currently playing track. + * + * @param args Event arguments that contain the media item that was clicked on. + */ + protected OnItemSelectedWithHold = (args: CustomEvent) => { + const mediaItem = args.detail; + this.StorePreset(mediaItem); + this.dispatchEvent(customEvent(ITEM_SELECTED_WITH_HOLD, mediaItem)); + }; + + + /** + * Calls the SoundTouchPlusService RemoteKeyPress method to select a preset for play. + * + * @param mediaItem The Preset item that was selected. + */ + private async SelectPreset(mediaItem: Preset) { + if (mediaItem.PresetId) { + await this.soundTouchPlusService.RemoteKeyPress(this.player.id, "PRESET_" + JSON.stringify(mediaItem.PresetId), "release"); + } + } + + + /** + * Calls the SoundTouchPlusService RemoteKeyPress method to store a preset. + * + * @param mediaItem The Preset item that was selected. + */ + private async StorePreset(mediaItem: Preset) { + if (mediaItem.PresetId) { + await this.soundTouchPlusService.RemoteKeyPress(this.player.id, "PRESET_" + JSON.stringify(mediaItem.PresetId), "press"); + } + } + + + /** + * Updates the `mediaList` attribute with the most current list of presets from + * the SoundTouch device. + * + * This method is called when the section is initially displayed, as well as when + * a preset updated event occurs for the media player. This can be driven from + * the SoundTouch App (e.g. when a preset is stored in the app), as well as when + * a physical preset is stored on the device (e.g. press and hold a preset button). + */ + private updateMediaList(player: MediaPlayer): void { + + // update our media list; we will force the `medialistLastUpdatedOn` attribute to + // match the device `soundtouchplus_presets_lastupdated` attribute so that the + // refresh is only triggered once on the attribute change (or initial request). + this.medialistLastUpdatedOn = player.attributes.soundtouchplus_presets_lastupdated || 0; + + // call the service to retrieve the media list. + this.soundTouchPlusService.PresetList(player.id, true) + .then(result => { + //if (player.attributes.media_title == 'I Need You') { // TEST TODO test for invalid lastupdatedon + // console.log("updateMediaList() - resetting result.LastUpdatedOn to undefined TEST TODO REMOVE ME"); + // result.LastUpdatedOn = undefined; // TEST TODO + //} // TEST TODO + this.mediaList = result; + this.medialistLastUpdatedOn = result.LastUpdatedOn || 0; + const playerLastUpdatedOn = (this.player.attributes.soundtouchplus_presets_lastupdated || 0); + console.log("%c preset-browser render - updateMediaList check info AFTER update:\n %s=playerLastUpdatedOn\n %s=medialistLastUpdatedOn", "color: green;", JSON.stringify(playerLastUpdatedOn), JSON.stringify(this.medialistLastUpdatedOn)); + this.requestUpdate(); + }); + } + + + /** + * style definitions used by this section. + * */ + static get styles() { + return css` + //:host { + // display: flex; + // justify-content: space-between; + // padding: 0.5rem; + //} + + .title { + margin: 0.1rem 0; + text-align: center; + font-weight: bold; + font-size: 1.0rem; + color: var(--secondary-text-color); + } + + .subtitle { + margin: 0.1rem 0; + text-align: center; + font-weight: normal; + font-size: 0.85rem; + color: var(--secondary-text-color); + } + + *[hide] { + display: none; + } + + .no-items { + text-align: center; + margin-top: 2rem; + } + `; + } +} \ No newline at end of file diff --git a/src/sections/recent-browser.ts b/src/sections/recent-browser.ts new file mode 100644 index 0000000..08b9235 --- /dev/null +++ b/src/sections/recent-browser.ts @@ -0,0 +1,227 @@ +// lovelace card imports. +import { css, html, LitElement, TemplateResult } from 'lit'; +import { property } from 'lit/decorators.js'; +import { HomeAssistant } from 'custom-card-helpers'; + +// our imports. +import '../components/media-browser-list'; +import '../components/media-browser-icons'; +import { Store } from '../model/store'; +import { customEvent } from '../utils/utils'; +import { formatPlayerInfo } from '../utils/media-browser-utils'; +import { MediaPlayer } from '../model/media-player'; +import { ITEM_SELECTED } from '../constants'; +import { SoundTouchPlusService } from '../services/soundtouchplus-service'; +import { CardConfig } from '../types/cardconfig' +import { Recent } from '../types/soundtouchplus/recent'; +import { RecentList } from '../types/soundtouchplus/recentlist'; + +//const LOGPFX = "STPC - sections/recent-browser." + +export class RecentBrowser extends LitElement { + + /** Home Assistant hass instance. */ + @property({ attribute: false }) public hass!: HomeAssistant; + + /** Application common storage area. */ + @property({ attribute: false }) store!: Store; + + /** Card configuration data. */ + private config!: CardConfig; + + /** MediaPlayer instance created from the configuration entity id. */ + private player!: MediaPlayer; + + /** Date and time (in epoch format) of when the media list was last updated. */ + private medialistLastUpdatedOn!: number; + + /** SoundTouchPlus device recent list. */ + private recentList!: RecentList; + + /** SoundTouchPlus services instance. */ + private soundTouchPlusService!: SoundTouchPlusService; + + + /** + * Initializes a new instance of the class. + */ + constructor() { + + // initialize storage. + super(); + + // force refresh first time. + this.medialistLastUpdatedOn = 1; + } + + + /** + * Invoked on each update to perform rendering tasks. + * This method may return any value renderable by lit-html's `ChildPart` (typically a `TemplateResult`). + * Setting properties inside this method will *not* trigger the element to update. + */ + protected render(): TemplateResult | void { + + try { + + //console.log(LOGPFX + "render()\n Rendering recent browser html"); + + // set common references from application common storage area. + this.hass = this.store.hass + this.config = this.store.config; + this.player = this.store.player; + this.soundTouchPlusService = this.store.soundTouchPlusService; + + // if entity value not set then render an error card. + if (!this.player) + throw new Error("SoundTouchPlus media player entity id not configured"); + + // was the media player recent list updated? + const playerLastUpdatedOn = (this.player.attributes.soundtouchplus_recents_lastupdated || 0); + console.log("%c recent-browser render - updateMediaList check info BEFORE update:\n %s=playerLastUpdatedOn\n %s=medialistLastUpdatedOn", "color: green;", JSON.stringify(playerLastUpdatedOn), JSON.stringify(this.medialistLastUpdatedOn)); + if ((playerLastUpdatedOn != this.medialistLastUpdatedOn) && (this.medialistLastUpdatedOn > 0)) + this.updateMediaList(this.player); + + //console.log(LOGPFX + "render()\n RecentList.LastUpdatedOn=%s", this.recentList ? this.recentList.LastUpdatedOn : "unknown"); + //console.log(LOGPFX + "render()\n this.recentList='%s'", JSON.stringify(this.recentList)); + + // format title and sub-title details. + const title = formatPlayerInfo(this.player, this.config.recentBrowserTitle); + const subtitle = formatPlayerInfo(this.player, this.config.recentBrowserSubTitle); + + return html` + ${title ? html`
${title}
` : html``} + ${subtitle ? html`
${subtitle}
` : html``} + ${ + (() => { + if (!this.recentList) { + //console.log("%c render() !this.recentList.Recents", "color: green;"); + return ( + html`
No recently played items found
` + ) + } else if (this.config.recentBrowserItemsPerRow === 1) { + //console.log("%c render() this.config.recentBrowserItemsPerRow === 1", "color: green;"); + return ( + html` + ` + ) + } else { + //console.log("%c render() this.config.recentBrowserItemsPerRow > 1", "color: green;"); + return ( + html` + ` + ) + } + })() + } + `; + + //} catch (ex) { + + // // log exceptions. + // const exObj = (ex as Error); + // console.log("STPC - Error rendering recent browser html\n Name = '%s'\nMessage = %s", exObj.name, exObj.message); + // return html`Could not render card - check console log`; + + } finally { + } + } + + + /** + * Handles the `item-selected` event fired when a media browser item is clicked. + * This will select the media browser item for playing. + * + * @param args Event arguments that contain the media item that was clicked on. + */ + protected OnItemSelected = (args: CustomEvent) => { + const mediaItem = args.detail; + this.PlayItem(mediaItem); + this.dispatchEvent(customEvent(ITEM_SELECTED, mediaItem)); + }; + + + /** + * Calls the SoundTouchPlusService PlayContentItem method to play media. + * + * @param mediaItem The Recent item that was selected. + */ + private async PlayItem(mediaItem: Recent) { + if (mediaItem.ContentItem) { + await this.soundTouchPlusService.PlayContentItem(this.player.id, mediaItem.ContentItem); + } + } + + + /** + * Updates the `recentList` attribute with the most current list of recents from + * the SoundTouch device. + * + * This method is called when the section is initially displayed, as well as when + * a recent updated event occurs for the media player. + */ + private updateMediaList(player: MediaPlayer): void { + + // update our media list; we will force the `medialistLastUpdatedOn` attribute to + // match the device `soundtouchplus_recents_lastupdated` attribute so that the + // refresh is only triggered once on the attribute change (or initial request). + this.medialistLastUpdatedOn = player.attributes.soundtouchplus_recents_lastupdated || 0; + + // call the service to retrieve the media list. + this.soundTouchPlusService.RecentList(player.id) + .then(result => { + this.recentList = result; + this.medialistLastUpdatedOn = result.LastUpdatedOn || 0; + const playerLastUpdatedOn = (this.player.attributes.soundtouchplus_recents_lastupdated || 0); + console.log("%c recent-browser render - updateMediaList check info AFTER update:\n %s=playerLastUpdatedOn\n %s=medialistLastUpdatedOn", "color: green;", JSON.stringify(playerLastUpdatedOn), JSON.stringify(this.medialistLastUpdatedOn)); + this.requestUpdate(); + }); + } + + + /** + * style definitions used by this section. + * */ + static get styles() { + return css` + //:host { + // display: flex; + // justify-content: space-between; + // padding: 0.5rem; + //} + + .title { + margin: 0.1rem 0; + text-align: center; + font-weight: bold; + font-size: 1.0rem; + color: var(--secondary-text-color); + } + + .subtitle { + margin: 0.1rem 0; + text-align: center; + font-weight: normal; + font-size: 0.85rem; + color: var(--secondary-text-color); + } + + *[hide] { + display: none; + } + + .no-items { + text-align: center; + margin-top: 2rem; + } + `; + } +} \ No newline at end of file diff --git a/src/services/hass-service.ts b/src/services/hass-service.ts new file mode 100644 index 0000000..5e699aa --- /dev/null +++ b/src/services/hass-service.ts @@ -0,0 +1,96 @@ +import { HomeAssistant } from 'custom-card-helpers'; +import { MediaPlayerItem, TemplateResult } from '../types'; +import { ServiceCallRequest } from 'custom-card-helpers/dist/types'; +import { PROGRESS_DONE, PROGRESS_STARTED } from '../constants'; +import { MediaPlayer } from '../model/media-player'; +import { HassEntity } from 'home-assistant-js-websocket'; +import { customEvent } from '../utils/utils'; +import { CardConfig } from '../types/cardconfig' +import { Section } from '../types/section' + +export class HassService { + + /** Home Assistant instance. */ + private readonly hass: HomeAssistant; + + /** Card configuration data. */ + private readonly config: CardConfig; + + /** Custom card instance. */ + private readonly card: Element; + + /** Currently selected section of the card. */ + private readonly section: Section; + + + /** + * Initializes a new instance of the class. + * + * @param hass Home Assistant instance. + * @param config Card configuration data. + * @param card Custom card instance. + * @param section Currently selected section of the card. + */ + constructor(hass: HomeAssistant, config: CardConfig, card: Element, section: Section) { + this.hass = hass; + this.config = config; + this.card = card; + this.section = section; + } + + + async callMediaService(service: string, inOptions: ServiceCallRequest['serviceData']) { + + try { + + // show the progress indicator on the main card. + this.card.dispatchEvent(customEvent(PROGRESS_STARTED, { section: this.section })); + + await this.hass.callService('media_player', service, inOptions); + + } finally { + + // hide the progress indicator on the main card. + this.card.dispatchEvent(customEvent(PROGRESS_DONE)); + } + } + + + async browseMedia(mediaPlayer: MediaPlayer, media_content_type?: string, media_content_id?: string) { + const mediaPlayerItem = await this.hass.callWS({ + type: 'media_player/browse_media', + entity_id: mediaPlayer.id, + media_content_id, + media_content_type, + }); + if (this.config.replaceHttpWithHttpsForThumbnails) { + mediaPlayerItem.children = mediaPlayerItem.children?.map((child) => ({ + ...child, + thumbnail: child.thumbnail?.replace('http://', 'https://'), + })); + } + return mediaPlayerItem; + } + + + async getRelatedEntities(player: MediaPlayer, ...entityTypes: string[]) { + return new Promise(async (resolve, reject) => { + const subscribeMessage = { + type: 'render_template', + template: "{{ device_entities(device_id('" + player.id + "')) }}", + }; + try { + const unsubscribe = await this.hass.connection.subscribeMessage((response) => { + unsubscribe(); + resolve( + response.result + .filter((item: string) => entityTypes.some((type) => item.includes(type))) + .map((item) => this.hass.states[item]), + ); + }, subscribeMessage); + } catch (e) { + reject(e); + } + }); + } +} diff --git a/src/services/soundtouchplus-service.ts b/src/services/soundtouchplus-service.ts new file mode 100644 index 0000000..44cd12b --- /dev/null +++ b/src/services/soundtouchplus-service.ts @@ -0,0 +1,321 @@ +// lovelace card imports. +import { HomeAssistant } from 'custom-card-helpers'; +import { ServiceCallRequest } from 'custom-card-helpers/dist/types'; + +// our imports. +import { PROGRESS_DONE, PROGRESS_STARTED, DOMAIN_SOUNDTOUCHPLUS } from '../constants'; +import { customEvent } from '../utils/utils'; +import { ContentItem } from '../types/soundtouchplus/contentitem'; +import { NavigateResponse } from '../types/soundtouchplus/navigateresponse'; +import { PresetList } from '../types/soundtouchplus/presetlist'; +import { RecentList } from '../types/soundtouchplus/recentlist'; +import { SourceList } from '../types/soundtouchplus/sourcelist'; +import { Section } from '../types/section'; +import { ServiceCallResponse } from '../types/servicecallresponse'; + +const LOGPFX = "STPC - services/soundtouchplus-service." + + +/** SoundTouchPlus custom services provider class. */ +export class SoundTouchPlusService { + + /** Home Assistant instance. */ + private readonly hass: HomeAssistant; + + /** Custom card instance. */ + private readonly card: Element; + + /** Currently selected section of the card. */ + private readonly section: Section; + + + /** + * Initializes a new instance of the class. + * + * @param hass HomeAssistant instance. + * @param card Parent custom card instance. + * @param section Currently selected section of the card. + */ + constructor(hass: HomeAssistant, card: Element, section: Section) { + + // initialize storage. + this.hass = hass; + this.card = card; + this.section = section; + } + + + /** + * Calls the specified SoundTouchPlus service, passing it the specified parameters. + * + * @param serviceRequest Service request instance that contains the service to call and its parameters. + */ + public async CallService(serviceRequest: ServiceCallRequest): Promise { + + try { + + console.log("%c" + LOGPFX + "CallService()\n Calling service '%s' (no response)\n%s", "color: orange;", serviceRequest.service, JSON.stringify(serviceRequest,null,2)); + + // show the progress indicator on the main card. + this.card.dispatchEvent(customEvent(PROGRESS_STARTED, { section: this.section })); + + // call the service. + await this.hass.callService( + serviceRequest.domain, + serviceRequest.service, + serviceRequest.serviceData, + serviceRequest.target, + ) + + } finally { + + // hide the progress indicator on the main card. + this.card.dispatchEvent(customEvent(PROGRESS_DONE)); + } + } + + + /** + * Calls the specified SoundTouchPlus service and returns response data that is generated by the + * service. The service is called via a script, as there is currently no way to return service + * response data from a call to "hass.callService()" (as of 2024/04/26). + * + * @param serviceRequest Service request instance that contains the service to call and its parameters. + * @returns Response data, in the form of a Record (e.g. dictionary). + */ + public async CallServiceWithResponse(serviceRequest: ServiceCallRequest): Promise { + + try { + + console.log("%c" + LOGPFX + "CallServiceWithResponse()\n Calling service '%s' (with response)\n%s", "color: orange;", serviceRequest.service, JSON.stringify(serviceRequest, null, 2)); + + // show the progress indicator on the main card. + this.card.dispatchEvent(customEvent(PROGRESS_STARTED, { section: this.section })); + + // call the service as a script. + const serviceResponse = await this.hass.connection.sendMessagePromise({ + type: "execute_script", + sequence: [{ + "service": serviceRequest.domain + "." + serviceRequest.service, + "data": serviceRequest.serviceData, + "target": serviceRequest.target, + "response_variable": "service_result" + }, + { + "stop": "done", + "response_variable": "service_result" + }] + }); + + //console.log(LOGPFX + "CallServiceWithResponse()\n Service Response:\n%s", JSON.stringify(serviceResponse.response)); + + // return the service response data or an empty dictionary if no response data was generated. + return JSON.stringify(serviceResponse.response) + + } finally { + + // hide the progress indicator on the main card. + this.card.dispatchEvent(customEvent(PROGRESS_DONE)); + } + } + + + /** + * Retrieves the list of sources defined to the device. + * + * @param entityId Entity ID of the SoundTouchPlus device that will process the request (e.g. "media_player.soundtouch_livingroom"). + * @returns A SourceList object. + */ + public async GetSourceList(entityId: string): Promise { + + try { + + // create service request. + const serviceRequest: ServiceCallRequest = { + domain: DOMAIN_SOUNDTOUCHPLUS, + service: 'get_source_list', + serviceData: { + entity_id: entityId, + } + }; + + // call the service, and convert the response to a type. + const response = await this.CallServiceWithResponse(serviceRequest); + const responseObj = JSON.parse(response) as SourceList + + // set the LastUpdatedOn value to epoch (number of seconds), as the + // service does not provide this field (but we need it for media list processing). + responseObj.LastUpdatedOn = Date.now() / 1000 + return responseObj; + + } finally { + } + } + + + /** + * Retrieves the list of stored stations from the specified music service(e.g. PANDORA, etc). + * + * @param entityId Entity ID of the SoundTouchPlus device that will process the request (e.g. "media_player.soundtouch_livingroom"). + * @param source Music service source to navigate(e.g. 'PANDORA', etc); the value is case -sensitive, and should normally be UPPER case. + * @param sourceAccount Music service source account (e.g. the music service user-id). Default is none. + * @param sortType Sort type used by the Music Service to sort the returned items by; the value is case -sensitive. valid values are 'stationName' and 'dateCreated'. + * @returns A NavigateResponse object. + */ + public async MusicServiceStationList(entityId: string, source: string, sourceAccount: string, sortType: string): Promise { + + try { + + // create service request. + const serviceRequest: ServiceCallRequest = { + domain: DOMAIN_SOUNDTOUCHPLUS, + service: 'musicservice_station_list', + serviceData: { + entity_id: entityId, + source: source, + source_account: sourceAccount, + sort_type: sortType, + } + }; + + // call the service, and convert the response to a type. + const response = await this.CallServiceWithResponse(serviceRequest); + const responseObj = JSON.parse(response) as NavigateResponse + + // set the LastUpdatedOn value to epoch (number of seconds), as the + // service does not provide this field (but we need it for media list processing). + responseObj.LastUpdatedOn = Date.now() / 1000 + return responseObj; + + } finally { + } + } + + + /** + * Play media content from a content item source on a SoundTouch device. + * + * @param entityId Entity ID of the SoundTouchPlus device that will process the request (e.g. "media_player.soundtouch_livingroom"). + * @param contentItem Content item type that contains media content details to play. + */ + public async PlayContentItem(entityId: string, contentItem: ContentItem | undefined): Promise { + + try { + + // validation. + if (!contentItem) + throw new Error("STPC0005 contentItem argument was not supplied to the PlayContentItem service.") + + // create service request. + const serviceRequest: ServiceCallRequest = { + domain: DOMAIN_SOUNDTOUCHPLUS, + service: 'play_contentitem', + serviceData: { + entity_id: entityId, + name: contentItem.Name, + source: contentItem.Source, + source_account: contentItem.SourceAccount, + item_type: contentItem.TypeValue, + location: contentItem.Location, + container_art: contentItem.ContainerArt, + is_presetable: contentItem.IsPresetable, + } + }; + + // call the service. + await this.CallService(serviceRequest); + + } finally { + } + } + + + /** + * Retrieves the list of presets defined to the device. + * + * @param entityId Entity ID of the SoundTouchPlus device that will process the request (e.g. "media_player.soundtouch_livingroom"). + * @param includeEmptySlots - True to include ALL preset slots (both empty and set); otherwise, False (default) to only include preset slots that have been set. + * @returns A PresetList object. + */ + public async PresetList(entityId: string, includeEmptySlots: boolean = true): Promise { + + try { + + // create service request. + const serviceRequest: ServiceCallRequest = { + domain: DOMAIN_SOUNDTOUCHPLUS, + service: 'preset_list', + serviceData: { + entity_id: entityId, + include_empty_slots: includeEmptySlots, + } + }; + + // call the service, and convert the response to a type. + const response = await this.CallServiceWithResponse(serviceRequest); + const responseObj = JSON.parse(response) as PresetList + return responseObj; + + } finally { + } + } + + + /** + * Retrieves the list of recents defined to the device. + * + * @param entityId Entity ID of the SoundTouchPlus device that will process the request (e.g. "media_player.soundtouch_livingroom"). + * @returns A RecentList object. + */ + public async RecentList(entityId: string): Promise { + + try { + + // create service request. + const serviceRequest: ServiceCallRequest = { + domain: DOMAIN_SOUNDTOUCHPLUS, + service: 'recent_list', + serviceData: { + entity_id: entityId, + } + }; + + // call the service, and convert the response to a type. + const response = await this.CallServiceWithResponse(serviceRequest); + const responseObj = JSON.parse(response) as RecentList + return responseObj; + + } finally { + } + } + + + /** + * Simulates the press and release of a key on the SoundTouch device remote control. + * + * @param entityId Entity ID of the SoundTouchPlus device that will process the request (e.g. "media_player.soundtouch_livingroom"). + * @param keyId SoundTouch remote control key identifier (e.g. "PRESET_1", "MUTE", etc). Note that some keys on the SoundTouch remote control are not sent to the SoundTouch device, and therefore are not supported by this service. + * @param keyState SoundTouch remote control key state. Most keys will use 'both' for state; the 'PRESET_n' key ids use 'press' to store a preset, and 'release' to select (or play) a preset. + */ + public async RemoteKeyPress(entityId: string, keyId: string, keyState: string): Promise { + + try { + + // create service request. + const serviceRequest: ServiceCallRequest = { + domain: DOMAIN_SOUNDTOUCHPLUS, + service: 'remote_keypress', + serviceData: { + entity_id: entityId, + key_id: keyId, + key_state: keyState, + } + }; + + // call the service. + await this.CallService(serviceRequest); + + } finally { + } + } +} diff --git a/src/types.ts b/src/types.ts new file mode 100644 index 0000000..72f51f6 --- /dev/null +++ b/src/types.ts @@ -0,0 +1,56 @@ +import { HomeAssistant } from 'custom-card-helpers'; + +declare global { + // noinspection JSUnusedGlobalSymbols + interface Window { + customCards: Array<{ type: string; name: string; description: string; preview: boolean }>; + } +} + + +export interface MediaPlayerItem { + title: string; + thumbnail?: string; + children?: MediaPlayerItem[]; + children_media_class?: string; + media_class?: string; + media_content_type?: string; + media_content_id?: string; +} + +export interface TemplateResult { + result: string[]; +} + +export enum MediaPlayerEntityFeature { + PAUSE = 1, + SEEK = 2, + VOLUME_SET = 4, + VOLUME_MUTE = 8, + PREVIOUS_TRACK = 16, + NEXT_TRACK = 32, + + TURN_ON = 128, + TURN_OFF = 256, + PLAY_MEDIA = 512, + VOLUME_BUTTONS = 1024, + SELECT_SOURCE = 2048, + STOP = 4096, + CLEAR_PLAYLIST = 8192, + PLAY = 16384, + SHUFFLE_SET = 32768, + SELECT_SOUND_MODE = 65536, + BROWSE_MEDIA = 131072, + REPEAT_SET = 262144, + GROUPING = 524288, +} + +interface HassEntityExtended { + platform: string; +} + +export interface HomeAssistantWithEntities extends HomeAssistant { + entities: { + [entity_id: string]: HassEntityExtended; + }; +} diff --git a/src/types/cardconfig.ts b/src/types/cardconfig.ts new file mode 100644 index 0000000..8a710e5 --- /dev/null +++ b/src/types/cardconfig.ts @@ -0,0 +1,176 @@ +// lovelace card imports. +import { LovelaceCardConfig } from 'custom-card-helpers'; + +// our imports. +import { Section } from './section' +import { CustomImageUrls } from './customimageurls' + +/** + * Card configuration settings. + */ +export interface CardConfig extends LovelaceCardConfig { + + /** + * Entity ID of the SoundTouchPlus device that will process the request. + */ + entity: string; + + /** + * Sections of the card to display. + */ + sections?: Section[]; + + /** + * Title that is displayed at the top of the card, above the section area. + * This value supports MediaPlayer override parameters. + */ + title?: string; + + /** + * Width of the card (in 'rem' units). + * A value of "fill" can also be used (requires manual editing) to use 100% of + * the available horizontal space (good for panel dashboards). + * Default is 35.15rem. + */ + width?: any; + + /** + * Height of the card (in 'rem' units). + * A value of "fill" can also be used (requires manual editing) to use 100% of + * the available vertical space (good for panel dashboards). + * Default is 35.15rem. + */ + height?: any; + + /** + * Title displayed at the top of the Preset media browser section form. + * Omit this parameter to hide the title display area. + * This value supports MediaPlayer override parameters. + */ + presetBrowserTitle?: string; + + /** + * Sub-title displayed at the top of the Preset media browser section form. + * Omit this parameter to hide the sub-title display area. + * This value supports MediaPlayer override parameters. + */ + presetBrowserSubTitle?: string; + + /** + * Number of items to display in a single row of the Preset media browser section form. + * Use a value of 1 to display the items as a vertical list. + * Default is 3. + */ + presetBrowserItemsPerRow?: number; + + /** + * Hide titles displayed for Preset media browser items. + * Default is false. + */ + presetBrowserItemsHideTitle?: boolean; + + /** + * Hide source titles displayed for Pandora media browser items. + * Default is false. + */ + presetBrowserItemsHideSource?: boolean; + + /** + * Title displayed at the top of the Recently Played media browser section form. + * Omit this parameter to hide the title display area. + * This value supports MediaPlayer override parameters. + */ + recentBrowserTitle?: string; + + /** + * Sub-title displayed at the top of the Recently Played media browser section form. + * Omit this parameter to hide the sub-title display area. + * This value supports MediaPlayer override parameters. + */ + recentBrowserSubTitle?: string; + + /** + * Number of items to display in a single row of the Recently Played media browser section form. + * Use a value of 1 to display the items as a vertical list. + * Default is 3. + */ + recentBrowserItemsPerRow?: number; + + /** + * Hide titles displayed for Recently Played media browser items. + * Default is false. + */ + recentBrowserItemsHideTitle?: boolean; + + /** + * Hide source titles displayed for Recently Played media browser items. + * Default is false. + */ + recentBrowserItemsHideSource?: boolean; + + + /** + * User account used to connect to Pandora music service. + * This account must be defined in the SoundTouch device source list. + */ + pandoraSourceAccount?: string; + + /** + * Title displayed at the top of the Pandora media browser section form. + * Omit this parameter to hide the title display area. + * This value supports MediaPlayer override parameters. + */ + pandoraBrowserTitle?: string; + + /** + * Sub-title displayed at the top of the Pandora media browser section form. + * Omit this parameter to hide the sub-title display area. + * This value supports MediaPlayer override parameters. + */ + pandoraBrowserSubTitle?: string; + + /** + * Number of items to display in a single row of the Pandora media browser section form. + * Use a value of 1 to display the items as a vertical list. + * Default is 3. + */ + pandoraBrowserItemsPerRow?: number; + + /** + * Hide titles displayed for Pandora media browser items. + * Default is false. + */ + pandoraBrowserItemsHideTitle?: boolean; + + /** + * Collection of custom imageUrl's that can be displayed in various media browser + * displays. This allows the user to override the image that is supplied by the + * media player service, as well as provide imageUrl's for items that do not contain + * an image. This is especially useful for Spotify content in the recently played + * media browser, since the SoundTouch device removes the container art due to Spotify + * copyright limitations with images. + * + * This configuration data must be configured manually in the card configuration. + * Some things to keep in mind when adding entries: + * - imageUrl titles are CaSe-SeNsItIvE. + * - imageUrl titles can contain special characters, but they are removed under the covers for the comparison process. + * - you can use "local" references for the imageUrl; any spaces in the filename are replaced with "%20". + * - you can use home assistant brands for the imageUrl; "logo.png" reference is replaced with "icon.png". + * - the "default" imageUrl title is used to supply an imageUrl for items that do not have an image. + * + * Example: + * customImageUrls: + * default: /local/images/soundtouchplus_card_customimages/default.png + * empty preset: /local/images/soundtouchplus_card_customimages/empty_preset.png + * Daily Mix 1: /local/images/soundtouchplus_card_customimages/logo_spotify.png + * I Need You: https://i.scdn.co/image/ab67616d0000b2734bfd0e91bf806bc73d736cfd + * LiGhT rAiLs *?????: /local/images/soundtouchplus_card_customimages/LiGhT rAiLs.png + * My Private Playlist: https://brands.home-assistant.io/soundtouchplus/icon.png + * My Private Playlist2: https://brands.home-assistant.io/soundtouchplus/logo.png + */ + customImageUrls?: CustomImageUrls; + + + fallbackArtwork?: string; + replaceHttpWithHttpsForThumbnails?: boolean; +} diff --git a/src/types/customimageurls.ts b/src/types/customimageurls.ts new file mode 100644 index 0000000..381333a --- /dev/null +++ b/src/types/customimageurls.ts @@ -0,0 +1,9 @@ +/** + * Custom ImageUrl configuration object. + * + * This interface contains the attributes and subitems that represent a + * custom image url configuration item. + */ +export interface CustomImageUrls { + [title: string]: string; +} diff --git a/src/types/hassentity-soundtouchplus.ts b/src/types/hassentity-soundtouchplus.ts new file mode 100644 index 0000000..14cf492 --- /dev/null +++ b/src/types/hassentity-soundtouchplus.ts @@ -0,0 +1,18 @@ +import { Context } from 'home-assistant-js-websocket'; +import { SoundTouchPlusHassEntityAttributes } from '../types/hassentityattributes-soundtouchplus'; + +/** + * SoundTouchPlus MediaPlayer Hass Entity type. + * + * Hass state representation of a SoundTouchPlus MediaPlayer integration. + * This is a copy of the HassEntityBase object, but with the `attributes` + * key mapped to the SoundTouchPlusHassEntityAttributes type. + */ +export declare type SoundTouchPlusHassEntity = { + entity_id: string; + state: string; + last_changed: string; + last_updated: string; + attributes: SoundTouchPlusHassEntityAttributes; + context: Context; +}; \ No newline at end of file diff --git a/src/types/hassentityattributes-mediaplayer.ts b/src/types/hassentityattributes-mediaplayer.ts new file mode 100644 index 0000000..45ca030 --- /dev/null +++ b/src/types/hassentityattributes-mediaplayer.ts @@ -0,0 +1,41 @@ +import { HassEntityAttributeBase } from 'home-assistant-js-websocket'; + +/** + * MediaPlayer Hass Entity Attributes type. + * + * Hass state attributes provided by the HA MediaPlayer integration. + */ +export declare type HassEntityAttributesMediaPlayer = HassEntityAttributeBase & { + app_id?: string; + app_name?: string; + device_class?: string; + group_members?: [string]; + is_volume_muted?: boolean; + media_album_artist?: string; + media_album_name?: string; + media_artist?: string; + media_channel?: string; + media_content_id?: string; + media_content_type?: string; + media_duration?: number; + media_episode?: string; + media_image_hash?: string; + media_image_remotely_accessible?: boolean; + media_image_url?: string; + media_playlist?: string; + media_position_updated_at?: string; // dt.datetime | None = None + media_position?: number; + media_season?: string; + media_series_title?: string; + media_title?: string; + media_track?: number; + repeat?: string; + shuffle?: boolean; + sound_mode_list?: [string]; + sound_mode?: string; + source_list?: [string]; + source?: string; + state?: string; // MediaPlayerState | None = None + supported_features?: number; // MediaPlayerEntityFeature(0) + volume_level?: number; +}; diff --git a/src/types/hassentityattributes-soundtouchplus.ts b/src/types/hassentityattributes-soundtouchplus.ts new file mode 100644 index 0000000..4eb81de --- /dev/null +++ b/src/types/hassentityattributes-soundtouchplus.ts @@ -0,0 +1,19 @@ +import { HassEntityAttributesMediaPlayer } from '../types/hassentityattributes-mediaplayer'; + +/** + * SoundTouchPlus MediaPlayer Hass Entity Attributes type. + * + * Hass state attributes provided by the SoundTouchPlus integration. + * This also contains the HA MediaPlayer attributes, as the SoundTouchPlus + * integration inherits from HA MediaPlayer. + */ +export declare type SoundTouchPlusHassEntityAttributes = HassEntityAttributesMediaPlayer & { + soundtouchplus_nowplaying_isadvertisement?: boolean; + soundtouchplus_nowplaying_isfavorite?: boolean; + soundtouchplus_presets_lastupdated?: number; + soundtouchplus_recents_lastupdated?: number; + soundtouchplus_source?: string; + soundtouchplus_sound_mode?: string; + soundtouchplus_tone_bass_level?: string; + soundtouchplus_tone_treble_level?: string; +}; diff --git a/src/types/section.ts b/src/types/section.ts new file mode 100644 index 0000000..4ff472a --- /dev/null +++ b/src/types/section.ts @@ -0,0 +1,9 @@ +/** + * Configuration area sections enum. + */ +export enum Section { + PRESETS = 'presets', + RECENTS = 'recents', + PANDORA_STATIONS = 'pandorastations', + PLAYER = 'player', +} diff --git a/src/types/servicecallrequest.ts b/src/types/servicecallrequest.ts new file mode 100644 index 0000000..fd79ae9 --- /dev/null +++ b/src/types/servicecallrequest.ts @@ -0,0 +1,19 @@ +/** + * Home Assistant Service Call Request object. + * + * This interface contains the attributes and subitems that represent a + * service call request. + */ +export declare type ServiceCallRequest = { + domain: string; + service: string; + serviceData?: Record; + target?: HassServiceTarget; +} + + +export declare type HassServiceTarget = { + entity_id?: string | string[]; + device_id?: string | string[]; + area_id?: string | string[]; +}; diff --git a/src/types/servicecallresponse.ts b/src/types/servicecallresponse.ts new file mode 100644 index 0000000..0c6be54 --- /dev/null +++ b/src/types/servicecallresponse.ts @@ -0,0 +1,39 @@ +/** + * Home Assistant Service Call Response object. + * + * This interface contains the attributes and subitems that represent a + * service call response. + */ + +export interface Context { + + /** + * Context identifier (e.g. "01HW87T1D7C78YEQS2WZ5HNN2X"). + */ + id: string; + + /** + * Parent identifier (e.g. null). + */ + parent_id?: string; + + /** + * User identifier (e.g. "e6f0d061124b4c65abb00fa22e51f5a5"). + */ + user_id?: string | null; +} + +export interface ServiceCallResponse { + + /** + * Context in which the service was called. + */ + context: Context; + + /** + * Response data returned by the called service (optional). + * This is usually a dictionary, but could also be basic types (string, number, etc). + */ + response?: Record; +} + diff --git a/src/types/soundtouchplus/contentitem.ts b/src/types/soundtouchplus/contentitem.ts new file mode 100644 index 0000000..78105f4 --- /dev/null +++ b/src/types/soundtouchplus/contentitem.ts @@ -0,0 +1,50 @@ +/** + * SoundTouch device ContentItem configuration object. + * + * This interface contains the attributes and subitems that represent the + * content item (e.g.media source) configuration of the device. + * + * Instances of this class can be used to switch the input source of media. + */ +export interface ContentItem { + + /** Item's container art url. */ + ContainerArt?: string; + + /** Returns True if the content item is part of a navigate result; otherwise, False. */ + IsNavigate?: boolean; + + /** Returns True if the content item can be saved as a Preset; otherwise, False. */ + IsPresetable?: boolean; + + /** If present, a direct url link to the media. */ + Location?: string; + + /** Item's name. */ + Name?: string; + + /** If present, the offset of the currently playing content. */ + Offset?: number; + + /** The type or name of the service that is currently playing or to be played. */ + Source?: string; + + /** The account associated with the Source. */ + SourceAccount?: string; + + /** Specifies the type of this item. */ + TypeValue?: string; +} + + +/** +* SoundTouch ContentItem parent configuration object. +* +* This interface contains the attributes and subitems that represent a +* single object that contains a ContentItem attribute. +*/ +export interface ContentItemParent { + + /** ContentItem object. */ + ContentItem?: ContentItem; +} diff --git a/src/types/soundtouchplus/navigateitem.ts b/src/types/soundtouchplus/navigateitem.ts new file mode 100644 index 0000000..6f54771 --- /dev/null +++ b/src/types/soundtouchplus/navigateitem.ts @@ -0,0 +1,92 @@ +import { ContentItem } from './contentitem'; + +/** + * SoundTouch device NavigateItem configuration object. + * + * This interface contains the attributes and subitems that represent a + * single navigate configuration of the device. + */ +export interface NavigateItem { + + /** + * BackupUrl value. + */ + BackupUrl?: string; + + /** + * BitRate value. + */ + BitRate?: string; + + /** + * Parent container ContentItem to navigate, if navigating for child containers. + * Specify null if navigating a root container.ContentItem object. + */ + ContentItem?: ContentItem; + + /** + * Description value. + */ + Description?: string; + + /** + * Format value. + */ + Format?: string; + + /** + * Location value. + */ + Location?: string; + + /** + * + */ + Logo?: string; + + ///** + // * Logo value. + // */ + //MediaItemContainer?: MediaItemContainer; + + /** + * Mime value. + */ + Mime?: string; + + /** + * Name value. + */ + Name?: string; + + /** + * Playable value. + */ + Playable?: number; + + /** + * Reliability value. + */ + Reliability?: string; + + /** + * Token value. + */ + Token?: string; + + /** + * TypeValue value. + */ + TypeValue?: string; + + /** + * Url value. + */ + Url?: string; + + /** + * UtcTime value. + */ + UtcTime?: string; + +} diff --git a/src/types/soundtouchplus/navigateresponse.ts b/src/types/soundtouchplus/navigateresponse.ts new file mode 100644 index 0000000..6073510 --- /dev/null +++ b/src/types/soundtouchplus/navigateresponse.ts @@ -0,0 +1,50 @@ +import { NavigateItem } from './navigateitem'; + +/** + * SoundTouch device NavigateResponse configuration object. + * + * This interface contains the attributes and subitems that represent the + * navigate response configuration of the device. + */ +export interface NavigateResponse { + + /** + * Date and time (in epoch format) of when the list was last updated. + * Note that this attribute does not exist in the service response. It was added here for convenience. + */ + LastUpdatedOn?: number; + + /** + * The number of items in the `Items` list. + * + * Note that this could be different than the `TotalItems` property if + * the user is limiting the returned results. + */ + ItemCount?: number; + + /** + * List of `NavigateItem` items. + */ + Items?: Array; + + /** + * Music service source where the result was obtained from (e.g. "PANDORA", etc). + */ + Source?: string; + + /** + * The account associated with the Source. + */ + SourceAccount?: string; + + /** + * The source title of media content (e.g. "Pandora (userid)", etc). + */ + SourceTitle?: string; + + /** + * The total number of items in the list, as reported by the music service. + */ + TotalItems?: number; + +} diff --git a/src/types/soundtouchplus/preset.ts b/src/types/soundtouchplus/preset.ts new file mode 100644 index 0000000..b6b24c9 --- /dev/null +++ b/src/types/soundtouchplus/preset.ts @@ -0,0 +1,41 @@ +import { ContentItem } from './contentitem'; + +/** + * SoundTouch device Preset configuration object. + * + * This interface contains the attributes and subitems that represent a + * single preset configuration of the device. + */ +export interface Preset { + + /** ContentItem object. */ + ContentItem?: ContentItem; + + /** + * Date and time(in epoch format) of when the preset was created. + * It seems that on some devices(ST10) the SoundTouch WebServices API only returns + * this attribute for the LAST preset that was stored; the value will not be present + * for any other presets.Other devices(ST300) return this attribute on all items. + */ + CreatedOn?: number; + + /** Preset identifier (1 - 6). */ + PresetId?: number; + + /** + * The source title of media content(e.g. "Tunein", "Airplay", "NAS Music Server", etc). + * This property is not part of the returned xml of the configuration, but is set after + * a call to`SoundTouchClient.GetPresetList(resolveSourceTitles=True)' so that source + * titles can be displayed by user-interfaces. + */ + SourceTitle?: string; + + /** + * Date and time (in epoch format) of when the preset was last updated. + * It seems that on some devices (ST-10) the SoundTouch WebServices API only returns + * this attribute for the LAST preset that was stored; the value will not be present + * for any other presets. Other devices (ST-300) return this attribute on all items. + */ + UpdatedOn?: number; + +} diff --git a/src/types/soundtouchplus/presetlist.ts b/src/types/soundtouchplus/presetlist.ts new file mode 100644 index 0000000..3bae792 --- /dev/null +++ b/src/types/soundtouchplus/presetlist.ts @@ -0,0 +1,16 @@ +import { Preset } from './preset'; + +/** + * SoundTouch device PresetList configuration object. + * + * This interface contains the attributes and subitems that represent the + * preset configuration of the device. + */ +export interface PresetList { + + /** Date and time (in epoch format) of when the list was last updated. */ + LastUpdatedOn?: number; + + /** List of `Preset` items. */ + Presets?: Array; +} diff --git a/src/types/soundtouchplus/recent.ts b/src/types/soundtouchplus/recent.ts new file mode 100644 index 0000000..6553858 --- /dev/null +++ b/src/types/soundtouchplus/recent.ts @@ -0,0 +1,38 @@ +import { ContentItem } from './contentitem'; + +/** + * SoundTouch device Recent configuration object. + * + * This interface contains the attributes and subitems that represent a + * single recent configuration of the device. + */ +export interface Recent { + + /** ContentItem object. */ + ContentItem?: ContentItem; + + /** + * Date and time(in epoch format) of when the recent was created. + * It seems that on some devices(ST10) the SoundTouch WebServices API only returns + * this attribute for the LAST recent that was stored; the value will not be present + * for any other recents.Other devices(ST300) return this attribute on all items. + */ + CreatedOn?: number; + + /** + * Device identifier the configuration information was obtained from. + */ + DeviceId?: string; + + /** Recent identifier. */ + RecentId?: number; + + /** + * The source title of media content(e.g. "Tunein", "Airplay", "NAS Music Server", etc). + * This property is not part of the returned xml of the configuration, but is set after + * a call to`SoundTouchClient.GetrecentList(resolveSourceTitles=True)' so that source + * titles can be displayed by user-interfaces. + */ + SourceTitle?: string; + +} diff --git a/src/types/soundtouchplus/recentlist.ts b/src/types/soundtouchplus/recentlist.ts new file mode 100644 index 0000000..589a248 --- /dev/null +++ b/src/types/soundtouchplus/recentlist.ts @@ -0,0 +1,16 @@ +import { Recent } from './recent'; + +/** + * SoundTouch device RecentList configuration object. + * + * This interface contains the attributes and subitems that represent the + * recent configuration of the device. + */ +export interface RecentList { + + /** Date and time (in epoch format) of when the list was last updated. */ + LastUpdatedOn?: number; + + /** List of `Recent` items. */ + Recents?: Array; +} diff --git a/src/types/soundtouchplus/sourceitem.ts b/src/types/soundtouchplus/sourceitem.ts new file mode 100644 index 0000000..3cd9e1e --- /dev/null +++ b/src/types/soundtouchplus/sourceitem.ts @@ -0,0 +1,30 @@ +/** + * SoundTouch device SourceItem configuration object. + * + * This interface contains the attributes and subitems that represent a + * single source configuration of the device. + */ +export interface SourceItem { + + /** The friendly name of the source (e.g. "My Media Player", "SpotifyConnectUserName", etc). */ + FriendlyName?: string; + + /** True if a local source (e.g. "AUX", "BLUETOOTH", "QPLAY", etc); otherwise, False. */ + IsLocal?: boolean; + + /** True if the source can be rebroadcast in a multi-room zone; otherwise, False. */ + IsMultiroomAllowed?: boolean; + + /** The source of media content (e.g. "TUNEIN", "AIRPLAY", "UPNP", etc). */ + Source?: string; + + /** The account associated with the Source. */ + SourceAccount?: string; + + /** The source title of media content (e.g. "Tunein", "Airplay", "NAS Music Server", etc). */ + SourceTitle?: string; + + /** Indicates whether the source is available or not, and its current status. */ + Status?: string; + +} diff --git a/src/types/soundtouchplus/sourcelist.ts b/src/types/soundtouchplus/sourcelist.ts new file mode 100644 index 0000000..3a7265c --- /dev/null +++ b/src/types/soundtouchplus/sourcelist.ts @@ -0,0 +1,22 @@ +import { SourceItem } from './sourceitem'; + +/** + * SoundTouch device SourceList configuration object. + * + * This interface contains the attributes and subitems that represent the + * source list configuration of the device. + */ +export interface SourceList { + + /** + * Date and time (in epoch format) of when the list was last updated. + * Note that this attribute does not exist in the service response. It was added here for convenience. + */ + LastUpdatedOn?: number; + + /** Device identifier the configuration information was obtained from. */ + DeviceId?: string; + + /** List of `SourceItem` items. */ + SourceItems?: Array; +} diff --git a/src/utils/media-browser-utils.ts b/src/utils/media-browser-utils.ts new file mode 100644 index 0000000..491b069 --- /dev/null +++ b/src/utils/media-browser-utils.ts @@ -0,0 +1,226 @@ +// lovelace card imports. +import { css, html } from 'lit'; + +// our imports. +import { MediaPlayer } from '../model/media-player'; +import { CustomImageUrls } from '../types/customimageurls' +import { CardConfig } from '../types/cardconfig' +import { ContentItem, ContentItemParent } from '../types/soundtouchplus/contentitem'; +import { formatDateEpochSecondsToLocaleString, formatStringProperCase } from './utils'; + +const DEFAULT_MEDIA_IMAGEURL = + 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAZAAAAGQCAYAAACAvzbMAAABhWlDQ1BJQ0MgcHJvZmlsZQAAKJF9kT1Iw1AUhU9TS0UqDnYQcchQnexiRXQrVSyChdJWaNXB5KV/0KQhSXFxFFwLDv4sVh1cnHV1cBUEwR8QZwcnRRcp8b6k0CLGC4/3cd49h/fuA4RWjalmXxxQNcvIJBNivrAqBl8RgA8hxDAnMVNPZRdz8Kyve+qluovyLO++P2tQKZoM8InEcaYbFvEG8cympXPeJw6ziqQQnxNPGnRB4keuyy6/cS47LPDMsJHLzBOHicVyD8s9zCqGSjxNHFFUjfKFvMsK5y3Oaq3BOvfkLwwVtZUs12mNIYklpJCGCBkNVFGDhSjtGikmMnSe8PCPOv40uWRyVcHIsYA6VEiOH/wPfs/WLMWm3KRQAgi82PbHOBDcBdpN2/4+tu32CeB/Bq60rr/eAmY/SW92tcgRMLQNXFx3NXkPuNwBRp50yZAcyU9LKJWA9zP6pgIwfAsMrLlz65zj9AHI0ayWb4CDQ2CiTNnrHu/u753bvz2d+f0A+AZy3KgprtwAAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAALiMAAC4jAXilP3YAAAAHdElNRQfoBQEMNhNCJ/KVAAACg0lEQVR42u3BgQAAAADDoPlTX+EAVQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwG/GFwABsN92WwAAAABJRU5ErkJggg=='; + + +/** + * Removes all special characters from a string, so that it can be used + * for comparison operations. + * + * @param str String value to remove special characters from. + * @returns The `str` value without special characters. + */ +export function removeSpecialChars(str: string) { + let value = str.replace(/[^a-zA-Z ]/g, ''); + if (value) + value = value.trim(); + return value; +} + + +function hasItemsWithImage(items: ContentItemParent[]) { + return items.some((item) => item.ContentItem?.ContainerArt); +} + + +/** + * Searches the configuration custom ImageUrl's collection for a matching title. + * The item imageUrl is returned if a match is found; otherwise, undefined. + * + * @param collection Configuration customImageUrls collection to search. + * @param title Title to search for in the collection. + */ +export function getCustomImageUrl(collection: CustomImageUrls | undefined, title: string) { + + // search collection for matching title and return the imageUrl. + // remove any special characters from the title before comparing. + // note that we already removed special characters from the collection + // in the setConfig() method when the card configuration was loaded. + for (const itemTitle in collection) { + //console.log("STPC - getCustomImageUrl():\n%s = itemTitle\n%s = title", JSON.stringify(itemTitle), JSON.stringify(removeSpecialChars(title))); + if (itemTitle === removeSpecialChars(title)) { + //console.log("STPC - getCustomImageUrl():\ntitle '%s' found in customimageurls\nimageurl = %s", JSON.stringify(itemTitle), JSON.stringify(collection[itemTitle])); + return collection[itemTitle]; + } + } + + // if not found then return undefined. + return undefined; +} + + +/** + * Gets the image url that will be displayed in the media browser. + * + * The image to display is resolved in the following sequence: + * - configuration `customImageUrls` `title` for matching contentItem name (if one exists). + * - contentItem ContainerArt value (if one exists). + * - configuration `customImageUrls` `default` value (if one exists). + * - hard-coded `default image` data if all else fails. + * + * If the image url is a Home Assistant brands logo, then the brand icon.png image is used instead. + */ +export function getContentItemImageUrl(contentItem: ContentItem | undefined, config: CardConfig, itemsWithImage: boolean) { + + // check for a custom imageUrl; if not found, then use the content item image (if supplied). + let imageUrl = getCustomImageUrl(config.customImageUrls, contentItem?.Name || '') ?? contentItem?.ContainerArt; + + // do we have a custom imageUrl? + if (!imageUrl) { + + // if there are other items with images, then we will use a default image; + // otherwise, just return undefined so it doesn't insert a default image. + if (itemsWithImage) { + imageUrl = config.customImageUrls?.['default'] || DEFAULT_MEDIA_IMAGEURL; + } + } + + // if imageUrl is a home assistant brands logo, then use the 'icon.png' image. + if (imageUrl?.match(/https:\/\/brands\.home-assistant\.io\/.+\/logo.png/)) { + imageUrl = imageUrl?.replace('logo.png', 'icon.png'); + } + + //console.log("STPC - getContentItemImageUrl():\nfinal imageurl = %s", JSON.stringify(imageUrl)); + + // return imageUrl to caller. + return imageUrl || ''; +} + + +export function itemsWithFallbacks(collection: ContentItemParent[], config: CardConfig) { + const itemsWithImage = hasItemsWithImage(collection); + return collection.map((item) => { + const thumbnail = getContentItemImageUrl(item.ContentItem, config, itemsWithImage); + return { + ...item, + thumbnail, + }; + }); +} + + +/** + * Formats a string with MediaPlayer information. This method finds selected keywords + * and replaces them with the equivalent MediaPlayer attribute values. + * + * The following replacement keywords are supported: + * - {player.name} : player name (e.g. "Livingroom Soundbar"). + * - {player.soundtouchplus_presets_lastupdated} : Date and Time the preset list was last refreshed from the device. + * - {player.soundtouchplus_recents_lastupdated} : Date and Time the recents list was last refreshed from the device. + * + * @param player MediaPlayer instance that contains information about the player. + * @param text Text string to replace media player keyword values with. + * @param lastUpdatedOn Epoch date (in seconds) when the last refresh of the media list took place. Only used for services that don't have a media player `lastupdated` attribute. + * @returns The text argument with media player keywords replaced with media player details. + */ +export function formatPlayerInfo( + player: MediaPlayer, + text: string | undefined, + lastUpdatedOn: number | undefined = undefined, + ): string | undefined { + + // if player instance not set then don't bother. + if (!player) + return text + + // replace keyword parameters with media player equivalents. + if (text) { + + text = text.replace("{player.name}", player.name); + + if (text.indexOf("{player.soundtouchplus_presets_lastupdated}") > -1) { + const localeDT = formatDateEpochSecondsToLocaleString(player.attributes.soundtouchplus_presets_lastupdated) + text = text.replace("{player.soundtouchplus_presets_lastupdated}", localeDT || ''); + } + + if (text.indexOf("{player.soundtouchplus_recents_lastupdated}") > -1) { + const localeDT = formatDateEpochSecondsToLocaleString(player.attributes.soundtouchplus_presets_lastupdated) + text = text.replace("{player.soundtouchplus_recents_lastupdated}", localeDT || ''); + } + + if ((lastUpdatedOn || 0) > 0) { + if (text.indexOf("{lastupdatedon}") > -1) { + const localeDT = formatDateEpochSecondsToLocaleString(lastUpdatedOn || 0) + text = text.replace("{lastupdatedon}", localeDT || ''); + } + } + + // other possible keywords: + //media_duration: 276 + //media_position: 182 + //media_position_updated_at: "2024-04-30T21:32:12.303343+00:00" + //media_title: Redeemed + //media_artist: Big Daddy Weave + //media_album_name: Love Come To Life + //media_track: Redeemed + //source: Spotify(thlucas2010@gmail.com) + //shuffle: false + //repeat: "off" + //soundtouchplus_nowplaying_isadvertisement: false + //soundtouchplus_nowplaying_isfavorite: true + //soundtouchplus_source: SPOTIFY: 31l77y2al5lnn7mxfrmd4bpfhqke + //soundtouchplus_sound_mode: not capable + //soundtouchplus_tone_bass_level: not capable + //soundtouchplus_tone_treble_level: not capable + //device_class: speaker + //entity_picture: > - + // /api/media_player_proxy / media_player.bose_st10_1 ? token = f447f9b3fbdb647d9df2f7b0a5a474be9e17ffa51d26eb18f414d5120a2bdeb8 & cache=2a8a6a76b27e209a + //icon: mdi: speaker + //friendly_name: Bose - ST10 - 1 + //supported_features: 1040319 + + } + + return text +} + + +/** + * Style definition used to style a media browser item background image. + */ +export function styleMediaBrowserItemBackgroundImage(thumbnail: string, index: number) { + return html` + + `; +} + + +/** + * Style definition used to style a media browser item title. + */ +export const styleMediaBrowserItemTitle = css` + .title { + color: var(--secondary-text-color); + font-weight: normal; + padding: 0 0.5rem; + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; + } +`; + + +export function renderMediaBrowserContentItem(contentItem: ContentItem | undefined, showTitle = true, showSource = true) { + return html` +
+
+ ${contentItem?.Name} +
${formatStringProperCase(contentItem?.Source || '')}
+
+ `; + //
+ //
+} diff --git a/src/utils/utils.ts b/src/utils/utils.ts new file mode 100644 index 0000000..ba56a24 --- /dev/null +++ b/src/utils/utils.ts @@ -0,0 +1,82 @@ +// our imports. +import { CardConfig } from '../types/cardconfig' +import { Section } from '../types/section' + +export function cardDoesNotContainAllSections(config: CardConfig) { + return config.sections && config.sections.length < Object.keys(Section).length; +} + + +/** + * Defines a custom event type and it's details. + */ +export function customEvent(type: string, detail?: unknown) { + return new CustomEvent(type, { + bubbles: true, + composed: true, + detail, + }); +} + + +export function dispatch(type: string, detail?: unknown) { + const event = customEvent(type, detail); + window.dispatchEvent(event); +} + + +/** + * Formats an epoch date to a date locale string. + * + * The date is converted by a call to the `Date.toLocaleString()` method. + * + * @param epochSeconds Epoch date to format (e.g. number of seconds since 01/01/1970. + * @returns A string with the formatted date. + */ +export function formatDateEpochSecondsToLocaleString(epochSeconds: number | undefined): string | undefined { + + // if epoch date not specified then don't bother. + if (!epochSeconds) + return undefined + + // convert epoch number of seconds to epoch number of milliseconds (for JavaScript Date function). + const epochMS = (epochSeconds || 0) * 1000; + const epochMSDate = new Date(epochMS); + const localeDate = epochMSDate.toLocaleString(); + return localeDate +} + + +/** +* Converts a string value to proper case. +* +* @param str String to convert to propercase (e.g. "hello world"). +* @returns A properly cased string value (e.g. "Hello World"). +*/ +export function formatStringProperCase(str: string): string | void { + let upper = true; + let newStr = ""; + for (let i = 0, l = str.length; i < l; i++) { + if (str[i] == " ") { + upper = true; + newStr += " "; + continue; + } + newStr += upper ? str[i].toUpperCase() : str[i].toLowerCase(); + upper = false; + } + return newStr; +} + + +/** + * Check if a string is a numeric value or not. + * + * @param numStr String to check for a numeric value. + * @returns true if the specified string can be converted to a number; otherwise, false. + */ +export function isNumber(numStr: string) { + return !isNaN(parseFloat(numStr)) && !isNaN(+numStr) +} + + diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..83c04b0 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,22 @@ +{ + "compilerOptions": { + "target": "es2017", + "module": "esnext", + "moduleResolution": "node", + "lib": [ + "es2021", + "dom", + "dom.iterable" + ], + "noEmit": true, + "noUnusedParameters": true, + "noImplicitReturns": true, + "noFallthroughCasesInSwitch": true, + "strict": true, + "noImplicitAny": true, + "skipLibCheck": false, + "resolveJsonModule": true, + "experimentalDecorators": true, + "noUnusedLocals": true, + } +} \ No newline at end of file