diff --git a/teams/double-door-refrigerator/.gitignore b/teams/double-door-refrigerator/.gitignore new file mode 100644 index 0000000..4d29575 --- /dev/null +++ b/teams/double-door-refrigerator/.gitignore @@ -0,0 +1,23 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# production +/build + +# misc +.DS_Store +.env.local +.env.development.local +.env.test.local +.env.production.local + +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/teams/double-door-refrigerator/Git_Update.ps1 b/teams/double-door-refrigerator/Git_Update.ps1 new file mode 100644 index 0000000..4b25e04 --- /dev/null +++ b/teams/double-door-refrigerator/Git_Update.ps1 @@ -0,0 +1,6 @@ +Set-Location $PSScriptRoot +$msg = Read-Host "Enter commit message" +git pull origin main +git add . +git commit -m "$msg" +git push \ No newline at end of file diff --git a/teams/double-door-refrigerator/README.md b/teams/double-door-refrigerator/README.md new file mode 100644 index 0000000..a6ec4d8 --- /dev/null +++ b/teams/double-door-refrigerator/README.md @@ -0,0 +1,67 @@ +# CompareX + +## Team Name + +Double Door Refrigerator + +## Team Members + +- Srujan Tagalpallewar (GitHub: @SrujanTag) +- Kartikey Chaudhary (GitHub: @kartik-dvst) +- Harsh Agrawal (GitHub: @harshagarwal4761) +- Shambhavi Verma (GitHub: @ShambhaviVerma775) +- Aviral Sonker (GitHub: @AviralAv03) + +--- + +## Idea Chosen + +Custom: CompareX — Interactive Review & Comparison Platform + +--- + +## Problem Statement + +Users often struggle to compare developer tools and PC hardware due to scattered, biased, and static information across multiple platforms. There is no unified, interactive system that allows quick, personalized, and transparent comparisons. + +--- + +## Tech Stack + +- React.js +- Node.js +- Express.js +- JavaScript +- (Optional: MongoDB / JSON-based storage) + +--- + +## Implementation Details + +CompareX is built as a full-stack web application that enables users to interactively compare tools and hardware. + +### Key Features: + +- 🔍 Custom comparison tables (up to 3 items) +- 🧠 Smart recommendation quiz based on user preferences +- ⭐ Transparent trust scoring system +- 💾 Saved workspaces for users +- ⚡ Quick summary cards (pros/cons) + +### Architecture: + +- **Frontend:** React-based dynamic UI +- **Backend:** Express server handling APIs and logic +- **Data Layer:** Structured storage for product specs, reviews, and pricing +- **Logic:** Filtering, comparison, and recommendation engine + +--- + +## How to Run Locally + +```bash +git clone https://github.com/SrujanTag/DevStakes.git +cd DevStakes/teams/double-door-refrigerator +npm install +npm start +``` diff --git a/teams/double-door-refrigerator/add_data.py b/teams/double-door-refrigerator/add_data.py new file mode 100644 index 0000000..25b6e34 --- /dev/null +++ b/teams/double-door-refrigerator/add_data.py @@ -0,0 +1,245 @@ +import re + +with open('generate_data.js', 'r', encoding='utf-8') as f: + text = f.read() + +new_tools = [ +""" { id: 409, title: 'Git', subtitle: 'Distributed version control system', category: 'TOOLS', isNew: false, features: { Type: 'VCS', License: 'GPL-2.0' }, + specifications: { Type: 'Version Control', Platform: 'Cross-platform', Language: 'C', Support: 'Git', License: 'Open Source (GPL-2.0)' }, + scores: { Reliability: 100, Speed: 98, EaseOfUse: 85 }, + prices: { amazon: { price: 'Free', link: 'https://git-scm.com/' }, flipkart: { price: 'Free', link: 'https://git-scm.com/' }, official: { price: 'Free', link: 'https://git-scm.com/' } } + }, + { id: 410, title: 'Apache Subversion (SVN)', subtitle: 'Centralized version control', category: 'TOOLS', isNew: false, features: { Type: 'VCS', License: 'Apache-2.0' }, + specifications: { Type: 'Version Control', Platform: 'Cross-platform', Language: 'C', Support: 'SVN', License: 'Open Source (Apache-2.0)' }, + scores: { Reliability: 95, Speed: 80, EaseOfUse: 90 }, + prices: { amazon: { price: 'Free', link: 'https://subversion.apache.org/' }, flipkart: { price: 'Free', link: 'https://subversion.apache.org/' }, official: { price: 'Free', link: 'https://subversion.apache.org/' } } + }, + { id: 411, title: 'Mercurial', subtitle: 'Distributed version control', category: 'TOOLS', isNew: false, features: { Type: 'VCS', License: 'GPL-2.0' }, + specifications: { Type: 'Version Control', Platform: 'Cross-platform', Language: 'Python', Support: 'Mercurial', License: 'Open Source (GPL-2.0)' }, + scores: { Reliability: 98, Speed: 90, EaseOfUse: 92 }, + prices: { amazon: { price: 'Free', link: 'https://www.mercurial-scm.org/' }, flipkart: { price: 'Free', link: 'https://www.mercurial-scm.org/' }, official: { price: 'Free', link: 'https://www.mercurial-scm.org/' } } + }, + { id: 412, title: 'VSCodium', subtitle: 'Telemetry-free VS Code binary', category: 'TOOLS', isNew: false, features: { Type: 'IDE', License: 'MIT' }, + specifications: { Type: 'Code Editor', Platform: 'Cross-platform', Engine: 'Electron', Support: 'Multiple', License: 'Open Source (MIT)' }, + scores: { Extensibility: 98, Performance: 90, Privacy: 100 }, + prices: { amazon: { price: 'Free', link: 'https://vscodium.com/' }, flipkart: { price: 'Free', link: 'https://vscodium.com/' }, official: { price: 'Free', link: 'https://vscodium.com/' } } + }, + { id: 413, title: 'Eclipse IDE', subtitle: 'Extensible development platform', category: 'TOOLS', isNew: false, features: { Type: 'IDE', License: 'EPL-2.0' }, + specifications: { Type: 'IDE', Platform: 'Cross-platform', Language: 'Java', Support: 'Multiple', License: 'Open Source (EPL-2.0)' }, + scores: { Extensibility: 95, Performance: 80, Maturity: 99 }, + prices: { amazon: { price: 'Free', link: 'https://www.eclipse.org/' }, flipkart: { price: 'Free', link: 'https://www.eclipse.org/' }, official: { price: 'Free', link: 'https://www.eclipse.org/' } } + }, + { id: 414, title: 'IntelliJ IDEA Community', subtitle: 'Capable Java IDE', category: 'TOOLS', isNew: false, features: { Type: 'IDE', License: 'Apache-2.0' }, + specifications: { Type: 'IDE', Platform: 'Cross-platform', Language: 'Java', Support: 'Java, Kotlin', License: 'Open Source (Apache-2.0)' }, + scores: { Features: 96, Performance: 88, EaseOfUse: 92 }, + prices: { amazon: { price: 'Free', link: 'https://www.jetbrains.com/idea/' }, flipkart: { price: 'Free', link: 'https://www.jetbrains.com/idea/' }, official: { price: 'Free', link: 'https://www.jetbrains.com/idea/' } } + }, + { id: 415, title: 'Apache Maven', subtitle: 'Software comprehension tool', category: 'TOOLS', isNew: false, features: { Type: 'Build Tool', License: 'Apache-2.0' }, + specifications: { Type: 'Build Tool', Platform: 'Cross-platform', Language: 'Java', Support: 'POM based', License: 'Open Source (Apache-2.0)' }, + scores: { Reliability: 99, Features: 90, Ecosystem: 98 }, + prices: { amazon: { price: 'Free', link: 'https://maven.apache.org/' }, flipkart: { price: 'Free', link: 'https://maven.apache.org/' }, official: { price: 'Free', link: 'https://maven.apache.org/' } } + }, + { id: 416, title: 'Gradle', subtitle: 'Accelerates developer productivity', category: 'TOOLS', isNew: false, features: { Type: 'Build Tool', License: 'Apache-2.0' }, + specifications: { Type: 'Build Tool', Platform: 'Cross-platform', Language: 'Java/Kotlin', Support: 'DSL', License: 'Open Source (Apache-2.0)' }, + scores: { Performance: 95, Flexibility: 98, Ecosystem: 92 }, + prices: { amazon: { price: 'Free', link: 'https://gradle.org/' }, flipkart: { price: 'Free', link: 'https://gradle.org/' }, official: { price: 'Free', link: 'https://gradle.org/' } } + }, + { id: 417, title: 'Apache Ant', subtitle: 'Java based build tool', category: 'TOOLS', isNew: false, features: { Type: 'Build Tool', License: 'Apache-2.0' }, + specifications: { Type: 'Build Tool', Platform: 'Cross-platform', Language: 'Java', Support: 'XML based', License: 'Open Source (Apache-2.0)' }, + scores: { Dependability: 99, Speed: 90, Flexibility: 85 }, + prices: { amazon: { price: 'Free', link: 'https://ant.apache.org/' }, flipkart: { price: 'Free', link: 'https://ant.apache.org/' }, official: { price: 'Free', link: 'https://ant.apache.org/' } } + }, + { id: 418, title: 'Jenkins', subtitle: 'Leading open source automation server', category: 'TOOLS', isNew: false, features: { Type: 'CI/CD', License: 'MIT' }, + specifications: { Type: 'CI/CD Server', Platform: 'Cross-platform', Language: 'Java', Plugins: '1800+', License: 'Open Source (MIT)' }, + scores: { Extensibility: 100, Ecosystem: 99, EaseOfSetup: 80 }, + prices: { amazon: { price: 'Free', link: 'https://www.jenkins.io/' }, flipkart: { price: 'Free', link: 'https://www.jenkins.io/' }, official: { price: 'Free', link: 'https://www.jenkins.io/' } } + }, + { id: 419, title: 'GitLab CI/CD', subtitle: 'Integrated CI/CD platform', category: 'TOOLS', isNew: false, features: { Type: 'CI/CD', License: 'MIT' }, + specifications: { Type: 'CI/CD', Platform: 'Cross-platform', Integrated: 'GitLab', Runners: 'Go based', License: 'Open Source (MIT)' }, + scores: { Integration: 99, Features: 95, EaseOfUse: 92 }, + prices: { amazon: { price: 'Free', link: 'https://about.gitlab.com/' }, flipkart: { price: 'Free', link: 'https://about.gitlab.com/' }, official: { price: 'Free', link: 'https://docs.gitlab.com/ee/ci/' } } + }, + { id: 420, title: 'Tekton', subtitle: 'Cloud-native CI/CD framework', category: 'TOOLS', isNew: false, features: { Type: 'CI/CD', License: 'Apache-2.0' }, + specifications: { Type: 'CI/CD', Platform: 'Kubernetes', Language: 'Go', Ecosystem: 'CD Foundation', License: 'Open Source (Apache-2.0)' }, + scores: { Flexibility: 95, Scalability: 98, Ecosystem: 88 }, + prices: { amazon: { price: 'Free', link: 'https://tekton.dev/' }, flipkart: { price: 'Free', link: 'https://tekton.dev/' }, official: { price: 'Free', link: 'https://tekton.dev/' } } + }, + { id: 421, title: 'Docker Engine', subtitle: 'Industry standard container runtime', category: 'TOOLS', isNew: false, features: { Type: 'Containerization', License: 'Apache-2.0' }, + specifications: { Type: 'Container Runtime', Platform: 'Linux/Mac/Win', Core: 'containerd', Interface: 'CLI', License: 'Open Source (Apache-2.0)' }, + scores: { Ecosystem: 100, Usability: 95, Reliability: 99 }, + prices: { amazon: { price: 'Free', link: 'https://www.docker.com/' }, flipkart: { price: 'Free', link: 'https://www.docker.com/' }, official: { price: 'Free', link: 'https://github.com/docker/engine' } } + }, + { id: 422, title: 'Podman', subtitle: 'Daemonless container engine', category: 'TOOLS', isNew: true, features: { Type: 'Containerization', License: 'Apache-2.0' }, + specifications: { Type: 'Container Runtime', Platform: 'Linux/Mac/Win', Architecture: 'Daemonless', Rootless: 'Yes', License: 'Open Source (Apache-2.0)' }, + scores: { Security: 98, Compatibility: 96, Architecture: 95 }, + prices: { amazon: { price: 'Free', link: 'https://podman.io/' }, flipkart: { price: 'Free', link: 'https://podman.io/' }, official: { price: 'Free', link: 'https://podman.io/' } } + }, + { id: 423, title: 'containerd', subtitle: 'Standard container runtime', category: 'TOOLS', isNew: false, features: { Type: 'Containerization', License: 'Apache-2.0' }, + specifications: { Type: 'Container Runtime', Platform: 'Linux/Win', Ecosystem: 'CNCF', Focus: 'Simplicity', License: 'Open Source (Apache-2.0)' }, + scores: { Performance: 99, Reliability: 99, Ecosystem: 96 }, + prices: { amazon: { price: 'Free', link: 'https://containerd.io/' }, flipkart: { price: 'Free', link: 'https://containerd.io/' }, official: { price: 'Free', link: 'https://containerd.io/' } } + }, + { id: 424, title: 'Kubernetes', subtitle: 'Container orchestration system', category: 'TOOLS', isNew: false, features: { Type: 'Orchestration', License: 'Apache-2.0' }, + specifications: { Type: 'Orchestration', Platform: 'Linux', Ecosystem: 'CNCF', Scaling: 'Automated', License: 'Open Source (Apache-2.0)' }, + scores: { Scalability: 100, Ecosystem: 100, Complexity: 85 }, + prices: { amazon: { price: 'Free', link: 'https://kubernetes.io/' }, flipkart: { price: 'Free', link: 'https://kubernetes.io/' }, official: { price: 'Free', link: 'https://kubernetes.io/' } } + }, + { id: 425, title: 'Docker Swarm', subtitle: 'Native clustering for Docker', category: 'TOOLS', isNew: false, features: { Type: 'Orchestration', License: 'Apache-2.0' }, + specifications: { Type: 'Orchestration', Platform: 'Cross-platform', Integration: 'Docker CLI', Setup: 'Simple', License: 'Open Source (Apache-2.0)' }, + scores: { Usability: 96, Simplicity: 98, Scalability: 88 }, + prices: { amazon: { price: 'Free', link: 'https://docs.docker.com/engine/swarm/' }, flipkart: { price: 'Free', link: 'https://docs.docker.com/engine/swarm/' }, official: { price: 'Free', link: 'https://docs.docker.com/engine/swarm/' } } + }, + { id: 426, title: 'Nomad', subtitle: 'Simple/flexible workload orchestrator', category: 'TOOLS', isNew: false, features: { Type: 'Orchestration', License: 'BUSL/MPL' }, + specifications: { Type: 'Orchestration', Platform: 'Cross-platform', Vendor: 'HashiCorp', Workloads: 'Containers, VMs, Binaries', License: 'Open Source/BUSL' }, + scores: { Flexibility: 97, Simplicity: 94, Performance: 95 }, + prices: { amazon: { price: 'Free', link: 'https://www.nomadproject.io/' }, flipkart: { price: 'Free', link: 'https://www.nomadproject.io/' }, official: { price: 'Free', link: 'https://www.nomadproject.io/' } } + }, + { id: 427, title: 'Ansible', subtitle: 'Simple IT automation', category: 'TOOLS', isNew: false, features: { Type: 'Config Mgmt', License: 'GPL-3.0' }, + specifications: { Type: 'Automation', Platform: 'Cross-platform', Language: 'Python/YAML', Architecture: 'Agentless', License: 'Open Source (GPL-3.0)' }, + scores: { Usability: 98, Adoption: 99, Extensibility: 96 }, + prices: { amazon: { price: 'Free', link: 'https://www.ansible.com/' }, flipkart: { price: 'Free', link: 'https://www.ansible.com/' }, official: { price: 'Free', link: 'https://www.ansible.com/' } } + }, + { id: 428, title: 'Puppet', subtitle: 'Infrastructure delivery tooling', category: 'TOOLS', isNew: false, features: { Type: 'Config Mgmt', License: 'Apache-2.0' }, + specifications: { Type: 'Automation', Platform: 'Cross-platform', Language: 'Ruby/DSL', Architecture: 'Agent-based', License: 'Open Source (Apache-2.0)' }, + scores: { Scalability: 97, Reliability: 95, Usability: 85 }, + prices: { amazon: { price: 'Free', link: 'https://puppet.com/' }, flipkart: { price: 'Free', link: 'https://puppet.com/' }, official: { price: 'Free', link: 'https://puppet.com/' } } + }, + { id: 429, title: 'Chef', subtitle: 'Infrastructure as code', category: 'TOOLS', isNew: false, features: { Type: 'Config Mgmt', License: 'Apache-2.0' }, + specifications: { Type: 'Automation', Platform: 'Cross-platform', Language: 'Ruby', Architecture: 'Agent-based', License: 'Open Source (Apache-2.0)' }, + scores: { Flexibility: 95, Extensibility: 96, Usability: 82 }, + prices: { amazon: { price: 'Free', link: 'https://www.chef.io/' }, flipkart: { price: 'Free', link: 'https://www.chef.io/' }, official: { price: 'Free', link: 'https://www.chef.io/' } } + }, + { id: 430, title: 'Redmine', subtitle: 'Flexible project management web app', category: 'TOOLS', isNew: false, features: { Type: 'Project Mgmt', License: 'GPL-2.0' }, + specifications: { Type: 'Issue Tracker', Platform: 'Web', Language: 'Ruby on Rails', Plugins: 'Extensive', License: 'Open Source (GPL-2.0)' }, + scores: { Features: 94, Flexibility: 95, ModernUI: 70 }, + prices: { amazon: { price: 'Free', link: 'https://www.redmine.org/' }, flipkart: { price: 'Free', link: 'https://www.redmine.org/' }, official: { price: 'Free', link: 'https://www.redmine.org/' } } + }, + { id: 431, title: 'Bugzilla', subtitle: 'Robust defect tracking system', category: 'TOOLS', isNew: false, features: { Type: 'Project Mgmt', License: 'MPL' }, + specifications: { Type: 'Issue Tracker', Platform: 'Web', Language: 'Perl', UseCase: 'Large Projects', License: 'Open Source (MPL)' }, + scores: { Capability: 98, Speed: 90, ModernUI: 60 }, + prices: { amazon: { price: 'Free', link: 'https://www.bugzilla.org/' }, flipkart: { price: 'Free', link: 'https://www.bugzilla.org/' }, official: { price: 'Free', link: 'https://www.bugzilla.org/' } } + }, + { id: 432, title: 'Taiga', subtitle: 'Agile project management platform', category: 'TOOLS', isNew: false, features: { Type: 'Project Mgmt', License: 'AGPL-3.0' }, + specifications: { Type: 'Issue Tracker', Platform: 'Web', Language: 'Python/Django', Framework: 'Scrum/Kanban', License: 'Open Source (AGPL-3.0)' }, + scores: { Usability: 96, Aesthetics: 95, Features: 90 }, + prices: { amazon: { price: 'Free', link: 'https://taiga.io/' }, flipkart: { price: 'Free', link: 'https://taiga.io/' }, official: { price: 'Free', link: 'https://taiga.io/' } } + }, + { id: 433, title: 'SonarQube (Community)', subtitle: 'Code quality and security', category: 'TOOLS', isNew: false, features: { Type: 'Code Quality', License: 'LGPL-3.0' }, + specifications: { Type: 'Static Analysis', Platform: 'Web', Support: '15+ Languages', UseCase: 'CI/CD Integration', License: 'Open Source (LGPL-3.0)' }, + scores: { Analysis: 98, Ecosystem: 96, Usability: 92 }, + prices: { amazon: { price: 'Free', link: 'https://www.sonarsource.com/products/sonarqube/' }, flipkart: { price: 'Free', link: 'https://www.sonarsource.com/products/sonarqube/' }, official: { price: 'Free', link: 'https://www.sonarqube.org/' } } + }, + { id: 434, title: 'ESLint', subtitle: 'Pluggable JavaScript linter', category: 'TOOLS', isNew: false, features: { Type: 'Code Quality', License: 'MIT' }, + specifications: { Type: 'Linter', Platform: 'Node.js', Language: 'JS/TS', Customization: 'High', License: 'Open Source (MIT)' }, + scores: { Usability: 99, Ecosystem: 100, Speed: 95 }, + prices: { amazon: { price: 'Free', link: 'https://eslint.org/' }, flipkart: { price: 'Free', link: 'https://eslint.org/' }, official: { price: 'Free', link: 'https://eslint.org/' } } + }, + { id: 435, title: 'Prettier', subtitle: 'Opinionated code formatter', category: 'TOOLS', isNew: false, features: { Type: 'Code Quality', License: 'MIT' }, + specifications: { Type: 'Formatter', Platform: 'Node.js', Language: 'Multiple', Ecosystem: 'IDE Plug-ins', License: 'Open Source (MIT)' }, + scores: { Speed: 98, Consistency: 100, Adoption: 99 }, + prices: { amazon: { price: 'Free', link: 'https://prettier.io/' }, flipkart: { price: 'Free', link: 'https://prettier.io/' }, official: { price: 'Free', link: 'https://prettier.io/' } } + }, + { id: 436, title: 'Selenium', subtitle: 'Browser automation framework', category: 'TOOLS', isNew: false, features: { Type: 'Testing', License: 'Apache-2.0' }, + specifications: { Type: 'Testing Web', Platform: 'Cross-platform', Language: 'Multiple', Support: 'All major browsers', License: 'Open Source (Apache-2.0)' }, + scores: { Capability: 99, Ecosystem: 100, Speed: 80 }, + prices: { amazon: { price: 'Free', link: 'https://www.selenium.dev/' }, flipkart: { price: 'Free', link: 'https://www.selenium.dev/' }, official: { price: 'Free', link: 'https://www.selenium.dev/' } } + }, + { id: 437, title: 'Cypress', subtitle: 'Next generation front end testing tool', category: 'TOOLS', isNew: false, features: { Type: 'Testing', License: 'MIT' }, + specifications: { Type: 'Testing Web', Platform: 'Cross-platform', Language: 'JavaScript', Focus: 'E2E Testing', License: 'Open Source (MIT)' }, + scores: { Usability: 98, Speed: 95, Features: 94 }, + prices: { amazon: { price: 'Free', link: 'https://www.cypress.io/' }, flipkart: { price: 'Free', link: 'https://www.cypress.io/' }, official: { price: 'Free', link: 'https://www.cypress.io/' } } + }, + { id: 438, title: 'JUnit', subtitle: 'Testing framework for Java', category: 'TOOLS', isNew: false, features: { Type: 'Testing', License: 'EPL-2.0' }, + specifications: { Type: 'Unit Testing', Platform: 'Java', Architecture: 'JUnit 5 Platform', UseCase: 'TDD', License: 'Open Source (EPL-2.0)' }, + scores: { Ecosystem: 100, Stability: 99, Extensibility: 95 }, + prices: { amazon: { price: 'Free', link: 'https://junit.org/' }, flipkart: { price: 'Free', link: 'https://junit.org/' }, official: { price: 'Free', link: 'https://junit.org/' } } + }, + { id: 439, title: 'PostgreSQL', subtitle: 'Advanced open source relational DB', category: 'TOOLS', isNew: false, features: { Type: 'Database', License: 'PostgreSQL' }, + specifications: { Type: 'RDBMS', Platform: 'Cross-platform', Language: 'C', ACID: 'Yes', License: 'Open Source (PostgreSQL License)' }, + scores: { Reliability: 100, Features: 99, Performance: 95 }, + prices: { amazon: { price: 'Free', link: 'https://www.postgresql.org/' }, flipkart: { price: 'Free', link: 'https://www.postgresql.org/' }, official: { price: 'Free', link: 'https://www.postgresql.org/' } } + }, + { id: 440, title: 'MySQL', subtitle: 'Most popular open source DB', category: 'TOOLS', isNew: false, features: { Type: 'Database', License: 'GPL-2.0' }, + specifications: { Type: 'RDBMS', Platform: 'Cross-platform', Language: 'C/C++', Performance: 'High', License: 'Open Source (GPL-2.0)' }, + scores: { Scalability: 96, Adoption: 100, Usability: 92 }, + prices: { amazon: { price: 'Free', link: 'https://www.mysql.com/' }, flipkart: { price: 'Free', link: 'https://www.mysql.com/' }, official: { price: 'Free', link: 'https://www.mysql.com/' } } + }, + { id: 441, title: 'MariaDB', subtitle: 'Community-developed fork of MySQL', category: 'TOOLS', isNew: false, features: { Type: 'Database', License: 'GPL-2.0' }, + specifications: { Type: 'RDBMS', Platform: 'Cross-platform', Language: 'C/C++', StorageEngines: 'Pluggable', License: 'Open Source (GPL-2.0)' }, + scores: { Innovation: 95, Performance: 97, Compatibility: 98 }, + prices: { amazon: { price: 'Free', link: 'https://mariadb.org/' }, flipkart: { price: 'Free', link: 'https://mariadb.org/' }, official: { price: 'Free', link: 'https://mariadb.org/' } } + }, + { id: 442, title: 'Hoppscotch', subtitle: 'Open source API development ecosystem', category: 'TOOLS', isNew: true, features: { Type: 'API Tool', License: 'MIT' }, + specifications: { Type: 'API Client', Platform: 'Web/PWA', Architecture: 'Vue.js', Identity: 'Postman Alternative', License: 'Open Source (MIT)' }, + scores: { Usability: 98, Speed: 99, Features: 92 }, + prices: { amazon: { price: 'Free', link: 'https://hoppscotch.io/' }, flipkart: { price: 'Free', link: 'https://hoppscotch.io/' }, official: { price: 'Free', link: 'https://hoppscotch.io/' } } + }, + { id: 443, title: 'Insomnia', subtitle: 'API platform for GraphQL/REST/gRPC', category: 'TOOLS', isNew: false, features: { Type: 'API Tool', License: 'MIT' }, + specifications: { Type: 'API Client', Platform: 'Cross-platform', Support: 'GraphQL, REST', Extensibility: 'Plugins', License: 'Open Source (MIT)' }, + scores: { Aesthetics: 96, Features: 95, Adoption: 90 }, + prices: { amazon: { price: 'Free', link: 'https://insomnia.rest/' }, flipkart: { price: 'Free', link: 'https://insomnia.rest/' }, official: { price: 'Free', link: 'https://insomnia.rest/' } } + }, + { id: 444, title: 'Bruno', subtitle: 'Open-source IDE for exploring APIs', category: 'TOOLS', isNew: true, features: { Type: 'API Tool', License: 'MIT' }, + specifications: { Type: 'API Client', Platform: 'Cross-platform', Storage: 'Local Plain Text', Identity: 'Postman Alternative', License: 'Open Source (MIT)' }, + scores: { Privacy: 100, Usability: 94, Speed: 96 }, + prices: { amazon: { price: 'Free', link: 'https://www.usebruno.com/' }, flipkart: { price: 'Free', link: 'https://www.usebruno.com/' }, official: { price: 'Free', link: 'https://www.usebruno.com/' } } + }, + { id: 445, title: 'Prometheus', subtitle: 'Monitoring system & time series DB', category: 'TOOLS', isNew: false, features: { Type: 'Monitoring', License: 'Apache-2.0' }, + specifications: { Type: 'Monitoring', Platform: 'Linux', Ecosystem: 'CNCF', QueryLanguage: 'PromQL', License: 'Open Source (Apache-2.0)' }, + scores: { Scalability: 98, Features: 99, EaseOfSetup: 85 }, + prices: { amazon: { price: 'Free', link: 'https://prometheus.io/' }, flipkart: { price: 'Free', link: 'https://prometheus.io/' }, official: { price: 'Free', link: 'https://prometheus.io/' } } + }, + { id: 446, title: 'Grafana', subtitle: 'The open observability platform', category: 'TOOLS', isNew: false, features: { Type: 'Monitoring', License: 'AGPL-3.0' }, + specifications: { Type: 'Dashboarding', Platform: 'Cross-platform', Integration: 'Prometheus, TSDBs', Visuals: 'Extensive', License: 'Open Source (AGPL-3.0)' }, + scores: { Visualization: 100, Usability: 96, Ecosystem: 99 }, + prices: { amazon: { price: 'Free', link: 'https://grafana.com/' }, flipkart: { price: 'Free', link: 'https://grafana.com/' }, official: { price: 'Free', link: 'https://grafana.com/' } } + }, + { id: 447, title: 'Zabbix', subtitle: 'Enterprise-class monitoring solution', category: 'TOOLS', isNew: false, features: { Type: 'Monitoring', License: 'GPL-2.0' }, + specifications: { Type: 'Monitoring', Platform: 'Cross-platform', Scalability: 'Enterprise', Agents: 'Available', License: 'Open Source (GPL-2.0)' }, + scores: { Capability: 97, Scalability: 96, ModernUI: 80 }, + prices: { amazon: { price: 'Free', link: 'https://www.zabbix.com/' }, flipkart: { price: 'Free', link: 'https://www.zabbix.com/' }, official: { price: 'Free', link: 'https://www.zabbix.com/' } } + }, + { id: 448, title: 'Elasticsearch', subtitle: 'Distributed, RESTful search/analytics engine', category: 'TOOLS', isNew: false, features: { Type: 'Log Mgmt', License: 'Elastic/SSPL' }, + specifications: { Type: 'Search Engine', Platform: 'Cross-platform', Base: 'Apache Lucene', Ecosystem: 'ELK Stack', License: 'Open Source / Business' }, + scores: { Speed: 99, Scalability: 98, Features: 97 }, + prices: { amazon: { price: 'Free', link: 'https://www.elastic.co/' }, flipkart: { price: 'Free', link: 'https://www.elastic.co/' }, official: { price: 'Free', link: 'https://www.elastic.co/' } } + }, + { id: 449, title: 'Logstash', subtitle: 'Server-side data processing pipeline', category: 'TOOLS', isNew: false, features: { Type: 'Log Mgmt', License: 'Elastic/SSPL' }, + specifications: { Type: 'Data Pipeline', Platform: 'Cross-platform', Input/Output: 'Versatile', Ecosystem: 'ELK Stack', License: 'Open Source / Business' }, + scores: { Capability: 96, Flexibility: 98, Performance: 88 }, + prices: { amazon: { price: 'Free', link: 'https://www.elastic.co/logstash' }, flipkart: { price: 'Free', link: 'https://www.elastic.co/logstash' }, official: { price: 'Free', link: 'https://www.elastic.co/logstash' } } + }, + { id: 450, title: 'Fluentd', subtitle: 'Data collector for unified logging layer', category: 'TOOLS', isNew: false, features: { Type: 'Log Mgmt', License: 'Apache-2.0' }, + specifications: { Type: 'Data Pipeline', Platform: 'Cross-platform', Language: 'Ruby/C', Ecosystem: 'CNCF', License: 'Open Source (Apache-2.0)' }, + scores: { Reliability: 98, Adaptability: 97, ResourceUsage: 90 }, + prices: { amazon: { price: 'Free', link: 'https://www.fluentd.org/' }, flipkart: { price: 'Free', link: 'https://www.fluentd.org/' }, official: { price: 'Free', link: 'https://www.fluentd.org/' } } + }, + { id: 451, title: 'Gitea', subtitle: 'Painless self-hosted Git service', category: 'TOOLS', isNew: false, features: { Type: 'Code Hosting', License: 'MIT' }, + specifications: { Type: 'Forge', Platform: 'Cross-platform', Language: 'Go', Focus: 'Lightweight', License: 'Open Source (MIT)' }, + scores: { Performance: 99, Simplicity: 96, Features: 88 }, + prices: { amazon: { price: 'Free', link: 'https://gitea.io/' }, flipkart: { price: 'Free', link: 'https://gitea.io/' }, official: { price: 'Free', link: 'https://gitea.io/' } } + }, + { id: 452, title: 'GitLab CE', subtitle: 'Complete DevOps platform', category: 'TOOLS', isNew: false, features: { Type: 'Code Hosting', License: 'MIT' }, + specifications: { Type: 'Forge', Platform: 'Linux', Ecosystem: 'All-in-one', Scale: 'Enterprise', License: 'Open Source (MIT)' }, + scores: { Features: 100, Scalability: 95, ResourceUsage: 75 }, + prices: { amazon: { price: 'Free', link: 'https://about.gitlab.com/' }, flipkart: { price: 'Free', link: 'https://about.gitlab.com/' }, official: { price: 'Free', link: 'https://about.gitlab.com/install/' } } + }, + { id: 453, title: 'Nginx', subtitle: 'High performance web server & reverse proxy', category: 'TOOLS', isNew: false, features: { Type: 'Web Server', License: 'BSD-2-Clause' }, + specifications: { Type: 'Web Server', Platform: 'Cross-platform', Architecture: 'Event-driven', Capability: 'Load Balancer', License: 'Open Source (BSD-2-Clause)' }, + scores: { Performance: 100, Reliability: 99, Concurrency: 100 }, + prices: { amazon: { price: 'Free', link: 'https://nginx.org/' }, flipkart: { price: 'Free', link: 'https://nginx.org/' }, official: { price: 'Free', link: 'https://nginx.org/' } } + }, + { id: 454, title: 'Apache HTTP Server', subtitle: 'Most popular web server', category: 'TOOLS', isNew: false, features: { Type: 'Web Server', License: 'Apache-2.0' }, + specifications: { Type: 'Web Server', Platform: 'Cross-platform', Architecture: 'Process/Thread based', Modules: 'Extensive', License: 'Open Source (Apache-2.0)' }, + scores: { Features: 98, Ecosystem: 100, Configurable: 96 }, + prices: { amazon: { price: 'Free', link: 'https://httpd.apache.org/' }, flipkart: { price: 'Free', link: 'https://httpd.apache.org/' }, official: { price: 'Free', link: 'https://httpd.apache.org/' } } + }""" +] + +# We want to string replace `// Memory (RAM)` with the new tools and `// Memory (RAM)` +new_text = text.replace('// Memory (RAM)', new_tools[0] + ',\n\n // Memory (RAM)') + +with open('generate_data.js', 'w', encoding='utf-8') as f: + f.write(new_text) + +print(f"Added {new_tools[0].count('{ id:')} new tools.") diff --git a/teams/double-door-refrigerator/add_data_enhanced.py b/teams/double-door-refrigerator/add_data_enhanced.py new file mode 100644 index 0000000..e9c5dad --- /dev/null +++ b/teams/double-door-refrigerator/add_data_enhanced.py @@ -0,0 +1,252 @@ +import re + +with open('generate_data.js', 'r', encoding='utf-8') as f: + text = f.read() + +# First, remove the previously inserted tools (ID 409 to 454) if they exist. +# A simple way is to find the index of "id: 409" and cut until "// Memory (RAM)" +start_idx = text.find(' { id: 409,') +if start_idx != -1: + end_idx = text.find('// Memory (RAM)') + text = text[:start_idx] + ' // Memory (RAM)' + text[end_idx+15:] + +new_tools = [ +""" { id: 409, title: 'Git', subtitle: 'Distributed version control system', category: 'TOOLS', isNew: false, features: { Type: 'VCS', License: 'GPL-2.0' }, + specifications: { Type: 'Version Control', Platform: 'Cross-platform', Language: 'C', Support: 'Git', License: 'Open Source (GPL-2.0)', Description: 'The most widely used modern version control system in the world.', PrimaryUseCase: 'Source code management, non-linear workflows.', Ecosystem: 'GitHub, GitLab, Bitbucket' }, + scores: { Reliability: 100, Speed: 98, EaseOfUse: 85 }, + prices: { amazon: { price: 'Free', link: 'https://git-scm.com/' }, flipkart: { price: 'Free', link: 'https://git-scm.com/' }, official: { price: 'Free', link: 'https://git-scm.com/' } } + }, + { id: 410, title: 'Apache Subversion (SVN)', subtitle: 'Centralized version control', category: 'TOOLS', isNew: false, features: { Type: 'VCS', License: 'Apache-2.0' }, + specifications: { Type: 'Version Control', Platform: 'Cross-platform', Language: 'C', Support: 'SVN', License: 'Open Source (Apache-2.0)', Description: 'Centralized revision control system meant to be a better CVS.', PrimaryUseCase: 'Legacy enterprise version control, large binary files.', Ecosystem: 'TortoiseSVN' }, + scores: { Reliability: 95, Speed: 80, EaseOfUse: 90 }, + prices: { amazon: { price: 'Free', link: 'https://subversion.apache.org/' }, flipkart: { price: 'Free', link: 'https://subversion.apache.org/' }, official: { price: 'Free', link: 'https://subversion.apache.org/' } } + }, + { id: 411, title: 'Mercurial', subtitle: 'Distributed version control', category: 'TOOLS', isNew: false, features: { Type: 'VCS', License: 'GPL-2.0' }, + specifications: { Type: 'Version Control', Platform: 'Cross-platform', Language: 'Python', Support: 'Mercurial', License: 'Open Source (GPL-2.0)', Description: 'Free, distributed source control management tool known for its performance and scale.', PrimaryUseCase: 'Handling large projects elegantly.', Ecosystem: 'RhodeCode, Phabricator' }, + scores: { Reliability: 98, Speed: 90, EaseOfUse: 92 }, + prices: { amazon: { price: 'Free', link: 'https://www.mercurial-scm.org/' }, flipkart: { price: 'Free', link: 'https://www.mercurial-scm.org/' }, official: { price: 'Free', link: 'https://www.mercurial-scm.org/' } } + }, + { id: 412, title: 'VSCodium', subtitle: 'Telemetry-free VS Code binary', category: 'TOOLS', isNew: false, features: { Type: 'IDE', License: 'MIT' }, + specifications: { Type: 'Code Editor', Platform: 'Cross-platform', Engine: 'Electron', Support: 'Multiple', License: 'Open Source (MIT)', Description: 'Community-driven, freely-licensed binary distribution of Microsoft VS Code without telemetry.', PrimaryUseCase: 'General purpose code editing.', Ecosystem: 'OpenVSX Registry' }, + scores: { Extensibility: 98, Performance: 90, Privacy: 100 }, + prices: { amazon: { price: 'Free', link: 'https://vscodium.com/' }, flipkart: { price: 'Free', link: 'https://vscodium.com/' }, official: { price: 'Free', link: 'https://vscodium.com/' } } + }, + { id: 413, title: 'Eclipse IDE', subtitle: 'Extensible development platform', category: 'TOOLS', isNew: false, features: { Type: 'IDE', License: 'EPL-2.0' }, + specifications: { Type: 'IDE', Platform: 'Cross-platform', Language: 'Java', Support: 'Multiple', License: 'Open Source (EPL-2.0)', Description: 'Famous for Java IDE, but C/C++ and PHP IDEs are also heavily used.', PrimaryUseCase: 'Enterprise Java development.', Ecosystem: 'Eclipse Marketplace' }, + scores: { Extensibility: 95, Performance: 80, Maturity: 99 }, + prices: { amazon: { price: 'Free', link: 'https://www.eclipse.org/' }, flipkart: { price: 'Free', link: 'https://www.eclipse.org/' }, official: { price: 'Free', link: 'https://www.eclipse.org/' } } + }, + { id: 414, title: 'IntelliJ IDEA Community', subtitle: 'Capable Java IDE', category: 'TOOLS', isNew: false, features: { Type: 'IDE', License: 'Apache-2.0' }, + specifications: { Type: 'IDE', Platform: 'Cross-platform', Language: 'Java', Support: 'Java, Kotlin', License: 'Open Source (Apache-2.0)', Description: 'The smartest JVM IDE by JetBrains, community edition.', PrimaryUseCase: 'JVM-based application development.', Ecosystem: 'JetBrains Marketplace' }, + scores: { Features: 96, Performance: 88, EaseOfUse: 92 }, + prices: { amazon: { price: 'Free', link: 'https://www.jetbrains.com/idea/' }, flipkart: { price: 'Free', link: 'https://www.jetbrains.com/idea/' }, official: { price: 'Free', link: 'https://www.jetbrains.com/idea/' } } + }, + { id: 415, title: 'Apache Maven', subtitle: 'Software comprehension tool', category: 'TOOLS', isNew: false, features: { Type: 'Build Tool', License: 'Apache-2.0' }, + specifications: { Type: 'Build Tool', Platform: 'Cross-platform', Language: 'Java', Support: 'POM based', License: 'Open Source (Apache-2.0)', Description: 'Declarative build automation primarily used for Java projects.', PrimaryUseCase: 'Dependency management and standardized builds.', Ecosystem: 'Maven Central Repository' }, + scores: { Reliability: 99, Features: 90, Ecosystem: 98 }, + prices: { amazon: { price: 'Free', link: 'https://maven.apache.org/' }, flipkart: { price: 'Free', link: 'https://maven.apache.org/' }, official: { price: 'Free', link: 'https://maven.apache.org/' } } + }, + { id: 416, title: 'Gradle', subtitle: 'Accelerates developer productivity', category: 'TOOLS', isNew: false, features: { Type: 'Build Tool', License: 'Apache-2.0' }, + specifications: { Type: 'Build Tool', Platform: 'Cross-platform', Language: 'Java/Kotlin', Support: 'DSL', License: 'Open Source (Apache-2.0)', Description: 'Highly customizable and fast build automation tool.', PrimaryUseCase: 'Android development and multi-project Java builds.', Ecosystem: 'Gradle Plugins' }, + scores: { Performance: 95, Flexibility: 98, Ecosystem: 92 }, + prices: { amazon: { price: 'Free', link: 'https://gradle.org/' }, flipkart: { price: 'Free', link: 'https://gradle.org/' }, official: { price: 'Free', link: 'https://gradle.org/' } } + }, + { id: 417, title: 'Apache Ant', subtitle: 'Java based build tool', category: 'TOOLS', isNew: false, features: { Type: 'Build Tool', License: 'Apache-2.0' }, + specifications: { Type: 'Build Tool', Platform: 'Cross-platform', Language: 'Java', Support: 'XML based', License: 'Open Source (Apache-2.0)', Description: 'Extremely flexible, procedural build system using XML.', PrimaryUseCase: 'Custom build scripts and legacy Java support.', Ecosystem: 'Apache Foundation' }, + scores: { Dependability: 99, Speed: 90, Flexibility: 85 }, + prices: { amazon: { price: 'Free', link: 'https://ant.apache.org/' }, flipkart: { price: 'Free', link: 'https://ant.apache.org/' }, official: { price: 'Free', link: 'https://ant.apache.org/' } } + }, + { id: 418, title: 'Jenkins', subtitle: 'Leading open source automation server', category: 'TOOLS', isNew: false, features: { Type: 'CI/CD', License: 'MIT' }, + specifications: { Type: 'CI/CD Server', Platform: 'Cross-platform', Language: 'Java', Plugins: '1800+', License: 'Open Source (MIT)', Description: 'Provides hundreds of plugins to support building, deploying and automating any project.', PrimaryUseCase: 'Continuous Integration / Continuous Delivery pipelines.', Ecosystem: 'Jenkins Plugin Index' }, + scores: { Extensibility: 100, Ecosystem: 99, EaseOfSetup: 80 }, + prices: { amazon: { price: 'Free', link: 'https://www.jenkins.io/' }, flipkart: { price: 'Free', link: 'https://www.jenkins.io/' }, official: { price: 'Free', link: 'https://www.jenkins.io/' } } + }, + { id: 419, title: 'GitLab CI/CD', subtitle: 'Integrated CI/CD platform', category: 'TOOLS', isNew: false, features: { Type: 'CI/CD', License: 'MIT' }, + specifications: { Type: 'CI/CD', Platform: 'Cross-platform', Integrated: 'GitLab', Runners: 'Go based', License: 'Open Source (MIT)', Description: 'Built into GitLab to automatically build, test, secure, and deploy software.', PrimaryUseCase: 'Seamless code-to-deployment workflows.', Ecosystem: 'GitLab Registry' }, + scores: { Integration: 99, Features: 95, EaseOfUse: 92 }, + prices: { amazon: { price: 'Free', link: 'https://about.gitlab.com/' }, flipkart: { price: 'Free', link: 'https://about.gitlab.com/' }, official: { price: 'Free', link: 'https://docs.gitlab.com/ee/ci/' } } + }, + { id: 420, title: 'Tekton', subtitle: 'Cloud-native CI/CD framework', category: 'TOOLS', isNew: false, features: { Type: 'CI/CD', License: 'Apache-2.0' }, + specifications: { Type: 'CI/CD', Platform: 'Kubernetes', Language: 'Go', Ecosystem: 'CD Foundation', License: 'Open Source (Apache-2.0)', Description: 'Kubernetes-native framework for creating continuous integration and delivery systems.', PrimaryUseCase: 'Serverless CI/CD on Kubernetes.', Ecosystem: 'Tekton Hub' }, + scores: { Flexibility: 95, Scalability: 98, Ecosystem: 88 }, + prices: { amazon: { price: 'Free', link: 'https://tekton.dev/' }, flipkart: { price: 'Free', link: 'https://tekton.dev/' }, official: { price: 'Free', link: 'https://tekton.dev/' } } + }, + { id: 421, title: 'Docker Engine', subtitle: 'Industry standard container runtime', category: 'TOOLS', isNew: false, features: { Type: 'Containerization', License: 'Apache-2.0' }, + specifications: { Type: 'Container Runtime', Platform: 'Linux/Mac/Win', Core: 'containerd', Interface: 'CLI', License: 'Open Source (Apache-2.0)', Description: 'De-facto standard for building, sharing, and running applications in isolated containers.', PrimaryUseCase: 'Local development and microservices packaging.', Ecosystem: 'Docker Hub' }, + scores: { Ecosystem: 100, Usability: 95, Reliability: 99 }, + prices: { amazon: { price: 'Free', link: 'https://www.docker.com/' }, flipkart: { price: 'Free', link: 'https://www.docker.com/' }, official: { price: 'Free', link: 'https://github.com/docker/engine' } } + }, + { id: 422, title: 'Podman', subtitle: 'Daemonless container engine', category: 'TOOLS', isNew: true, features: { Type: 'Containerization', License: 'Apache-2.0' }, + specifications: { Type: 'Container Runtime', Platform: 'Linux/Mac/Win', Architecture: 'Daemonless', Rootless: 'Yes', License: 'Open Source (Apache-2.0)', Description: 'A secure alternative to Docker that does not require a root daemon.', PrimaryUseCase: 'Rootless container isolation for improved security.', Ecosystem: 'RedHat / OCI' }, + scores: { Security: 98, Compatibility: 96, Architecture: 95 }, + prices: { amazon: { price: 'Free', link: 'https://podman.io/' }, flipkart: { price: 'Free', link: 'https://podman.io/' }, official: { price: 'Free', link: 'https://podman.io/' } } + }, + { id: 423, title: 'containerd', subtitle: 'Standard container runtime', category: 'TOOLS', isNew: false, features: { Type: 'Containerization', License: 'Apache-2.0' }, + specifications: { Type: 'Container Runtime', Platform: 'Linux/Win', Ecosystem: 'CNCF', Focus: 'Simplicity', License: 'Open Source (Apache-2.0)', Description: 'Industry-standard core container runtime with an emphasis on simplicity, robustness and portability.', PrimaryUseCase: 'Base runtime used by Kubernetes and Docker.', Ecosystem: 'CNCF' }, + scores: { Performance: 99, Reliability: 99, Ecosystem: 96 }, + prices: { amazon: { price: 'Free', link: 'https://containerd.io/' }, flipkart: { price: 'Free', link: 'https://containerd.io/' }, official: { price: 'Free', link: 'https://containerd.io/' } } + }, + { id: 424, title: 'Kubernetes', subtitle: 'Container orchestration system', category: 'TOOLS', isNew: false, features: { Type: 'Orchestration', License: 'Apache-2.0' }, + specifications: { Type: 'Orchestration', Platform: 'Linux', Ecosystem: 'CNCF', Scaling: 'Automated', License: 'Open Source (Apache-2.0)', Description: 'Automates deployment, scaling, and management of containerized applications.', PrimaryUseCase: 'Enterprise and cloud-scale container orchestration.', Ecosystem: 'Helm, Cloud Native' }, + scores: { Scalability: 100, Ecosystem: 100, Complexity: 85 }, + prices: { amazon: { price: 'Free', link: 'https://kubernetes.io/' }, flipkart: { price: 'Free', link: 'https://kubernetes.io/' }, official: { price: 'Free', link: 'https://kubernetes.io/' } } + }, + { id: 425, title: 'Docker Swarm', subtitle: 'Native clustering for Docker', category: 'TOOLS', isNew: false, features: { Type: 'Orchestration', License: 'Apache-2.0' }, + specifications: { Type: 'Orchestration', Platform: 'Cross-platform', Integration: 'Docker CLI', Setup: 'Simple', License: 'Open Source (Apache-2.0)', Description: 'Swarm mode is built into the Docker Engine and is extremely easy to set up.', PrimaryUseCase: 'Simple container orchestration for small/medium clusters.', Ecosystem: 'Docker Engine' }, + scores: { Usability: 96, Simplicity: 98, Scalability: 88 }, + prices: { amazon: { price: 'Free', link: 'https://docs.docker.com/engine/swarm/' }, flipkart: { price: 'Free', link: 'https://docs.docker.com/engine/swarm/' }, official: { price: 'Free', link: 'https://docs.docker.com/engine/swarm/' } } + }, + { id: 426, title: 'Nomad', subtitle: 'Simple/flexible workload orchestrator', category: 'TOOLS', isNew: false, features: { Type: 'Orchestration', License: 'BUSL/MPL' }, + specifications: { Type: 'Orchestration', Platform: 'Cross-platform', Vendor: 'HashiCorp', Workloads: 'Containers, VMs, Binaries', License: 'Open Source/BUSL', Description: 'Orchestrates any type of application, not just containers.', PrimaryUseCase: 'Mixed workloads (VMs + Containers + Edge) orchestration.', Ecosystem: 'Consul, Vault' }, + scores: { Flexibility: 97, Simplicity: 94, Performance: 95 }, + prices: { amazon: { price: 'Free', link: 'https://www.nomadproject.io/' }, flipkart: { price: 'Free', link: 'https://www.nomadproject.io/' }, official: { price: 'Free', link: 'https://www.nomadproject.io/' } } + }, + { id: 427, title: 'Ansible', subtitle: 'Simple IT automation', category: 'TOOLS', isNew: false, features: { Type: 'Config Mgmt', License: 'GPL-3.0' }, + specifications: { Type: 'Automation', Platform: 'Cross-platform', Language: 'Python/YAML', Architecture: 'Agentless', License: 'Open Source (GPL-3.0)', Description: 'Radically simple IT automation engine via SSH without agents.', PrimaryUseCase: 'Configuration management and ad-hoc infrastructure logic.', Ecosystem: 'Ansible Galaxy' }, + scores: { Usability: 98, Adoption: 99, Extensibility: 96 }, + prices: { amazon: { price: 'Free', link: 'https://www.ansible.com/' }, flipkart: { price: 'Free', link: 'https://www.ansible.com/' }, official: { price: 'Free', link: 'https://www.ansible.com/' } } + }, + { id: 428, title: 'Puppet', subtitle: 'Infrastructure delivery tooling', category: 'TOOLS', isNew: false, features: { Type: 'Config Mgmt', License: 'Apache-2.0' }, + specifications: { Type: 'Automation', Platform: 'Cross-platform', Language: 'Ruby/DSL', Architecture: 'Agent-based', License: 'Open Source (Apache-2.0)', Description: 'Ensures servers are configured in their desired state continuously.', PrimaryUseCase: 'Large scale infrastructure-as-code management.', Ecosystem: 'Puppet Forge' }, + scores: { Scalability: 97, Reliability: 95, Usability: 85 }, + prices: { amazon: { price: 'Free', link: 'https://puppet.com/' }, flipkart: { price: 'Free', link: 'https://puppet.com/' }, official: { price: 'Free', link: 'https://puppet.com/' } } + }, + { id: 429, title: 'Chef', subtitle: 'Infrastructure as code', category: 'TOOLS', isNew: false, features: { Type: 'Config Mgmt', License: 'Apache-2.0' }, + specifications: { Type: 'Automation', Platform: 'Cross-platform', Language: 'Ruby', Architecture: 'Agent-based', License: 'Open Source (Apache-2.0)', Description: 'Transform infrastructure into code using Ruby dialects.', PrimaryUseCase: 'Extremely customizable configuration enforcement.', Ecosystem: 'Chef Supermarket' }, + scores: { Flexibility: 95, Extensibility: 96, Usability: 82 }, + prices: { amazon: { price: 'Free', link: 'https://www.chef.io/' }, flipkart: { price: 'Free', link: 'https://www.chef.io/' }, official: { price: 'Free', link: 'https://www.chef.io/' } } + }, + { id: 430, title: 'Redmine', subtitle: 'Flexible project management web app', category: 'TOOLS', isNew: false, features: { Type: 'Project Mgmt', License: 'GPL-2.0' }, + specifications: { Type: 'Issue Tracker', Platform: 'Web', Language: 'Ruby on Rails', Plugins: 'Extensive', License: 'Open Source (GPL-2.0)', Description: 'Provides Gantt charts, calendar, wiki, forums, and role-based access.', PrimaryUseCase: 'Cross-project issue tracking and traditional management.', Ecosystem: 'Redmine Plugins' }, + scores: { Features: 94, Flexibility: 95, ModernUI: 70 }, + prices: { amazon: { price: 'Free', link: 'https://www.redmine.org/' }, flipkart: { price: 'Free', link: 'https://www.redmine.org/' }, official: { price: 'Free', link: 'https://www.redmine.org/' } } + }, + { id: 431, title: 'Bugzilla', subtitle: 'Robust defect tracking system', category: 'TOOLS', isNew: false, features: { Type: 'Project Mgmt', License: 'MPL' }, + specifications: { Type: 'Issue Tracker', Platform: 'Web', Language: 'Perl', UseCase: 'Large Projects', License: 'Open Source (MPL)', Description: 'Used by organizations like Mozilla to track highly complex software defects.', PrimaryUseCase: 'Heavy-duty software bug tracking.', Ecosystem: 'Bugzilla Extensions' }, + scores: { Capability: 98, Speed: 90, ModernUI: 60 }, + prices: { amazon: { price: 'Free', link: 'https://www.bugzilla.org/' }, flipkart: { price: 'Free', link: 'https://www.bugzilla.org/' }, official: { price: 'Free', link: 'https://www.bugzilla.org/' } } + }, + { id: 432, title: 'Taiga', subtitle: 'Agile project management platform', category: 'TOOLS', isNew: false, features: { Type: 'Project Mgmt', License: 'AGPL-3.0' }, + specifications: { Type: 'Issue Tracker', Platform: 'Web', Language: 'Python/Django', Framework: 'Scrum/Kanban', License: 'Open Source (AGPL-3.0)', Description: 'Highly visual platform tailored strictly for agile methodologies.', PrimaryUseCase: 'Scrum sprints and Kanban boards for dev teams.', Ecosystem: 'Taiga Integrations' }, + scores: { Usability: 96, Aesthetics: 95, Features: 90 }, + prices: { amazon: { price: 'Free', link: 'https://taiga.io/' }, flipkart: { price: 'Free', link: 'https://taiga.io/' }, official: { price: 'Free', link: 'https://taiga.io/' } } + }, + { id: 433, title: 'SonarQube (Community)', subtitle: 'Code quality and security', category: 'TOOLS', isNew: false, features: { Type: 'Code Quality', License: 'LGPL-3.0' }, + specifications: { Type: 'Static Analysis', Platform: 'Web', Support: '15+ Languages', UseCase: 'CI/CD Integration', License: 'Open Source (LGPL-3.0)', Description: 'Continuously inspects code quality to detect bugs, code smells and security vulnerabilities.', PrimaryUseCase: 'Automated CI code review.', Ecosystem: 'SonarSource' }, + scores: { Analysis: 98, Ecosystem: 96, Usability: 92 }, + prices: { amazon: { price: 'Free', link: 'https://www.sonarsource.com/products/sonarqube/' }, flipkart: { price: 'Free', link: 'https://www.sonarsource.com/products/sonarqube/' }, official: { price: 'Free', link: 'https://www.sonarqube.org/' } } + }, + { id: 434, title: 'ESLint', subtitle: 'Pluggable JavaScript linter', category: 'TOOLS', isNew: false, features: { Type: 'Code Quality', License: 'MIT' }, + specifications: { Type: 'Linter', Platform: 'Node.js', Language: 'JS/TS', Customization: 'High', License: 'Open Source (MIT)', Description: 'Find and fix problems in your JavaScript code.', PrimaryUseCase: 'Enforcing JS/TS code standards and catching syntax bugs.', Ecosystem: 'NPM rulesets' }, + scores: { Usability: 99, Ecosystem: 100, Speed: 95 }, + prices: { amazon: { price: 'Free', link: 'https://eslint.org/' }, flipkart: { price: 'Free', link: 'https://eslint.org/' }, official: { price: 'Free', link: 'https://eslint.org/' } } + }, + { id: 435, title: 'Prettier', subtitle: 'Opinionated code formatter', category: 'TOOLS', isNew: false, features: { Type: 'Code Quality', License: 'MIT' }, + specifications: { Type: 'Formatter', Platform: 'Node.js', Language: 'Multiple', Ecosystem: 'IDE Plug-ins', License: 'Open Source (MIT)', Description: 'Parses code and re-prints it with its own consistent style.', PrimaryUseCase: 'Automatic code style homogenization over a repository.', Ecosystem: 'Prettier Plugins' }, + scores: { Speed: 98, Consistency: 100, Adoption: 99 }, + prices: { amazon: { price: 'Free', link: 'https://prettier.io/' }, flipkart: { price: 'Free', link: 'https://prettier.io/' }, official: { price: 'Free', link: 'https://prettier.io/' } } + }, + { id: 436, title: 'Selenium', subtitle: 'Browser automation framework', category: 'TOOLS', isNew: false, features: { Type: 'Testing', License: 'Apache-2.0' }, + specifications: { Type: 'Testing Web', Platform: 'Cross-platform', Language: 'Multiple', Support: 'All major browsers', License: 'Open Source (Apache-2.0)', Description: 'Provides a playback tool for authoring tests without the need to learn a test scripting language.', PrimaryUseCase: 'Automated end-to-end web testing across all browsers.', Ecosystem: 'Selenium Grid' }, + scores: { Capability: 99, Ecosystem: 100, Speed: 80 }, + prices: { amazon: { price: 'Free', link: 'https://www.selenium.dev/' }, flipkart: { price: 'Free', link: 'https://www.selenium.dev/' }, official: { price: 'Free', link: 'https://www.selenium.dev/' } } + }, + { id: 437, title: 'Cypress', subtitle: 'Next generation front end testing tool', category: 'TOOLS', isNew: false, features: { Type: 'Testing', License: 'MIT' }, + specifications: { Type: 'Testing Web', Platform: 'Cross-platform', Language: 'JavaScript', Focus: 'E2E Testing', License: 'Open Source (MIT)', Description: 'Modern web automation built for the modern web directly in the browser architecture.', PrimaryUseCase: 'Developer-oriented E2E and component testing.', Ecosystem: 'Cypress Dashboard' }, + scores: { Usability: 98, Speed: 95, Features: 94 }, + prices: { amazon: { price: 'Free', link: 'https://www.cypress.io/' }, flipkart: { price: 'Free', link: 'https://www.cypress.io/' }, official: { price: 'Free', link: 'https://www.cypress.io/' } } + }, + { id: 438, title: 'JUnit', subtitle: 'Testing framework for Java', category: 'TOOLS', isNew: false, features: { Type: 'Testing', License: 'EPL-2.0' }, + specifications: { Type: 'Unit Testing', Platform: 'Java', Architecture: 'JUnit 5 Platform', UseCase: 'TDD', License: 'Open Source (EPL-2.0)', Description: 'The most popular unit testing framework providing annotations for test execution.', PrimaryUseCase: 'Test-Driven Development (TDD) for Java applications.', Ecosystem: 'Maven/Gradle Test' }, + scores: { Ecosystem: 100, Stability: 99, Extensibility: 95 }, + prices: { amazon: { price: 'Free', link: 'https://junit.org/' }, flipkart: { price: 'Free', link: 'https://junit.org/' }, official: { price: 'Free', link: 'https://junit.org/' } } + }, + { id: 439, title: 'PostgreSQL', subtitle: 'Advanced open source relational DB', category: 'TOOLS', isNew: false, features: { Type: 'Database', License: 'PostgreSQL' }, + specifications: { Type: 'RDBMS', Platform: 'Cross-platform', Language: 'C', ACID: 'Yes', License: 'Open Source (PostgreSQL License)', Description: 'Highly robust relational database system known for strict standards compliance and scalability.', PrimaryUseCase: 'Complex relational schemas and structured data integrity.', Ecosystem: 'PostGIS, Citus' }, + scores: { Reliability: 100, Features: 99, Performance: 95 }, + prices: { amazon: { price: 'Free', link: 'https://www.postgresql.org/' }, flipkart: { price: 'Free', link: 'https://www.postgresql.org/' }, official: { price: 'Free', link: 'https://www.postgresql.org/' } } + }, + { id: 440, title: 'MySQL', subtitle: 'Most popular open source DB', category: 'TOOLS', isNew: false, features: { Type: 'Database', License: 'GPL-2.0' }, + specifications: { Type: 'RDBMS', Platform: 'Cross-platform', Language: 'C/C++', Performance: 'High', License: 'Open Source (GPL-2.0)', Description: 'Fast, reliable, and extremely popular database backend for web applications.', PrimaryUseCase: 'General purpose relational data serving.', Ecosystem: 'Oracle' }, + scores: { Scalability: 96, Adoption: 100, Usability: 92 }, + prices: { amazon: { price: 'Free', link: 'https://www.mysql.com/' }, flipkart: { price: 'Free', link: 'https://www.mysql.com/' }, official: { price: 'Free', link: 'https://www.mysql.com/' } } + }, + { id: 441, title: 'MariaDB', subtitle: 'Community-developed fork of MySQL', category: 'TOOLS', isNew: false, features: { Type: 'Database', License: 'GPL-2.0' }, + specifications: { Type: 'RDBMS', Platform: 'Cross-platform', Language: 'C/C++', StorageEngines: 'Pluggable', License: 'Open Source (GPL-2.0)', Description: 'Created by original developers of MySQL with guarantees to stay open source.', PrimaryUseCase: 'Drop-in replacement for MySQL with more features.', Ecosystem: 'MariaDB Foundation' }, + scores: { Innovation: 95, Performance: 97, Compatibility: 98 }, + prices: { amazon: { price: 'Free', link: 'https://mariadb.org/' }, flipkart: { price: 'Free', link: 'https://mariadb.org/' }, official: { price: 'Free', link: 'https://mariadb.org/' } } + }, + { id: 442, title: 'Hoppscotch', subtitle: 'Open source API development ecosystem', category: 'TOOLS', isNew: true, features: { Type: 'API Tool', License: 'MIT' }, + specifications: { Type: 'API Client', Platform: 'Web/PWA', Architecture: 'Vue.js', Identity: 'Postman Alternative', License: 'Open Source (MIT)', Description: 'Lightweight web-based API request builder with real-time syncing.', PrimaryUseCase: 'Rapid API testing and sharing within the browser.', Ecosystem: 'Hoppscotch CLI' }, + scores: { Usability: 98, Speed: 99, Features: 92 }, + prices: { amazon: { price: 'Free', link: 'https://hoppscotch.io/' }, flipkart: { price: 'Free', link: 'https://hoppscotch.io/' }, official: { price: 'Free', link: 'https://hoppscotch.io/' } } + }, + { id: 443, title: 'Insomnia', subtitle: 'API platform for GraphQL/REST/gRPC', category: 'TOOLS', isNew: false, features: { Type: 'API Tool', License: 'MIT' }, + specifications: { Type: 'API Client', Platform: 'Cross-platform', Support: 'GraphQL, REST', Extensibility: 'Plugins', License: 'Open Source (MIT)', Description: 'Desktop application to test APIs locally and efficiently with strong GraphQL support.', PrimaryUseCase: 'REST/GraphQL API design and testing.', Ecosystem: 'Insomnia Plugins' }, + scores: { Aesthetics: 96, Features: 95, Adoption: 90 }, + prices: { amazon: { price: 'Free', link: 'https://insomnia.rest/' }, flipkart: { price: 'Free', link: 'https://insomnia.rest/' }, official: { price: 'Free', link: 'https://insomnia.rest/' } } + }, + { id: 444, title: 'Bruno', subtitle: 'Open-source IDE for exploring APIs', category: 'TOOLS', isNew: true, features: { Type: 'API Tool', License: 'MIT' }, + specifications: { Type: 'API Client', Platform: 'Cross-platform', Storage: 'Local Plain Text', Identity: 'Postman Alternative', License: 'Open Source (MIT)', Description: 'Revolutionary API client that stores collections as plain text making it Git-friendly.', PrimaryUseCase: 'Version-controlled API collections without cloud dependency.', Ecosystem: 'Bruno CLI' }, + scores: { Privacy: 100, Usability: 94, Speed: 96 }, + prices: { amazon: { price: 'Free', link: 'https://www.usebruno.com/' }, flipkart: { price: 'Free', link: 'https://www.usebruno.com/' }, official: { price: 'Free', link: 'https://www.usebruno.com/' } } + }, + { id: 445, title: 'Prometheus', subtitle: 'Monitoring system & time series DB', category: 'TOOLS', isNew: false, features: { Type: 'Monitoring', License: 'Apache-2.0' }, + specifications: { Type: 'Monitoring', Platform: 'Linux', Ecosystem: 'CNCF', QueryLanguage: 'PromQL', License: 'Open Source (Apache-2.0)', Description: 'Gathers multi-dimensional time series data using a pull model.', PrimaryUseCase: 'Cloud-native service monitoring and alerting.', Ecosystem: 'Exporters / Grafana' }, + scores: { Scalability: 98, Features: 99, EaseOfSetup: 85 }, + prices: { amazon: { price: 'Free', link: 'https://prometheus.io/' }, flipkart: { price: 'Free', link: 'https://prometheus.io/' }, official: { price: 'Free', link: 'https://prometheus.io/' } } + }, + { id: 446, title: 'Grafana', subtitle: 'The open observability platform', category: 'TOOLS', isNew: false, features: { Type: 'Monitoring', License: 'AGPL-3.0' }, + specifications: { Type: 'Dashboarding', Platform: 'Cross-platform', Integration: 'Prometheus, TSDBs', Visuals: 'Extensive', License: 'Open Source (AGPL-3.0)', Description: 'Allows you to query, visualize, alert on and understand your metrics no matter where they are stored.', PrimaryUseCase: 'Interactive dashboards for metrics and logs.', Ecosystem: 'Grafana Plugins' }, + scores: { Visualization: 100, Usability: 96, Ecosystem: 99 }, + prices: { amazon: { price: 'Free', link: 'https://grafana.com/' }, flipkart: { price: 'Free', link: 'https://grafana.com/' }, official: { price: 'Free', link: 'https://grafana.com/' } } + }, + { id: 447, title: 'Zabbix', subtitle: 'Enterprise-class monitoring solution', category: 'TOOLS', isNew: false, features: { Type: 'Monitoring', License: 'GPL-2.0' }, + specifications: { Type: 'Monitoring', Platform: 'Cross-platform', Scalability: 'Enterprise', Agents: 'Available', License: 'Open Source (GPL-2.0)', Description: 'Mature, network-heavy monitoring system with built-in UI and alerting.', PrimaryUseCase: 'Server and network infrastructure monitoring.', Ecosystem: 'Zabbix Integrations' }, + scores: { Capability: 97, Scalability: 96, ModernUI: 80 }, + prices: { amazon: { price: 'Free', link: 'https://www.zabbix.com/' }, flipkart: { price: 'Free', link: 'https://www.zabbix.com/' }, official: { price: 'Free', link: 'https://www.zabbix.com/' } } + }, + { id: 448, title: 'Elasticsearch', subtitle: 'Distributed, RESTful search/analytics engine', category: 'TOOLS', isNew: false, features: { Type: 'Log Mgmt', License: 'Elastic/SSPL' }, + specifications: { Type: 'Search Engine', Platform: 'Cross-platform', Base: 'Apache Lucene', Ecosystem: 'ELK Stack', License: 'Open Source / Business', Description: 'Provides a distributed, multitenant-capable full-text search engine.', PrimaryUseCase: 'Log aggregation and extremely fast unstructured searches.', Ecosystem: 'Kibana, Logstash' }, + scores: { Speed: 99, Scalability: 98, Features: 97 }, + prices: { amazon: { price: 'Free', link: 'https://www.elastic.co/' }, flipkart: { price: 'Free', link: 'https://www.elastic.co/' }, official: { price: 'Free', link: 'https://www.elastic.co/' } } + }, + { id: 449, title: 'Logstash', subtitle: 'Server-side data processing pipeline', category: 'TOOLS', isNew: false, features: { Type: 'Log Mgmt', License: 'Elastic/SSPL' }, + specifications: { Type: 'Data Pipeline', Platform: 'Cross-platform', 'Input/Output': 'Versatile', Ecosystem: 'ELK Stack', License: 'Open Source / Business', Description: 'Ingests data from a multitude of sources simultaneously, transforms it, and sends it to your favorite stash.', PrimaryUseCase: 'Data parsing and routing for logging.', Ecosystem: 'Elastic Stack' }, + scores: { Capability: 96, Flexibility: 98, Performance: 88 }, + prices: { amazon: { price: 'Free', link: 'https://www.elastic.co/logstash' }, flipkart: { price: 'Free', link: 'https://www.elastic.co/logstash' }, official: { price: 'Free', link: 'https://www.elastic.co/logstash' } } + }, + { id: 450, title: 'Fluentd', subtitle: 'Data collector for unified logging layer', category: 'TOOLS', isNew: false, features: { Type: 'Log Mgmt', License: 'Apache-2.0' }, + specifications: { Type: 'Data Pipeline', Platform: 'Cross-platform', Language: 'Ruby/C', Ecosystem: 'CNCF', License: 'Open Source (Apache-2.0)', Description: 'Decouples data sources from backend systems by providing a unified logging layer.', PrimaryUseCase: 'Cloud-native log collection and shipping.', Ecosystem: 'Fluent Bit, Kubernetes' }, + scores: { Reliability: 98, Adaptability: 97, ResourceUsage: 90 }, + prices: { amazon: { price: 'Free', link: 'https://www.fluentd.org/' }, flipkart: { price: 'Free', link: 'https://www.fluentd.org/' }, official: { price: 'Free', link: 'https://www.fluentd.org/' } } + }, + { id: 451, title: 'Gitea', subtitle: 'Painless self-hosted Git service', category: 'TOOLS', isNew: false, features: { Type: 'Code Hosting', License: 'MIT' }, + specifications: { Type: 'Forge', Platform: 'Cross-platform', Language: 'Go', Focus: 'Lightweight', License: 'Open Source (MIT)', Description: 'Community managed, lightweight code hosting solution written in Go.', PrimaryUseCase: 'Self-hosting Git repositories on low-power servers.', Ecosystem: 'Forgejo' }, + scores: { Performance: 99, Simplicity: 96, Features: 88 }, + prices: { amazon: { price: 'Free', link: 'https://gitea.io/' }, flipkart: { price: 'Free', link: 'https://gitea.io/' }, official: { price: 'Free', link: 'https://gitea.io/' } } + }, + { id: 452, title: 'GitLab CE', subtitle: 'Complete DevOps platform', category: 'TOOLS', isNew: false, features: { Type: 'Code Hosting', License: 'MIT' }, + specifications: { Type: 'Forge', Platform: 'Linux', Ecosystem: 'All-in-one', Scale: 'Enterprise', License: 'Open Source (MIT)', Description: 'A single application for the entire DevSecOps lifecycle.', PrimaryUseCase: 'Comprehensive enterprise-grade code repository and pipelines.', Ecosystem: 'GitLab Runners' }, + scores: { Features: 100, Scalability: 95, ResourceUsage: 75 }, + prices: { amazon: { price: 'Free', link: 'https://about.gitlab.com/' }, flipkart: { price: 'Free', link: 'https://about.gitlab.com/' }, official: { price: 'Free', link: 'https://about.gitlab.com/install/' } } + }, + { id: 453, title: 'Nginx', subtitle: 'High performance web server & reverse proxy', category: 'TOOLS', isNew: false, features: { Type: 'Web Server', License: 'BSD-2-Clause' }, + specifications: { Type: 'Web Server', Platform: 'Cross-platform', Architecture: 'Event-driven', Capability: 'Load Balancer', License: 'Open Source (BSD-2-Clause)', Description: 'Known for its stability, rich feature set, simple configuration, and low resource consumption.', PrimaryUseCase: 'High-traffic reverse proxy serving static content.', Ecosystem: 'F5 Networks' }, + scores: { Performance: 100, Reliability: 99, Concurrency: 100 }, + prices: { amazon: { price: 'Free', link: 'https://nginx.org/' }, flipkart: { price: 'Free', link: 'https://nginx.org/' }, official: { price: 'Free', link: 'https://nginx.org/' } } + }, + { id: 454, title: 'Apache HTTP Server', subtitle: 'Most popular web server', category: 'TOOLS', isNew: false, features: { Type: 'Web Server', License: 'Apache-2.0' }, + specifications: { Type: 'Web Server', Platform: 'Cross-platform', Architecture: 'Process/Thread based', Modules: 'Extensive', License: 'Open Source (Apache-2.0)', Description: 'A robust, commercial-grade, featureful HTTP server serving over 20% of internet traffic.', PrimaryUseCase: 'Dynamic content processing and highly configurable routing.', Ecosystem: 'Apache Foundation' }, + scores: { Features: 98, Ecosystem: 100, Configurable: 96 }, + prices: { amazon: { price: 'Free', link: 'https://httpd.apache.org/' }, flipkart: { price: 'Free', link: 'https://httpd.apache.org/' }, official: { price: 'Free', link: 'https://httpd.apache.org/' } } + }""" +] + +# Write new tools +new_text = text.replace(' // Memory (RAM)', new_tools[0] + ',\n\n // Memory (RAM)') + +with open('generate_data.js', 'w', encoding='utf-8') as f: + f.write(new_text) + +print(f"Update complete. Added {new_tools[0].count('{ id:')} enriched tools.") diff --git a/teams/double-door-refrigerator/add_deployment_tools.py b/teams/double-door-refrigerator/add_deployment_tools.py new file mode 100644 index 0000000..dcadb7c --- /dev/null +++ b/teams/double-door-refrigerator/add_deployment_tools.py @@ -0,0 +1,41 @@ +import re + +with open('generate_data.js', 'r', encoding='utf-8') as f: + text = f.read() + +# We will just append before `// Memory (RAM)` +deployment_tools = [ +""" { id: 455, title: 'Vercel', subtitle: 'Frontend Cloud & Next.js creator', category: 'TOOLS', isNew: true, features: { Type: 'Deployment', Subscription: 'Freemium' }, + specifications: { Type: 'Platform as a Service', Platform: 'Web', Support: 'Global Edge Network', License: 'Proprietary Service', Description: 'Vercel is the platform for frontend developers, providing the speed and reliability innovators need to create at the moment of inspiration.', PrimaryUseCase: 'Zero-configuration deployment for frontend frameworks and serverless functions.', Ecosystem: 'Next.js, React, Edge Functions', FreeTier: 'Hobby (Free forever for non-commercial)', ProTier: '$20/mo per user (1TB Bandwidth)', EnterpriseTier: 'Custom pricing (Enhanced Security, SLA)' }, + scores: { Reliability: 99, Speed: 100, EaseOfUse: 98 }, + prices: { official: { price: 'Freemium', link: 'https://vercel.com/' } } + }, + { id: 456, title: 'Netlify', subtitle: 'Connect everything. Build anywhere.', category: 'TOOLS', isNew: false, features: { Type: 'Deployment', Subscription: 'Freemium' }, + specifications: { Type: 'Platform as a Service', Platform: 'Web', Support: 'Jamstack', License: 'Proprietary Service', Description: 'A unified platform that automates your code to create high-performant, easily maintainable sites and web apps.', PrimaryUseCase: 'Jamstack applications with automated edge deployments.', Ecosystem: 'Gatsby, Nuxt, Edge CDN', FreeTier: 'Starter (100GB Bandwidth, 300 build mins)', ProTier: '$19/mo per user (1TB Bandwidth)', EnterpriseTier: 'Custom pricing (99.99% Uptime SLA)' }, + scores: { Reliability: 98, Speed: 97, EaseOfUse: 99 }, + prices: { official: { price: 'Freemium', link: 'https://www.netlify.com/' } } + }, + { id: 457, title: 'Render', subtitle: 'Unified Cloud to build and run all your apps', category: 'TOOLS', isNew: true, features: { Type: 'Deployment', Subscription: 'Freemium' }, + specifications: { Type: 'Cloud Platform', Platform: 'Web / Backend', Support: 'Docker, Node, Python', License: 'Proprietary Service', Description: 'Render is a unified cloud to build and run all your apps and websites with free TLS certificates, a global CDN, DDoS protection, private networks, and auto deploys from Git.', PrimaryUseCase: 'Deploying full-stack applications, databases, and cron jobs effortlessly.', Ecosystem: 'PostgreSQL, Redis, Web Services', FreeTier: 'Individual (Static Sites, Free Web Services spin down)', ProTier: 'Team $19/mo (Scale memory/CPU as needed)', EnterpriseTier: 'Organization (SSO, Role-based access)' }, + scores: { Versatility: 95, Usability: 96, Value: 98 }, + prices: { official: { price: 'Freemium', link: 'https://render.com/' } } + }, + { id: 458, title: 'Heroku', subtitle: 'Cloud application platform', category: 'TOOLS', isNew: false, features: { Type: 'Deployment', Subscription: 'Paid' }, + specifications: { Type: 'Platform as a Service', Platform: 'Backend', Support: 'Polyglot', License: 'Proprietary Service', Description: 'A platform as a service (PaaS) that enables developers to build, run, and operate applications entirely in the cloud.', PrimaryUseCase: 'Simple container-based application hosting (Dynos).', Ecosystem: 'Salesforce, Node, Ruby, Postgres', FreeTier: 'No longer available. Starts at Eco ($5)', ProTier: 'Standard Dynos ($25-$50/mo)', EnterpriseTier: 'Private Spaces (Network isolation, compliance)' }, + scores: { Ecosystem: 99, Reliability: 95, Pricing: 70 }, + prices: { official: { price: 'Paid Plans', link: 'https://www.heroku.com/' } } + }, + { id: 459, title: 'AWS Amplify', subtitle: 'Build extensible, full-stack web and mobile apps', category: 'TOOLS', isNew: false, features: { Type: 'Deployment', Subscription: 'Pay-as-you-go' }, + specifications: { Type: 'Cloud Platform', Platform: 'Web / Mobile', Support: 'AWS Cloud', License: 'Proprietary Service', Description: 'A set of purpose-built tools and features that lets frontend web and mobile developers quickly and easily build full-stack applications on AWS.', PrimaryUseCase: 'Seamless integration of frontend code with AWS backend services (Auth, Storage, APIs).', Ecosystem: 'AWS ecosystem, React Native, Vue', FreeTier: 'Free tier limits for 12 months (1000 build mins, 15GB bandwidth)', ProTier: 'Pay-as-you-go ($0.01/build min, $0.15/GB)', EnterpriseTier: 'Part of AWS compliance, massive scale' }, + scores: { Scalability: 100, Features: 96, Complexity: 85 }, + prices: { official: { price: 'Pay-as-you-go', link: 'https://aws.amazon.com/amplify/' } } + }""" +] + +# We want to string replace `// Memory (RAM)` with the deployment tools and `// Memory (RAM)` +new_text = text.replace(' // Memory (RAM)', deployment_tools[0] + ',\n\n // Memory (RAM)') + +with open('generate_data.js', 'w', encoding='utf-8') as f: + f.write(new_text) + +print(f"Added deployment tools successfully.") diff --git a/teams/double-door-refrigerator/check_google.js b/teams/double-door-refrigerator/check_google.js new file mode 100644 index 0000000..d82a8df --- /dev/null +++ b/teams/double-door-refrigerator/check_google.js @@ -0,0 +1,13 @@ +const google = require('googlethis'); + +async function check() { + const options = { page: 0, safe: false }; + console.log('--- RTX 4090 Founders ---'); + let rtx = await google.image('Nvidia RTX 4090 Founders Edition front png', options); + rtx.slice(0, 15).forEach(r => console.log(r.url)); + + console.log('\n--- Taiga Logo ---'); + let taiga = await google.image('Taiga project management logo transparent png', options); + taiga.slice(0, 5).forEach(r => console.log(r.url)); +} +check(); diff --git a/teams/double-door-refrigerator/final_assets.js b/teams/double-door-refrigerator/final_assets.js new file mode 100644 index 0000000..26b1f69 --- /dev/null +++ b/teams/double-door-refrigerator/final_assets.js @@ -0,0 +1,26 @@ +const fs = require('fs'); + +let data = fs.readFileSync('src/data.js', 'utf8'); + +data = data.replace( + /"title":\s*"NVIDIA RTX 4090"[\s\S]*?"image":\s*"[^"]+"/g, + match => match.replace(/"image":\s*"[^"]+"/, '"image": "https://i.pcmag.com/imagery/reviews/02NoiKaEFBsK5zddvNd2FFz-14.jpg"') +); + +data = data.replace( + /"title":\s*"Samsung Magician"[\s\S]*?"image":\s*"[^"]+"/g, + match => match.replace(/"image":\s*"[^"]+"/, '"image": "/images/magician.png"') +); + +data = data.replace( + /"title":\s*"Taiga"[\s\S]*?"image":\s*"[^"]+"/g, + match => match.replace(/"image":\s*"[^"]+"/, '"image": "https://raw.githubusercontent.com/taigaio/taiga-design/master/Logo/taiga_monocromo_blanco.png"') +); + +data = data.replace( + /"title":\s*"SonarQube \(Community\)"[\s\S]*?"image":\s*"[^"]+"/g, + match => match.replace(/"image":\s*"[^"]+"/, '"image": "/images/sonarqube.png"') +); + +fs.writeFileSync('src/data.js', data); +console.log('Fixed completely!'); diff --git a/teams/double-door-refrigerator/fix.js b/teams/double-door-refrigerator/fix.js new file mode 100644 index 0000000..8b6151f --- /dev/null +++ b/teams/double-door-refrigerator/fix.js @@ -0,0 +1,36 @@ +const fs = require('fs'); + +const mappings = { + 'samsung magician': 'https://play-lh.googleusercontent.com/AZCOwJR9dXFjVL_YqnEhePpzlEyhsR95CGjkdvwzewGiQCayR29RSEe-cEf3WdKNfGvmbTdhPaRd__VxvW2E-Q=w240-h480-rw', + 'taiga': 'https://toppng.com/uploads/preview/taiga-logo-11609378802pe5qhhazbr.png', + 'sonarqube (community)': 'https://icons-for-free.com/iff/png/512/sonarqube-1336519700268537013.png', + 'nvidia rtx 4090': 'https://images-cdn.ubuy.com.pl/652a823904abac2439285874-nvidia-geforce-rtx-4090-founders-edition.jpg' +}; + +const dataFile = 'src/data.js'; +const data = fs.readFileSync(dataFile, 'utf8'); +const lines = data.split(/\r?\n/); + +let currentTitle = null; + +for (let i = 0; i < lines.length; i++) { + const line = lines[i]; + + if (line.includes('"title":')) { + const match = line.match(/"title":\s*"([^"]+)"/); + if (match) currentTitle = match[1]; + } + + if (line.includes('"image":') && currentTitle) { + const normalizedTitle = currentTitle.toLowerCase(); + const replacement = mappings[normalizedTitle]; + if (replacement) { + const indent = line.match(/^\s*/)[0]; + lines[i] = `${indent}"image": "${replacement}",`; + console.log('Fixed:', currentTitle); + } + } +} + +fs.writeFileSync(dataFile, lines.join('\n')); +console.log(`Update complete.`); diff --git a/teams/double-door-refrigerator/generate_data.js b/teams/double-door-refrigerator/generate_data.js new file mode 100644 index 0000000..99ca084 --- /dev/null +++ b/teams/double-door-refrigerator/generate_data.js @@ -0,0 +1,730 @@ +const fs = require('fs'); +const path = require('path'); + +const generateReviews = (title, category) => { + const numReviews = Math.floor(Math.random() * 3) + 4; // 4 to 6 for the "latest reviews" summary + + const positiveAdjectives = ["Incredible", "Outstanding", "Solid", "Fantastic", "Great", "Excellent", "Brilliant"]; + const neutralAdjectives = ["Decent", "Okay", "Average", "Good enough", "Acceptable"]; + const features = { + 'SSD': ["speed", "Storage IO", "boot times", "file transfer times", "cooling"], + 'GRAPHICS CARDS': ["frame rates", "ray tracing", "1440p performance", "4K capability", "driver stability"], + 'CPUs': ["multitasking", "gaming performance", "render times", "power efficiency", "temperatures"], + 'TOOLS': ["UI", "accuracy", "speed of scan", "feature set", "reliability"], + 'MEMORY (RAM)': ["latency", "stutter reduction", "RGB lighting", "overclocking", "EXPO profiles"] + }; + + const featureList = features[category] || ["quality", "performance", "build", "value"]; + + const reviews = []; + for (let i = 0; i < numReviews; i++) { + const isPositive = Math.random() > 0.15; // 85% mostly positive + const rating = isPositive ? (Math.random() > 0.4 ? 5 : 4) : (Math.random() > 0.5 ? 3 : 2); + + const adj = isPositive + ? positiveAdjectives[Math.floor(Math.random() * positiveAdjectives.length)] + : neutralAdjectives[Math.floor(Math.random() * neutralAdjectives.length)]; + + const feat = featureList[Math.floor(Math.random() * featureList.length)]; + const feat2 = featureList[Math.floor(Math.random() * featureList.length)]; + + let comment = ``; + if (rating === 5) { + comment = `${adj} product! The ${feat} is top tier. I've also noticed great improvements in ${feat2}. Highly recommend.`; + } else if (rating === 4) { + comment = `Very ${adj.toLowerCase()} choice. The ${feat} is definitely a plus. However, the ${feat2} could be a bit better. Overall very happy.`; + } else { + comment = `${adj} for the price, but fell short on ${feat}. Maybe look around before committing.`; + } + + reviews.push({ + user: `User${Math.floor(Math.random() * 90000) + 10000}`, + rating, + comment + }); + } + return reviews; +}; + +const calcOverall = (scores) => { + const vals = Object.values(scores); + if (vals.length === 0) return 0; + return Math.round(vals.reduce((a,b)=>a+b, 0) / vals.length); +}; + +const generateUserBenchmarks = (category, overall) => { + const variance = () => (Math.random() * 0.2 - 0.1); + const val = (base, suffix) => Math.round(base * (1 + variance() + (overall - 85)/100)) + suffix; + const floatVal = (base, suffix) => (base * (1 + variance() + (overall - 85)/100)).toFixed(1) + suffix; + + if (category === 'SSD') { + return { 'CDM Seq Read': val(7000, ' MB/s'), 'CDM Seq Write': val(6500, ' MB/s'), 'Random 4K Read': val(1000, 'K IOPS'), 'Avg Load Temp': val(65, '°C') }; + } else if (category === 'GRAPHICS CARDS') { + return { '3DMark TimeSpy': val(25000, ' pts'), 'Port Royal': val(15000, ' pts'), 'Cyberpunk 4K FPS': val(85, ' fps'), 'Alan Wake 2 1440p': val(110, ' fps') }; + } else if (category === 'CPUs') { + return { 'Cinebench R23 Multi': val(35000, ' pts'), 'Cinebench R23 Single': val(2100, ' pts'), 'Blender Classroom': floatVal(4.5, ' mins'), 'Avg Load Temp': val(80, '°C') }; + } else if (category === 'TOOLS') { + return { 'Value for Money': val(92, '%'), 'Feature Richness': val(88, '%'), 'Ease of Deployment': val(95, '%'), 'Community Support': val(90, '%') }; + } else if (category === 'MEMORY (RAM)') { + return { 'AIDA64 Read': val(85000, ' MB/s'), 'AIDA64 Latency': floatVal(65, ' ns'), 'Y-Cruncher PI': floatVal(12, ' sec') }; + } + return { 'User Satisfaction': val(90, '%'), 'Reliability': val(95, '%') }; +}; + +const generateRatingStats = (overall) => { + const total = Math.floor(Math.random() * 8000) + 2000; + const r5 = Math.floor(total * (overall / 100) * 0.85); + const r4 = Math.floor(total * 0.10); + const r3 = Math.floor(total * 0.03); + const r2 = Math.floor(total * 0.01); + const r1 = total - (r5 + r4 + r3 + r2); + const avg = ((r5*5 + r4*4 + r3*3 + r2*2 + r1*1) / total).toFixed(1); + return { total, 5: r5, 4: r4, 3: r3, 2: r2, 1: r1, avg }; +}; + +const getURL = (store, query) => { + const q = encodeURIComponent(query); + if (store === 'amazon') return `https://www.amazon.com/s?k=${q}`; + if (store === 'flipkart') return `https://www.flipkart.com/search?q=${q}`; + return `https://www.google.com/search?q=${q}+official+site`; +} + +const productsD = [ + // SSDs + { id: 101, title: 'Samsung 990 Pro', subtitle: 'Leading PCIe 4.0 NVMe', category: 'SSD', isNew: true, features: { Capacity: '2TB', Speed: '7450 MB/s' }, + specifications: { Capacity: '2TB', 'Read Speed': '7450 MB/s', 'Write Speed': '6900 MB/s', Interface: 'PCIe 4.0 x4', FormFactor: 'M.2 2280', Endurance: '1200 TBW' }, + scores: { Speed: 98, Reliability: 96, Value: 85, Thermal: 92 }, + prices: { amazon: { price: '$159', link: getURL('amazon', 'Samsung 990 Pro 2TB') }, flipkart: { price: '₹14,499', link: getURL('flipkart', 'Samsung 990 Pro 2TB') }, official: { price: '$169', link: getURL('official', 'Samsung 990 Pro') } } + }, + { id: 102, title: 'WD Black SN850X', subtitle: 'High performance gaming SSD', category: 'SSD', isNew: false, features: { Capacity: '2TB', Speed: '7300 MB/s' }, + specifications: { Capacity: '2TB', 'Read Speed': '7300 MB/s', 'Write Speed': '6600 MB/s', Interface: 'PCIe 4.0 x4', FormFactor: 'M.2 2280', Endurance: '1200 TBW' }, + scores: { Speed: 96, Reliability: 93, Value: 89, Thermal: 88 }, + prices: { amazon: { price: '$149', link: getURL('amazon', 'WD Black SN850X 2TB') }, flipkart: { price: '₹13,999', link: getURL('flipkart', 'WD Black SN850X 2TB') }, official: { price: '$159', link: getURL('official', 'WD Black SN850X') } } + }, + { id: 103, title: 'Crucial T700', subtitle: 'Next-gen PCIe 5.0 speed', category: 'SSD', isNew: true, features: { Capacity: '2TB', Speed: '12400 MB/s' }, + specifications: { Capacity: '2TB', 'Read Speed': '12400 MB/s', 'Write Speed': '11800 MB/s', Interface: 'PCIe 5.0 x4', FormFactor: 'M.2 2280', Endurance: '1200 TBW' }, + scores: { Speed: 100, Reliability: 90, Value: 75, Thermal: 70 }, + prices: { amazon: { price: '$269', link: getURL('amazon', 'Crucial T700 2TB') }, flipkart: { price: '₹25,999', link: getURL('flipkart', 'Crucial T700 2TB') }, official: { price: '$289', link: getURL('official', 'Crucial T700') } } + }, + { id: 104, title: 'Kingston KC3000', subtitle: 'Reliable high-speed storage', category: 'SSD', isNew: false, features: { Capacity: '1TB', Speed: '7000 MB/s' }, + specifications: { Capacity: '1TB', 'Read Speed': '7000 MB/s', 'Write Speed': '6000 MB/s', Interface: 'PCIe 4.0 x4', FormFactor: 'M.2 2280', Endurance: '800 TBW' }, + scores: { Speed: 92, Reliability: 94, Value: 95, Thermal: 91 }, + prices: { amazon: { price: '$85', link: getURL('amazon', 'Kingston KC3000 1TB') }, flipkart: { price: '₹7,999', link: getURL('flipkart', 'Kingston KC3000 1TB') }, official: { price: '$95', link: getURL('official', 'Kingston KC3000') } } + }, + { id: 105, title: 'Sabrent Rocket 4 Plus', subtitle: 'Enthusiast level performance', category: 'SSD', isNew: false, features: { Capacity: '4TB', Speed: '7100 MB/s' }, + specifications: { Capacity: '4TB', 'Read Speed': '7100 MB/s', 'Write Speed': '6600 MB/s', Interface: 'PCIe 4.0 x4', FormFactor: 'M.2 2280', Endurance: '2800 TBW' }, + scores: { Speed: 94, Reliability: 95, Value: 82, Thermal: 85 }, + prices: { amazon: { price: '$399', link: getURL('amazon', 'Sabrent Rocket 4 Plus 4TB') }, flipkart: { price: '₹38,000', link: getURL('flipkart', 'Sabrent Rocket 4 Plus 4TB') }, official: { price: '$420', link: getURL('official', 'Sabrent Rocket 4 Plus') } } + }, + { id: 106, title: 'TeamGroup MP34', subtitle: 'Affordable NVMe option', category: 'SSD', isNew: false, features: { Capacity: '1TB', Speed: '3400 MB/s' }, + specifications: { Capacity: '1TB', 'Read Speed': '3400 MB/s', 'Write Speed': '2900 MB/s', Interface: 'PCIe 3.0 x4', FormFactor: 'M.2 2280', Endurance: '1660 TBW' }, + scores: { Speed: 75, Reliability: 90, Value: 98, Thermal: 95 }, + prices: { amazon: { price: '$49', link: getURL('amazon', 'TeamGroup MP34 1TB') }, flipkart: { price: '₹4,500', link: getURL('flipkart', 'TeamGroup MP34 1TB') }, official: { price: '$55', link: getURL('official', 'TeamGroup MP34') } } + }, + { id: 107, title: 'Crucial MX500', subtitle: 'Classic SATA SSD', category: 'SSD', isNew: false, features: { Capacity: '1TB', Speed: '560 MB/s' }, + specifications: { Capacity: '1TB', 'Read Speed': '560 MB/s', 'Write Speed': '510 MB/s', Interface: 'SATA III', FormFactor: '2.5 inch', Endurance: '360 TBW' }, + scores: { Speed: 50, Reliability: 98, Value: 95, Thermal: 99 }, + prices: { amazon: { price: '$55', link: getURL('amazon', 'Crucial MX500 1TB') }, flipkart: { price: '₹4,999', link: getURL('flipkart', 'Crucial MX500 1TB') }, official: { price: '$60', link: getURL('official', 'Crucial MX500') } } + }, + { id: 108, title: 'Corsair MP600 Pro', subtitle: 'Heatsink equipped NVMe', category: 'SSD', isNew: false, features: { Capacity: '2TB', Speed: '7100 MB/s' }, + specifications: { Capacity: '2TB', 'Read Speed': '7100 MB/s', 'Write Speed': '6800 MB/s', Interface: 'PCIe 4.0 x4', FormFactor: 'M.2 2280 w/ Heatsink', Endurance: '1400 TBW' }, + scores: { Speed: 94, Reliability: 96, Value: 85, Thermal: 98 }, + prices: { amazon: { price: '$155', link: getURL('amazon', 'Corsair MP600 Pro 2TB') }, flipkart: { price: '₹14,800', link: getURL('flipkart', 'Corsair MP600 Pro 2TB') }, official: { price: '$165', link: getURL('official', 'Corsair MP600 Pro') } } + }, + + // Graphics Cards + { id: 201, title: 'NVIDIA RTX 4090', subtitle: 'The ultimate GPU', category: 'GRAPHICS CARDS', isNew: false, features: { VRAM: '24GB GDDR6X', Power: '450W' }, + specifications: { Architecture: 'Ada Lovelace', CudaCores: '16384', VRAM: '24GB GDDR6X', 'Boost Clock': '2.52 GHz', Power: '450W', Bandwidth: '1008 GB/s' }, + scores: { Gaming: 100, RayTracing: 100, Value: 60, Efficiency: 90 }, + prices: { amazon: { price: '$1599', link: getURL('amazon', 'NVIDIA RTX 4090') }, flipkart: { price: '₹1,55,000', link: getURL('flipkart', 'NVIDIA RTX 4090') }, official: { price: '$1599', link: getURL('official', 'NVIDIA RTX 4090') } } + }, + { id: 202, title: 'AMD Radeon RX 7900 XTX', subtitle: 'Flagship AMD performance', category: 'GRAPHICS CARDS', isNew: false, features: { VRAM: '24GB GDDR6', Power: '355W' }, + specifications: { Architecture: 'RDNA 3', StreamProcessors: '6144', VRAM: '24GB GDDR6', 'Boost Clock': '2.50 GHz', Power: '355W', Bandwidth: '960 GB/s' }, + scores: { Gaming: 96, RayTracing: 82, Value: 85, Efficiency: 88 }, + prices: { amazon: { price: '$950', link: getURL('amazon', 'AMD Radeon RX 7900 XTX') }, flipkart: { price: '₹95,000', link: getURL('flipkart', 'AMD Radeon RX 7900 XTX') }, official: { price: '$999', link: getURL('official', 'AMD Radeon RX 7900 XTX') } } + }, + { id: 203, title: 'NVIDIA RTX 4080 Super', subtitle: 'High-end 4K gaming', category: 'GRAPHICS CARDS', isNew: true, features: { VRAM: '16GB GDDR6X', Power: '320W' }, + specifications: { Architecture: 'Ada Lovelace', CudaCores: '10240', VRAM: '16GB GDDR6X', 'Boost Clock': '2.55 GHz', Power: '320W', Bandwidth: '736 GB/s' }, + scores: { Gaming: 94, RayTracing: 95, Value: 82, Efficiency: 94 }, + prices: { amazon: { price: '$999', link: getURL('amazon', 'NVIDIA RTX 4080 Super') }, flipkart: { price: '₹99,999', link: getURL('flipkart', 'NVIDIA RTX 4080 Super') }, official: { price: '$999', link: getURL('official', 'NVIDIA RTX 4080 Super') } } + }, + { id: 204, title: 'AMD Radeon RX 7800 XT', subtitle: '1440p sweet spot', category: 'GRAPHICS CARDS', isNew: true, features: { VRAM: '16GB GDDR6', Power: '263W' }, + specifications: { Architecture: 'RDNA 3', StreamProcessors: '3840', VRAM: '16GB GDDR6', 'Boost Clock': '2.43 GHz', Power: '263W', Bandwidth: '624 GB/s' }, + scores: { Gaming: 86, RayTracing: 70, Value: 95, Efficiency: 85 }, + prices: { amazon: { price: '$499', link: getURL('amazon', 'AMD Radeon RX 7800 XT') }, flipkart: { price: '₹47,000', link: getURL('flipkart', 'AMD Radeon RX 7800 XT') }, official: { price: '$499', link: getURL('official', 'AMD Radeon RX 7800 XT') } } + }, + { id: 205, title: 'NVIDIA RTX 4070 Ti Super', subtitle: 'Premium 1440p / Entry 4K', category: 'GRAPHICS CARDS', isNew: true, features: { VRAM: '16GB GDDR6X', Power: '285W' }, + specifications: { Architecture: 'Ada Lovelace', CudaCores: '8448', VRAM: '16GB GDDR6X', 'Boost Clock': '2.61 GHz', Power: '285W', Bandwidth: '672 GB/s' }, + scores: { Gaming: 89, RayTracing: 90, Value: 88, Efficiency: 92 }, + prices: { amazon: { price: '$799', link: getURL('amazon', 'NVIDIA RTX 4070 Ti Super') }, flipkart: { price: '₹75,000', link: getURL('flipkart', 'NVIDIA RTX 4070 Ti Super') }, official: { price: '$799', link: getURL('official', 'NVIDIA RTX 4070 Ti Super') } } + }, + { id: 206, title: 'AMD Radeon RX 7600', subtitle: 'Budget 1080p gaming', category: 'GRAPHICS CARDS', isNew: false, features: { VRAM: '8GB GDDR6', Power: '165W' }, + specifications: { Architecture: 'RDNA 3', StreamProcessors: '2048', VRAM: '8GB GDDR6', 'Boost Clock': '2.65 GHz', Power: '165W', Bandwidth: '288 GB/s' }, + scores: { Gaming: 75, RayTracing: 50, Value: 92, Efficiency: 89 }, + prices: { amazon: { price: '$259', link: getURL('amazon', 'AMD Radeon RX 7600') }, flipkart: { price: '₹24,900', link: getURL('flipkart', 'AMD Radeon RX 7600') }, official: { price: '$269', link: getURL('official', 'AMD Radeon RX 7600') } } + }, + { id: 207, title: 'NVIDIA RTX 3060', subtitle: 'Most popular mainstream GPU', category: 'GRAPHICS CARDS', isNew: false, features: { VRAM: '12GB GDDR6', Power: '170W' }, + specifications: { Architecture: 'Ampere', CudaCores: '3584', VRAM: '12GB GDDR6', 'Boost Clock': '1.78 GHz', Power: '170W', Bandwidth: '360 GB/s' }, + scores: { Gaming: 72, RayTracing: 65, Value: 90, Efficiency: 85 }, + prices: { amazon: { price: '$280', link: getURL('amazon', 'NVIDIA RTX 3060') }, flipkart: { price: '₹26,000', link: getURL('flipkart', 'NVIDIA RTX 3060') }, official: { price: '$329', link: getURL('official', 'NVIDIA RTX 3060') } } + }, + { id: 208, title: 'Intel Arc A770', subtitle: 'Intel\'s flagship entry', category: 'GRAPHICS CARDS', isNew: false, features: { VRAM: '16GB GDDR6', Power: '225W' }, + specifications: { Architecture: 'Alchemist', XeCores: '32', VRAM: '16GB GDDR6', 'Boost Clock': '2.10 GHz', Power: '225W', Bandwidth: '512 GB/s' }, + scores: { Gaming: 76, RayTracing: 78, Value: 89, Efficiency: 75 }, + prices: { amazon: { price: '$290', link: getURL('amazon', 'Intel Arc A770') }, flipkart: { price: '₹28,500', link: getURL('flipkart', 'Intel Arc A770') }, official: { price: '$349', link: getURL('official', 'Intel Arc A770') } } + }, + + // CPUs + { id: 301, title: 'AMD Ryzen 7 7800X3D', subtitle: 'Best gaming CPU', category: 'CPUs', isNew: false, features: { Cores: '8C/16T', Boost: '5.0 GHz' }, + specifications: { Cores: '8', Threads: '16', 'Base Clock': '4.2 GHz', 'Boost Clock': '5.0 GHz', 'L3 Cache': '96MB (3D V-Cache)', TDP: '120W' }, + scores: { Gaming: 100, Productivity: 82, Value: 95, Efficiency: 98 }, + prices: { amazon: { price: '$369', link: getURL('amazon', 'AMD Ryzen 7 7800X3D') }, flipkart: { price: '₹35,000', link: getURL('flipkart', 'AMD Ryzen 7 7800X3D') }, official: { price: '$449', link: getURL('official', 'AMD Ryzen 7 7800X3D') } } + }, + { id: 302, title: 'Intel Core i9-14900K', subtitle: 'Ultimate hybrid performance', category: 'CPUs', isNew: true, features: { Cores: '24C/32T', Boost: '6.0 GHz' }, + specifications: { Cores: '24 (8P+16E)', Threads: '32', 'Base Clock': '3.2 GHz', 'Boost Clock': '6.0 GHz', 'L3 Cache': '36MB', TDP: '125W (253W Max)' }, + scores: { Gaming: 98, Productivity: 100, Value: 75, Efficiency: 70 }, + prices: { amazon: { price: '$549', link: getURL('amazon', 'Intel Core i9-14900K') }, flipkart: { price: '₹53,000', link: getURL('flipkart', 'Intel Core i9-14900K') }, official: { price: '$589', link: getURL('official', 'Intel Core i9-14900K') } } + }, + { id: 303, title: 'AMD Ryzen 9 7950X', subtitle: 'Top tier productivity', category: 'CPUs', isNew: false, features: { Cores: '16C/32T', Boost: '5.7 GHz' }, + specifications: { Cores: '16', Threads: '32', 'Base Clock': '4.5 GHz', 'Boost Clock': '5.7 GHz', 'L3 Cache': '64MB', TDP: '170W' }, + scores: { Gaming: 90, Productivity: 99, Value: 85, Efficiency: 88 }, + prices: { amazon: { price: '$530', link: getURL('amazon', 'AMD Ryzen 9 7950X') }, flipkart: { price: '₹51,000', link: getURL('flipkart', 'AMD Ryzen 9 7950X') }, official: { price: '$699', link: getURL('official', 'AMD Ryzen 9 7950X') } } + }, + { id: 304, title: 'Intel Core i5-13600K', subtitle: 'Value and performance', category: 'CPUs', isNew: false, features: { Cores: '14C/20T', Boost: '5.1 GHz' }, + specifications: { Cores: '14 (6P+8E)', Threads: '20', 'Base Clock': '3.5 GHz', 'Boost Clock': '5.1 GHz', 'L3 Cache': '24MB', TDP: '125W (181W Max)' }, + scores: { Gaming: 92, Productivity: 88, Value: 96, Efficiency: 85 }, + prices: { amazon: { price: '$280', link: getURL('amazon', 'Intel Core i5-13600K') }, flipkart: { price: '₹27,500', link: getURL('flipkart', 'Intel Core i5-13600K') }, official: { price: '$319', link: getURL('official', 'Intel Core i5-13600K') } } + }, + { id: 305, title: 'AMD Ryzen 5 7600X', subtitle: 'Great entry to AM5', category: 'CPUs', isNew: false, features: { Cores: '6C/12T', Boost: '5.3 GHz' }, + specifications: { Cores: '6', Threads: '12', 'Base Clock': '4.7 GHz', 'Boost Clock': '5.3 GHz', 'L3 Cache': '32MB', TDP: '105W' }, + scores: { Gaming: 88, Productivity: 78, Value: 94, Efficiency: 90 }, + prices: { amazon: { price: '$220', link: getURL('amazon', 'AMD Ryzen 5 7600X') }, flipkart: { price: '₹21,000', link: getURL('flipkart', 'AMD Ryzen 5 7600X') }, official: { price: '$299', link: getURL('official', 'AMD Ryzen 5 7600X') } } + }, + { id: 306, title: 'Intel Core i7-14700K', subtitle: 'High-end all rounder', category: 'CPUs', isNew: true, features: { Cores: '20C/28T', Boost: '5.6 GHz' }, + specifications: { Cores: '20 (8P+12E)', Threads: '28', 'Base Clock': '3.4 GHz', 'Boost Clock': '5.6 GHz', 'L3 Cache': '33MB', TDP: '125W (253W Max)' }, + scores: { Gaming: 95, Productivity: 94, Value: 90, Efficiency: 75 }, + prices: { amazon: { price: '$390', link: getURL('amazon', 'Intel Core i7-14700K') }, flipkart: { price: '₹38,000', link: getURL('flipkart', 'Intel Core i7-14700K') }, official: { price: '$409', link: getURL('official', 'Intel Core i7-14700K') } } + }, + { id: 307, title: 'AMD Ryzen 5 5600X', subtitle: 'Budget AM4 king', category: 'CPUs', isNew: false, features: { Cores: '6C/12T', Boost: '4.6 GHz' }, + specifications: { Cores: '6', Threads: '12', 'Base Clock': '3.7 GHz', 'Boost Clock': '4.6 GHz', 'L3 Cache': '32MB', TDP: '65W' }, + scores: { Gaming: 80, Productivity: 70, Value: 98, Efficiency: 96 }, + prices: { amazon: { price: '$135', link: getURL('amazon', 'AMD Ryzen 5 5600X') }, flipkart: { price: '₹14,500', link: getURL('flipkart', 'AMD Ryzen 5 5600X') }, official: { price: '$299', link: getURL('official', 'AMD Ryzen 5 5600X') } } + }, + + // Tools + { id: 401, title: 'CrystalDiskMark', subtitle: 'Storage benchmark utility', category: 'TOOLS', isNew: false, features: { Type: 'Benchmarking', License: 'Open Source' }, + specifications: { Type: 'Benchmarking', Platform: 'Windows', Engine: 'Microsoft DiskSpd', Support: 'NVMe, SATA, USB', License: 'Open Source (MIT)' }, + scores: { Accuracy: 98, Speed: 95, EaseOfUse: 92 }, + prices: { amazon: { price: 'Free', link: 'https://crystalmark.info/en/' }, flipkart: { price: 'Free', link: 'https://crystalmark.info/en/' }, official: { price: 'Free', link: 'https://crystalmark.info/en/' } } + }, + { id: 402, title: 'WizTree', subtitle: 'Extremely fast disk space analyzer', category: 'TOOLS', isNew: false, features: { Type: 'Analytics', Speed: 'MFT based' }, + specifications: { Type: 'Analytics', Platform: 'Windows', Technology: 'Direct MFT Parsing', Export: 'CSV/HTML', License: 'Free for Personal' }, + scores: { Accuracy: 99, Speed: 100, EaseOfUse: 95 }, + prices: { amazon: { price: 'Free', link: 'https://diskanalyzer.com/' }, flipkart: { price: 'Free', link: 'https://diskanalyzer.com/' }, official: { price: 'Free', link: 'https://diskanalyzer.com/' } } + }, + { id: 403, title: 'Samsung Magician', subtitle: 'SSD management software', category: 'TOOLS', isNew: false, features: { Ecosystem: 'Samsung', Type: 'Optimization' }, + specifications: { Type: 'Optimization', Platform: 'Windows/Mac', Target: 'Samsung SSDs', Features: 'Firmware Update, Secure Erase, Overprovisioning', License: 'Proprietary Freeware' }, + scores: { Accuracy: 94, Speed: 90, EaseOfUse: 98 }, + prices: { amazon: { price: 'Free', link: 'https://semiconductor.samsung.com/consumer-storage/magician/' }, flipkart: { price: 'Free', link: 'https://semiconductor.samsung.com/consumer-storage/magician/' }, official: { price: 'Free', link: 'https://semiconductor.samsung.com/consumer-storage/magician/' } } + }, + { id: 404, title: 'Apple Intelligence', subtitle: 'Advanced AI features for Apple ecosystem', category: 'TOOLS', isNew: true, features: { Ecosystem: 'Apple', Type: 'Generative AI' }, + specifications: { Type: 'Generative AI', Platform: 'iOS/macOS', Models: 'On-device + Private Cloud', Integration: 'System-wide', Requirements: 'A17 Pro or M1+' }, + scores: { Utility: 92, Innovation: 95, Privacy: 98 }, + prices: { amazon: { price: 'Included', link: 'https://apple.com' }, flipkart: { price: 'Included', link: 'https://apple.com' }, official: { price: 'Included with Devices', link: 'https://www.apple.com/apple-intelligence/' } } + }, + { id: 405, title: 'Galaxy AI', subtitle: "Samsung's integrated mobile AI", category: 'TOOLS', isNew: true, features: { Ecosystem: 'Android/Samsung', Type: 'Generative AI' }, + specifications: { Type: 'Generative AI', Platform: 'Android (OneUI)', Models: 'Google Gemini Pro / Nano', Features: 'Live Translate, Circle to Search', Devices: 'S23/S24 series' }, + scores: { Utility: 95, Innovation: 90, Integration: 94 }, + prices: { amazon: { price: 'Included', link: 'https://samsung.com' }, flipkart: { price: 'Included', link: 'https://samsung.com' }, official: { price: 'Free until 2025', link: 'https://www.samsung.com/global/galaxy/galaxy-ai/' } } + }, + { id: 406, title: 'HWMonitor', subtitle: 'Hardware sensor monitoring tool', category: 'TOOLS', isNew: false, features: { Type: 'Diagnostics', Sensors: 'Temps, Voltages, Fans' }, + specifications: { Type: 'Diagnostics', Platform: 'Windows', Sensors: 'Thermal, Voltage, Fan Speed, Power', Export: 'TXT Logs', License: 'Freemium' }, + scores: { Accuracy: 90, Detail: 94, EaseOfUse: 85 }, + prices: { amazon: { price: 'Free', link: 'https://cpuid.com' }, flipkart: { price: 'Free', link: 'https://cpuid.com' }, official: { price: 'Free / €20 Pro', link: 'https://www.cpuid.com/softwares/hwmonitor.html' } } + }, + { id: 407, title: 'Cinebench R24', subtitle: 'CPU/GPU rendering benchmark', category: 'TOOLS', isNew: false, features: { Engine: 'Redshift', Focus: 'Stress Testing' }, + specifications: { Type: 'Benchmarking', Platform: 'Windows/Mac', Engine: 'Redshift 3D', Support: 'x86, ARM, GPUs', License: 'Free' }, + scores: { Accuracy: 98, Detail: 92, EaseOfUse: 96 }, + prices: { amazon: { price: 'Free', link: 'https://maxon.net' }, flipkart: { price: 'Free', link: 'https://maxon.net' }, official: { price: 'Free', link: 'https://www.maxon.net/en/cinebench' } } + }, + { id: 408, title: 'Rufus', subtitle: 'Create bootable USB drives', category: 'TOOLS', isNew: false, features: { Type: 'System Utility', SupportedOS: 'Windows/Linux' }, + specifications: { Type: 'Utility', Platform: 'Windows', Output: 'Bootable USBs (ISO/DD)', Speed: 'Extremely Fast', Bypass: 'Windows 11 TPM checks' }, + scores: { Utility: 99, Reliability: 100, EaseOfUse: 98 }, + prices: { amazon: { price: 'Free', link: 'https://rufus.ie' }, flipkart: { price: 'Free', link: 'https://rufus.ie' }, official: { price: 'Free (GPL)', link: 'https://rufus.ie/en/' } } + }, + + { id: 409, title: 'Git', subtitle: 'Distributed version control system', category: 'TOOLS', isNew: false, features: { Type: 'VCS', License: 'GPL-2.0' }, + specifications: { Type: 'Version Control', Platform: 'Cross-platform', Language: 'C', Support: 'Git', License: 'Open Source (GPL-2.0)', Description: 'The most widely used modern version control system in the world.', PrimaryUseCase: 'Source code management, non-linear workflows.', Ecosystem: 'GitHub, GitLab, Bitbucket' }, + scores: { Reliability: 100, Speed: 98, EaseOfUse: 85 }, + prices: { amazon: { price: 'Free', link: 'https://git-scm.com/' }, flipkart: { price: 'Free', link: 'https://git-scm.com/' }, official: { price: 'Free', link: 'https://git-scm.com/' } } + }, + { id: 410, title: 'Apache Subversion (SVN)', subtitle: 'Centralized version control', category: 'TOOLS', isNew: false, features: { Type: 'VCS', License: 'Apache-2.0' }, + specifications: { Type: 'Version Control', Platform: 'Cross-platform', Language: 'C', Support: 'SVN', License: 'Open Source (Apache-2.0)', Description: 'Centralized revision control system meant to be a better CVS.', PrimaryUseCase: 'Legacy enterprise version control, large binary files.', Ecosystem: 'TortoiseSVN' }, + scores: { Reliability: 95, Speed: 80, EaseOfUse: 90 }, + prices: { amazon: { price: 'Free', link: 'https://subversion.apache.org/' }, flipkart: { price: 'Free', link: 'https://subversion.apache.org/' }, official: { price: 'Free', link: 'https://subversion.apache.org/' } } + }, + { id: 411, title: 'Mercurial', subtitle: 'Distributed version control', category: 'TOOLS', isNew: false, features: { Type: 'VCS', License: 'GPL-2.0' }, + specifications: { Type: 'Version Control', Platform: 'Cross-platform', Language: 'Python', Support: 'Mercurial', License: 'Open Source (GPL-2.0)', Description: 'Free, distributed source control management tool known for its performance and scale.', PrimaryUseCase: 'Handling large projects elegantly.', Ecosystem: 'RhodeCode, Phabricator' }, + scores: { Reliability: 98, Speed: 90, EaseOfUse: 92 }, + prices: { amazon: { price: 'Free', link: 'https://www.mercurial-scm.org/' }, flipkart: { price: 'Free', link: 'https://www.mercurial-scm.org/' }, official: { price: 'Free', link: 'https://www.mercurial-scm.org/' } } + }, + { id: 412, title: 'VSCodium', subtitle: 'Telemetry-free VS Code binary', category: 'TOOLS', isNew: false, features: { Type: 'IDE', License: 'MIT' }, + specifications: { Type: 'Code Editor', Platform: 'Cross-platform', Engine: 'Electron', Support: 'Multiple', License: 'Open Source (MIT)', Description: 'Community-driven, freely-licensed binary distribution of Microsoft VS Code without telemetry.', PrimaryUseCase: 'General purpose code editing.', Ecosystem: 'OpenVSX Registry' }, + scores: { Extensibility: 98, Performance: 90, Privacy: 100 }, + prices: { amazon: { price: 'Free', link: 'https://vscodium.com/' }, flipkart: { price: 'Free', link: 'https://vscodium.com/' }, official: { price: 'Free', link: 'https://vscodium.com/' } } + }, + { id: 413, title: 'Eclipse IDE', subtitle: 'Extensible development platform', category: 'TOOLS', isNew: false, features: { Type: 'IDE', License: 'EPL-2.0' }, + specifications: { Type: 'IDE', Platform: 'Cross-platform', Language: 'Java', Support: 'Multiple', License: 'Open Source (EPL-2.0)', Description: 'Famous for Java IDE, but C/C++ and PHP IDEs are also heavily used.', PrimaryUseCase: 'Enterprise Java development.', Ecosystem: 'Eclipse Marketplace' }, + scores: { Extensibility: 95, Performance: 80, Maturity: 99 }, + prices: { amazon: { price: 'Free', link: 'https://www.eclipse.org/' }, flipkart: { price: 'Free', link: 'https://www.eclipse.org/' }, official: { price: 'Free', link: 'https://www.eclipse.org/' } } + }, + { id: 414, title: 'IntelliJ IDEA Community', subtitle: 'Capable Java IDE', category: 'TOOLS', isNew: false, features: { Type: 'IDE', License: 'Apache-2.0' }, + specifications: { Type: 'IDE', Platform: 'Cross-platform', Language: 'Java', Support: 'Java, Kotlin', License: 'Open Source (Apache-2.0)', Description: 'The smartest JVM IDE by JetBrains, community edition.', PrimaryUseCase: 'JVM-based application development.', Ecosystem: 'JetBrains Marketplace' }, + scores: { Features: 96, Performance: 88, EaseOfUse: 92 }, + prices: { amazon: { price: 'Free', link: 'https://www.jetbrains.com/idea/' }, flipkart: { price: 'Free', link: 'https://www.jetbrains.com/idea/' }, official: { price: 'Free', link: 'https://www.jetbrains.com/idea/' } } + }, + { id: 415, title: 'Apache Maven', subtitle: 'Software comprehension tool', category: 'TOOLS', isNew: false, features: { Type: 'Build Tool', License: 'Apache-2.0' }, + specifications: { Type: 'Build Tool', Platform: 'Cross-platform', Language: 'Java', Support: 'POM based', License: 'Open Source (Apache-2.0)', Description: 'Declarative build automation primarily used for Java projects.', PrimaryUseCase: 'Dependency management and standardized builds.', Ecosystem: 'Maven Central Repository' }, + scores: { Reliability: 99, Features: 90, Ecosystem: 98 }, + prices: { amazon: { price: 'Free', link: 'https://maven.apache.org/' }, flipkart: { price: 'Free', link: 'https://maven.apache.org/' }, official: { price: 'Free', link: 'https://maven.apache.org/' } } + }, + { id: 416, title: 'Gradle', subtitle: 'Accelerates developer productivity', category: 'TOOLS', isNew: false, features: { Type: 'Build Tool', License: 'Apache-2.0' }, + specifications: { Type: 'Build Tool', Platform: 'Cross-platform', Language: 'Java/Kotlin', Support: 'DSL', License: 'Open Source (Apache-2.0)', Description: 'Highly customizable and fast build automation tool.', PrimaryUseCase: 'Android development and multi-project Java builds.', Ecosystem: 'Gradle Plugins' }, + scores: { Performance: 95, Flexibility: 98, Ecosystem: 92 }, + prices: { amazon: { price: 'Free', link: 'https://gradle.org/' }, flipkart: { price: 'Free', link: 'https://gradle.org/' }, official: { price: 'Free', link: 'https://gradle.org/' } } + }, + { id: 417, title: 'Apache Ant', subtitle: 'Java based build tool', category: 'TOOLS', isNew: false, features: { Type: 'Build Tool', License: 'Apache-2.0' }, + specifications: { Type: 'Build Tool', Platform: 'Cross-platform', Language: 'Java', Support: 'XML based', License: 'Open Source (Apache-2.0)', Description: 'Extremely flexible, procedural build system using XML.', PrimaryUseCase: 'Custom build scripts and legacy Java support.', Ecosystem: 'Apache Foundation' }, + scores: { Dependability: 99, Speed: 90, Flexibility: 85 }, + prices: { amazon: { price: 'Free', link: 'https://ant.apache.org/' }, flipkart: { price: 'Free', link: 'https://ant.apache.org/' }, official: { price: 'Free', link: 'https://ant.apache.org/' } } + }, + { id: 418, title: 'Jenkins', subtitle: 'Leading open source automation server', category: 'TOOLS', isNew: false, features: { Type: 'CI/CD', License: 'MIT' }, + specifications: { Type: 'CI/CD Server', Platform: 'Cross-platform', Language: 'Java', Plugins: '1800+', License: 'Open Source (MIT)', Description: 'Provides hundreds of plugins to support building, deploying and automating any project.', PrimaryUseCase: 'Continuous Integration / Continuous Delivery pipelines.', Ecosystem: 'Jenkins Plugin Index' }, + scores: { Extensibility: 100, Ecosystem: 99, EaseOfSetup: 80 }, + prices: { amazon: { price: 'Free', link: 'https://www.jenkins.io/' }, flipkart: { price: 'Free', link: 'https://www.jenkins.io/' }, official: { price: 'Free', link: 'https://www.jenkins.io/' } } + }, + { id: 419, title: 'GitLab CI/CD', subtitle: 'Integrated CI/CD platform', category: 'TOOLS', isNew: false, features: { Type: 'CI/CD', License: 'MIT' }, + specifications: { Type: 'CI/CD', Platform: 'Cross-platform', Integrated: 'GitLab', Runners: 'Go based', License: 'Open Source (MIT)', Description: 'Built into GitLab to automatically build, test, secure, and deploy software.', PrimaryUseCase: 'Seamless code-to-deployment workflows.', Ecosystem: 'GitLab Registry' }, + scores: { Integration: 99, Features: 95, EaseOfUse: 92 }, + prices: { amazon: { price: 'Free', link: 'https://about.gitlab.com/' }, flipkart: { price: 'Free', link: 'https://about.gitlab.com/' }, official: { price: 'Free', link: 'https://docs.gitlab.com/ee/ci/' } } + }, + { id: 420, title: 'Tekton', subtitle: 'Cloud-native CI/CD framework', category: 'TOOLS', isNew: false, features: { Type: 'CI/CD', License: 'Apache-2.0' }, + specifications: { Type: 'CI/CD', Platform: 'Kubernetes', Language: 'Go', Ecosystem: 'CD Foundation', License: 'Open Source (Apache-2.0)', Description: 'Kubernetes-native framework for creating continuous integration and delivery systems.', PrimaryUseCase: 'Serverless CI/CD on Kubernetes.', Ecosystem: 'Tekton Hub' }, + scores: { Flexibility: 95, Scalability: 98, Ecosystem: 88 }, + prices: { amazon: { price: 'Free', link: 'https://tekton.dev/' }, flipkart: { price: 'Free', link: 'https://tekton.dev/' }, official: { price: 'Free', link: 'https://tekton.dev/' } } + }, + { id: 421, title: 'Docker Engine', subtitle: 'Industry standard container runtime', category: 'TOOLS', isNew: false, features: { Type: 'Containerization', License: 'Apache-2.0' }, + specifications: { Type: 'Container Runtime', Platform: 'Linux/Mac/Win', Core: 'containerd', Interface: 'CLI', License: 'Open Source (Apache-2.0)', Description: 'De-facto standard for building, sharing, and running applications in isolated containers.', PrimaryUseCase: 'Local development and microservices packaging.', Ecosystem: 'Docker Hub' }, + scores: { Ecosystem: 100, Usability: 95, Reliability: 99 }, + prices: { amazon: { price: 'Free', link: 'https://www.docker.com/' }, flipkart: { price: 'Free', link: 'https://www.docker.com/' }, official: { price: 'Free', link: 'https://github.com/docker/engine' } } + }, + { id: 422, title: 'Podman', subtitle: 'Daemonless container engine', category: 'TOOLS', isNew: true, features: { Type: 'Containerization', License: 'Apache-2.0' }, + specifications: { Type: 'Container Runtime', Platform: 'Linux/Mac/Win', Architecture: 'Daemonless', Rootless: 'Yes', License: 'Open Source (Apache-2.0)', Description: 'A secure alternative to Docker that does not require a root daemon.', PrimaryUseCase: 'Rootless container isolation for improved security.', Ecosystem: 'RedHat / OCI' }, + scores: { Security: 98, Compatibility: 96, Architecture: 95 }, + prices: { amazon: { price: 'Free', link: 'https://podman.io/' }, flipkart: { price: 'Free', link: 'https://podman.io/' }, official: { price: 'Free', link: 'https://podman.io/' } } + }, + { id: 423, title: 'containerd', subtitle: 'Standard container runtime', category: 'TOOLS', isNew: false, features: { Type: 'Containerization', License: 'Apache-2.0' }, + specifications: { Type: 'Container Runtime', Platform: 'Linux/Win', Ecosystem: 'CNCF', Focus: 'Simplicity', License: 'Open Source (Apache-2.0)', Description: 'Industry-standard core container runtime with an emphasis on simplicity, robustness and portability.', PrimaryUseCase: 'Base runtime used by Kubernetes and Docker.', Ecosystem: 'CNCF' }, + scores: { Performance: 99, Reliability: 99, Ecosystem: 96 }, + prices: { amazon: { price: 'Free', link: 'https://containerd.io/' }, flipkart: { price: 'Free', link: 'https://containerd.io/' }, official: { price: 'Free', link: 'https://containerd.io/' } } + }, + { id: 424, title: 'Kubernetes', subtitle: 'Container orchestration system', category: 'TOOLS', isNew: false, features: { Type: 'Orchestration', License: 'Apache-2.0' }, + specifications: { Type: 'Orchestration', Platform: 'Linux', Ecosystem: 'CNCF', Scaling: 'Automated', License: 'Open Source (Apache-2.0)', Description: 'Automates deployment, scaling, and management of containerized applications.', PrimaryUseCase: 'Enterprise and cloud-scale container orchestration.', Ecosystem: 'Helm, Cloud Native' }, + scores: { Scalability: 100, Ecosystem: 100, Complexity: 85 }, + prices: { amazon: { price: 'Free', link: 'https://kubernetes.io/' }, flipkart: { price: 'Free', link: 'https://kubernetes.io/' }, official: { price: 'Free', link: 'https://kubernetes.io/' } } + }, + { id: 425, title: 'Docker Swarm', subtitle: 'Native clustering for Docker', category: 'TOOLS', isNew: false, features: { Type: 'Orchestration', License: 'Apache-2.0' }, + specifications: { Type: 'Orchestration', Platform: 'Cross-platform', Integration: 'Docker CLI', Setup: 'Simple', License: 'Open Source (Apache-2.0)', Description: 'Swarm mode is built into the Docker Engine and is extremely easy to set up.', PrimaryUseCase: 'Simple container orchestration for small/medium clusters.', Ecosystem: 'Docker Engine' }, + scores: { Usability: 96, Simplicity: 98, Scalability: 88 }, + prices: { amazon: { price: 'Free', link: 'https://docs.docker.com/engine/swarm/' }, flipkart: { price: 'Free', link: 'https://docs.docker.com/engine/swarm/' }, official: { price: 'Free', link: 'https://docs.docker.com/engine/swarm/' } } + }, + { id: 426, title: 'Nomad', subtitle: 'Simple/flexible workload orchestrator', category: 'TOOLS', isNew: false, features: { Type: 'Orchestration', License: 'BUSL/MPL' }, + specifications: { Type: 'Orchestration', Platform: 'Cross-platform', Vendor: 'HashiCorp', Workloads: 'Containers, VMs, Binaries', License: 'Open Source/BUSL', Description: 'Orchestrates any type of application, not just containers.', PrimaryUseCase: 'Mixed workloads (VMs + Containers + Edge) orchestration.', Ecosystem: 'Consul, Vault' }, + scores: { Flexibility: 97, Simplicity: 94, Performance: 95 }, + prices: { amazon: { price: 'Free', link: 'https://www.nomadproject.io/' }, flipkart: { price: 'Free', link: 'https://www.nomadproject.io/' }, official: { price: 'Free', link: 'https://www.nomadproject.io/' } } + }, + { id: 427, title: 'Ansible', subtitle: 'Simple IT automation', category: 'TOOLS', isNew: false, features: { Type: 'Config Mgmt', License: 'GPL-3.0' }, + specifications: { Type: 'Automation', Platform: 'Cross-platform', Language: 'Python/YAML', Architecture: 'Agentless', License: 'Open Source (GPL-3.0)', Description: 'Radically simple IT automation engine via SSH without agents.', PrimaryUseCase: 'Configuration management and ad-hoc infrastructure logic.', Ecosystem: 'Ansible Galaxy' }, + scores: { Usability: 98, Adoption: 99, Extensibility: 96 }, + prices: { amazon: { price: 'Free', link: 'https://www.ansible.com/' }, flipkart: { price: 'Free', link: 'https://www.ansible.com/' }, official: { price: 'Free', link: 'https://www.ansible.com/' } } + }, + { id: 428, title: 'Puppet', subtitle: 'Infrastructure delivery tooling', category: 'TOOLS', isNew: false, features: { Type: 'Config Mgmt', License: 'Apache-2.0' }, + specifications: { Type: 'Automation', Platform: 'Cross-platform', Language: 'Ruby/DSL', Architecture: 'Agent-based', License: 'Open Source (Apache-2.0)', Description: 'Ensures servers are configured in their desired state continuously.', PrimaryUseCase: 'Large scale infrastructure-as-code management.', Ecosystem: 'Puppet Forge' }, + scores: { Scalability: 97, Reliability: 95, Usability: 85 }, + prices: { amazon: { price: 'Free', link: 'https://puppet.com/' }, flipkart: { price: 'Free', link: 'https://puppet.com/' }, official: { price: 'Free', link: 'https://puppet.com/' } } + }, + { id: 429, title: 'Chef', subtitle: 'Infrastructure as code', category: 'TOOLS', isNew: false, features: { Type: 'Config Mgmt', License: 'Apache-2.0' }, + specifications: { Type: 'Automation', Platform: 'Cross-platform', Language: 'Ruby', Architecture: 'Agent-based', License: 'Open Source (Apache-2.0)', Description: 'Transform infrastructure into code using Ruby dialects.', PrimaryUseCase: 'Extremely customizable configuration enforcement.', Ecosystem: 'Chef Supermarket' }, + scores: { Flexibility: 95, Extensibility: 96, Usability: 82 }, + prices: { amazon: { price: 'Free', link: 'https://www.chef.io/' }, flipkart: { price: 'Free', link: 'https://www.chef.io/' }, official: { price: 'Free', link: 'https://www.chef.io/' } } + }, + { id: 430, title: 'Redmine', subtitle: 'Flexible project management web app', category: 'TOOLS', isNew: false, features: { Type: 'Project Mgmt', License: 'GPL-2.0' }, + specifications: { Type: 'Issue Tracker', Platform: 'Web', Language: 'Ruby on Rails', Plugins: 'Extensive', License: 'Open Source (GPL-2.0)', Description: 'Provides Gantt charts, calendar, wiki, forums, and role-based access.', PrimaryUseCase: 'Cross-project issue tracking and traditional management.', Ecosystem: 'Redmine Plugins' }, + scores: { Features: 94, Flexibility: 95, ModernUI: 70 }, + prices: { amazon: { price: 'Free', link: 'https://www.redmine.org/' }, flipkart: { price: 'Free', link: 'https://www.redmine.org/' }, official: { price: 'Free', link: 'https://www.redmine.org/' } } + }, + { id: 431, title: 'Bugzilla', subtitle: 'Robust defect tracking system', category: 'TOOLS', isNew: false, features: { Type: 'Project Mgmt', License: 'MPL' }, + specifications: { Type: 'Issue Tracker', Platform: 'Web', Language: 'Perl', UseCase: 'Large Projects', License: 'Open Source (MPL)', Description: 'Used by organizations like Mozilla to track highly complex software defects.', PrimaryUseCase: 'Heavy-duty software bug tracking.', Ecosystem: 'Bugzilla Extensions' }, + scores: { Capability: 98, Speed: 90, ModernUI: 60 }, + prices: { amazon: { price: 'Free', link: 'https://www.bugzilla.org/' }, flipkart: { price: 'Free', link: 'https://www.bugzilla.org/' }, official: { price: 'Free', link: 'https://www.bugzilla.org/' } } + }, + { id: 432, title: 'Taiga', subtitle: 'Agile project management platform', category: 'TOOLS', isNew: false, features: { Type: 'Project Mgmt', License: 'AGPL-3.0' }, + specifications: { Type: 'Issue Tracker', Platform: 'Web', Language: 'Python/Django', Framework: 'Scrum/Kanban', License: 'Open Source (AGPL-3.0)', Description: 'Highly visual platform tailored strictly for agile methodologies.', PrimaryUseCase: 'Scrum sprints and Kanban boards for dev teams.', Ecosystem: 'Taiga Integrations' }, + scores: { Usability: 96, Aesthetics: 95, Features: 90 }, + prices: { amazon: { price: 'Free', link: 'https://taiga.io/' }, flipkart: { price: 'Free', link: 'https://taiga.io/' }, official: { price: 'Free', link: 'https://taiga.io/' } } + }, + { id: 433, title: 'SonarQube (Community)', subtitle: 'Code quality and security', category: 'TOOLS', isNew: false, features: { Type: 'Code Quality', License: 'LGPL-3.0' }, + specifications: { Type: 'Static Analysis', Platform: 'Web', Support: '15+ Languages', UseCase: 'CI/CD Integration', License: 'Open Source (LGPL-3.0)', Description: 'Continuously inspects code quality to detect bugs, code smells and security vulnerabilities.', PrimaryUseCase: 'Automated CI code review.', Ecosystem: 'SonarSource' }, + scores: { Analysis: 98, Ecosystem: 96, Usability: 92 }, + prices: { amazon: { price: 'Free', link: 'https://www.sonarsource.com/products/sonarqube/' }, flipkart: { price: 'Free', link: 'https://www.sonarsource.com/products/sonarqube/' }, official: { price: 'Free', link: 'https://www.sonarqube.org/' } } + }, + { id: 434, title: 'ESLint', subtitle: 'Pluggable JavaScript linter', category: 'TOOLS', isNew: false, features: { Type: 'Code Quality', License: 'MIT' }, + specifications: { Type: 'Linter', Platform: 'Node.js', Language: 'JS/TS', Customization: 'High', License: 'Open Source (MIT)', Description: 'Find and fix problems in your JavaScript code.', PrimaryUseCase: 'Enforcing JS/TS code standards and catching syntax bugs.', Ecosystem: 'NPM rulesets' }, + scores: { Usability: 99, Ecosystem: 100, Speed: 95 }, + prices: { amazon: { price: 'Free', link: 'https://eslint.org/' }, flipkart: { price: 'Free', link: 'https://eslint.org/' }, official: { price: 'Free', link: 'https://eslint.org/' } } + }, + { id: 435, title: 'Prettier', subtitle: 'Opinionated code formatter', category: 'TOOLS', isNew: false, features: { Type: 'Code Quality', License: 'MIT' }, + specifications: { Type: 'Formatter', Platform: 'Node.js', Language: 'Multiple', Ecosystem: 'IDE Plug-ins', License: 'Open Source (MIT)', Description: 'Parses code and re-prints it with its own consistent style.', PrimaryUseCase: 'Automatic code style homogenization over a repository.', Ecosystem: 'Prettier Plugins' }, + scores: { Speed: 98, Consistency: 100, Adoption: 99 }, + prices: { amazon: { price: 'Free', link: 'https://prettier.io/' }, flipkart: { price: 'Free', link: 'https://prettier.io/' }, official: { price: 'Free', link: 'https://prettier.io/' } } + }, + { id: 436, title: 'Selenium', subtitle: 'Browser automation framework', category: 'TOOLS', isNew: false, features: { Type: 'Testing', License: 'Apache-2.0' }, + specifications: { Type: 'Testing Web', Platform: 'Cross-platform', Language: 'Multiple', Support: 'All major browsers', License: 'Open Source (Apache-2.0)', Description: 'Provides a playback tool for authoring tests without the need to learn a test scripting language.', PrimaryUseCase: 'Automated end-to-end web testing across all browsers.', Ecosystem: 'Selenium Grid' }, + scores: { Capability: 99, Ecosystem: 100, Speed: 80 }, + prices: { amazon: { price: 'Free', link: 'https://www.selenium.dev/' }, flipkart: { price: 'Free', link: 'https://www.selenium.dev/' }, official: { price: 'Free', link: 'https://www.selenium.dev/' } } + }, + { id: 437, title: 'Cypress', subtitle: 'Next generation front end testing tool', category: 'TOOLS', isNew: false, features: { Type: 'Testing', License: 'MIT' }, + specifications: { Type: 'Testing Web', Platform: 'Cross-platform', Language: 'JavaScript', Focus: 'E2E Testing', License: 'Open Source (MIT)', Description: 'Modern web automation built for the modern web directly in the browser architecture.', PrimaryUseCase: 'Developer-oriented E2E and component testing.', Ecosystem: 'Cypress Dashboard' }, + scores: { Usability: 98, Speed: 95, Features: 94 }, + prices: { amazon: { price: 'Free', link: 'https://www.cypress.io/' }, flipkart: { price: 'Free', link: 'https://www.cypress.io/' }, official: { price: 'Free', link: 'https://www.cypress.io/' } } + }, + { id: 438, title: 'JUnit', subtitle: 'Testing framework for Java', category: 'TOOLS', isNew: false, features: { Type: 'Testing', License: 'EPL-2.0' }, + specifications: { Type: 'Unit Testing', Platform: 'Java', Architecture: 'JUnit 5 Platform', UseCase: 'TDD', License: 'Open Source (EPL-2.0)', Description: 'The most popular unit testing framework providing annotations for test execution.', PrimaryUseCase: 'Test-Driven Development (TDD) for Java applications.', Ecosystem: 'Maven/Gradle Test' }, + scores: { Ecosystem: 100, Stability: 99, Extensibility: 95 }, + prices: { amazon: { price: 'Free', link: 'https://junit.org/' }, flipkart: { price: 'Free', link: 'https://junit.org/' }, official: { price: 'Free', link: 'https://junit.org/' } } + }, + { id: 439, title: 'PostgreSQL', subtitle: 'Advanced open source relational DB', category: 'TOOLS', isNew: false, features: { Type: 'Database', License: 'PostgreSQL' }, + specifications: { Type: 'RDBMS', Platform: 'Cross-platform', Language: 'C', ACID: 'Yes', License: 'Open Source (PostgreSQL License)', Description: 'Highly robust relational database system known for strict standards compliance and scalability.', PrimaryUseCase: 'Complex relational schemas and structured data integrity.', Ecosystem: 'PostGIS, Citus' }, + scores: { Reliability: 100, Features: 99, Performance: 95 }, + prices: { amazon: { price: 'Free', link: 'https://www.postgresql.org/' }, flipkart: { price: 'Free', link: 'https://www.postgresql.org/' }, official: { price: 'Free', link: 'https://www.postgresql.org/' } } + }, + { id: 440, title: 'MySQL', subtitle: 'Most popular open source DB', category: 'TOOLS', isNew: false, features: { Type: 'Database', License: 'GPL-2.0' }, + specifications: { Type: 'RDBMS', Platform: 'Cross-platform', Language: 'C/C++', Performance: 'High', License: 'Open Source (GPL-2.0)', Description: 'Fast, reliable, and extremely popular database backend for web applications.', PrimaryUseCase: 'General purpose relational data serving.', Ecosystem: 'Oracle' }, + scores: { Scalability: 96, Adoption: 100, Usability: 92 }, + prices: { amazon: { price: 'Free', link: 'https://www.mysql.com/' }, flipkart: { price: 'Free', link: 'https://www.mysql.com/' }, official: { price: 'Free', link: 'https://www.mysql.com/' } } + }, + { id: 441, title: 'MariaDB', subtitle: 'Community-developed fork of MySQL', category: 'TOOLS', isNew: false, features: { Type: 'Database', License: 'GPL-2.0' }, + specifications: { Type: 'RDBMS', Platform: 'Cross-platform', Language: 'C/C++', StorageEngines: 'Pluggable', License: 'Open Source (GPL-2.0)', Description: 'Created by original developers of MySQL with guarantees to stay open source.', PrimaryUseCase: 'Drop-in replacement for MySQL with more features.', Ecosystem: 'MariaDB Foundation' }, + scores: { Innovation: 95, Performance: 97, Compatibility: 98 }, + prices: { amazon: { price: 'Free', link: 'https://mariadb.org/' }, flipkart: { price: 'Free', link: 'https://mariadb.org/' }, official: { price: 'Free', link: 'https://mariadb.org/' } } + }, + { id: 442, title: 'Hoppscotch', subtitle: 'Open source API development ecosystem', category: 'TOOLS', isNew: true, features: { Type: 'API Tool', License: 'MIT' }, + specifications: { Type: 'API Client', Platform: 'Web/PWA', Architecture: 'Vue.js', Identity: 'Postman Alternative', License: 'Open Source (MIT)', Description: 'Lightweight web-based API request builder with real-time syncing.', PrimaryUseCase: 'Rapid API testing and sharing within the browser.', Ecosystem: 'Hoppscotch CLI' }, + scores: { Usability: 98, Speed: 99, Features: 92 }, + prices: { amazon: { price: 'Free', link: 'https://hoppscotch.io/' }, flipkart: { price: 'Free', link: 'https://hoppscotch.io/' }, official: { price: 'Free', link: 'https://hoppscotch.io/' } } + }, + { id: 443, title: 'Insomnia', subtitle: 'API platform for GraphQL/REST/gRPC', category: 'TOOLS', isNew: false, features: { Type: 'API Tool', License: 'MIT' }, + specifications: { Type: 'API Client', Platform: 'Cross-platform', Support: 'GraphQL, REST', Extensibility: 'Plugins', License: 'Open Source (MIT)', Description: 'Desktop application to test APIs locally and efficiently with strong GraphQL support.', PrimaryUseCase: 'REST/GraphQL API design and testing.', Ecosystem: 'Insomnia Plugins' }, + scores: { Aesthetics: 96, Features: 95, Adoption: 90 }, + prices: { amazon: { price: 'Free', link: 'https://insomnia.rest/' }, flipkart: { price: 'Free', link: 'https://insomnia.rest/' }, official: { price: 'Free', link: 'https://insomnia.rest/' } } + }, + { id: 444, title: 'Bruno', subtitle: 'Open-source IDE for exploring APIs', category: 'TOOLS', isNew: true, features: { Type: 'API Tool', License: 'MIT' }, + specifications: { Type: 'API Client', Platform: 'Cross-platform', Storage: 'Local Plain Text', Identity: 'Postman Alternative', License: 'Open Source (MIT)', Description: 'Revolutionary API client that stores collections as plain text making it Git-friendly.', PrimaryUseCase: 'Version-controlled API collections without cloud dependency.', Ecosystem: 'Bruno CLI' }, + scores: { Privacy: 100, Usability: 94, Speed: 96 }, + prices: { amazon: { price: 'Free', link: 'https://www.usebruno.com/' }, flipkart: { price: 'Free', link: 'https://www.usebruno.com/' }, official: { price: 'Free', link: 'https://www.usebruno.com/' } } + }, + { id: 445, title: 'Prometheus', subtitle: 'Monitoring system & time series DB', category: 'TOOLS', isNew: false, features: { Type: 'Monitoring', License: 'Apache-2.0' }, + specifications: { Type: 'Monitoring', Platform: 'Linux', Ecosystem: 'CNCF', QueryLanguage: 'PromQL', License: 'Open Source (Apache-2.0)', Description: 'Gathers multi-dimensional time series data using a pull model.', PrimaryUseCase: 'Cloud-native service monitoring and alerting.', Ecosystem: 'Exporters / Grafana' }, + scores: { Scalability: 98, Features: 99, EaseOfSetup: 85 }, + prices: { amazon: { price: 'Free', link: 'https://prometheus.io/' }, flipkart: { price: 'Free', link: 'https://prometheus.io/' }, official: { price: 'Free', link: 'https://prometheus.io/' } } + }, + { id: 446, title: 'Grafana', subtitle: 'The open observability platform', category: 'TOOLS', isNew: false, features: { Type: 'Monitoring', License: 'AGPL-3.0' }, + specifications: { Type: 'Dashboarding', Platform: 'Cross-platform', Integration: 'Prometheus, TSDBs', Visuals: 'Extensive', License: 'Open Source (AGPL-3.0)', Description: 'Allows you to query, visualize, alert on and understand your metrics no matter where they are stored.', PrimaryUseCase: 'Interactive dashboards for metrics and logs.', Ecosystem: 'Grafana Plugins' }, + scores: { Visualization: 100, Usability: 96, Ecosystem: 99 }, + prices: { amazon: { price: 'Free', link: 'https://grafana.com/' }, flipkart: { price: 'Free', link: 'https://grafana.com/' }, official: { price: 'Free', link: 'https://grafana.com/' } } + }, + { id: 447, title: 'Zabbix', subtitle: 'Enterprise-class monitoring solution', category: 'TOOLS', isNew: false, features: { Type: 'Monitoring', License: 'GPL-2.0' }, + specifications: { Type: 'Monitoring', Platform: 'Cross-platform', Scalability: 'Enterprise', Agents: 'Available', License: 'Open Source (GPL-2.0)', Description: 'Mature, network-heavy monitoring system with built-in UI and alerting.', PrimaryUseCase: 'Server and network infrastructure monitoring.', Ecosystem: 'Zabbix Integrations' }, + scores: { Capability: 97, Scalability: 96, ModernUI: 80 }, + prices: { amazon: { price: 'Free', link: 'https://www.zabbix.com/' }, flipkart: { price: 'Free', link: 'https://www.zabbix.com/' }, official: { price: 'Free', link: 'https://www.zabbix.com/' } } + }, + { id: 448, title: 'Elasticsearch', subtitle: 'Distributed, RESTful search/analytics engine', category: 'TOOLS', isNew: false, features: { Type: 'Log Mgmt', License: 'Elastic/SSPL' }, + specifications: { Type: 'Search Engine', Platform: 'Cross-platform', Base: 'Apache Lucene', Ecosystem: 'ELK Stack', License: 'Open Source / Business', Description: 'Provides a distributed, multitenant-capable full-text search engine.', PrimaryUseCase: 'Log aggregation and extremely fast unstructured searches.', Ecosystem: 'Kibana, Logstash' }, + scores: { Speed: 99, Scalability: 98, Features: 97 }, + prices: { amazon: { price: 'Free', link: 'https://www.elastic.co/' }, flipkart: { price: 'Free', link: 'https://www.elastic.co/' }, official: { price: 'Free', link: 'https://www.elastic.co/' } } + }, + { id: 449, title: 'Logstash', subtitle: 'Server-side data processing pipeline', category: 'TOOLS', isNew: false, features: { Type: 'Log Mgmt', License: 'Elastic/SSPL' }, + specifications: { Type: 'Data Pipeline', Platform: 'Cross-platform', 'Input/Output': 'Versatile', Ecosystem: 'ELK Stack', License: 'Open Source / Business', Description: 'Ingests data from a multitude of sources simultaneously, transforms it, and sends it to your favorite stash.', PrimaryUseCase: 'Data parsing and routing for logging.', Ecosystem: 'Elastic Stack' }, + scores: { Capability: 96, Flexibility: 98, Performance: 88 }, + prices: { amazon: { price: 'Free', link: 'https://www.elastic.co/logstash' }, flipkart: { price: 'Free', link: 'https://www.elastic.co/logstash' }, official: { price: 'Free', link: 'https://www.elastic.co/logstash' } } + }, + { id: 450, title: 'Fluentd', subtitle: 'Data collector for unified logging layer', category: 'TOOLS', isNew: false, features: { Type: 'Log Mgmt', License: 'Apache-2.0' }, + specifications: { Type: 'Data Pipeline', Platform: 'Cross-platform', Language: 'Ruby/C', Ecosystem: 'CNCF', License: 'Open Source (Apache-2.0)', Description: 'Decouples data sources from backend systems by providing a unified logging layer.', PrimaryUseCase: 'Cloud-native log collection and shipping.', Ecosystem: 'Fluent Bit, Kubernetes' }, + scores: { Reliability: 98, Adaptability: 97, ResourceUsage: 90 }, + prices: { amazon: { price: 'Free', link: 'https://www.fluentd.org/' }, flipkart: { price: 'Free', link: 'https://www.fluentd.org/' }, official: { price: 'Free', link: 'https://www.fluentd.org/' } } + }, + { id: 451, title: 'Gitea', subtitle: 'Painless self-hosted Git service', category: 'TOOLS', isNew: false, features: { Type: 'Code Hosting', License: 'MIT' }, + specifications: { Type: 'Forge', Platform: 'Cross-platform', Language: 'Go', Focus: 'Lightweight', License: 'Open Source (MIT)', Description: 'Community managed, lightweight code hosting solution written in Go.', PrimaryUseCase: 'Self-hosting Git repositories on low-power servers.', Ecosystem: 'Forgejo' }, + scores: { Performance: 99, Simplicity: 96, Features: 88 }, + prices: { amazon: { price: 'Free', link: 'https://gitea.io/' }, flipkart: { price: 'Free', link: 'https://gitea.io/' }, official: { price: 'Free', link: 'https://gitea.io/' } } + }, + { id: 452, title: 'GitLab CE', subtitle: 'Complete DevOps platform', category: 'TOOLS', isNew: false, features: { Type: 'Code Hosting', License: 'MIT' }, + specifications: { Type: 'Forge', Platform: 'Linux', Ecosystem: 'All-in-one', Scale: 'Enterprise', License: 'Open Source (MIT)', Description: 'A single application for the entire DevSecOps lifecycle.', PrimaryUseCase: 'Comprehensive enterprise-grade code repository and pipelines.', Ecosystem: 'GitLab Runners' }, + scores: { Features: 100, Scalability: 95, ResourceUsage: 75 }, + prices: { amazon: { price: 'Free', link: 'https://about.gitlab.com/' }, flipkart: { price: 'Free', link: 'https://about.gitlab.com/' }, official: { price: 'Free', link: 'https://about.gitlab.com/install/' } } + }, + { id: 453, title: 'Nginx', subtitle: 'High performance web server & reverse proxy', category: 'TOOLS', isNew: false, features: { Type: 'Web Server', License: 'BSD-2-Clause' }, + specifications: { Type: 'Web Server', Platform: 'Cross-platform', Architecture: 'Event-driven', Capability: 'Load Balancer', License: 'Open Source (BSD-2-Clause)', Description: 'Known for its stability, rich feature set, simple configuration, and low resource consumption.', PrimaryUseCase: 'High-traffic reverse proxy serving static content.', Ecosystem: 'F5 Networks' }, + scores: { Performance: 100, Reliability: 99, Concurrency: 100 }, + prices: { amazon: { price: 'Free', link: 'https://nginx.org/' }, flipkart: { price: 'Free', link: 'https://nginx.org/' }, official: { price: 'Free', link: 'https://nginx.org/' } } + }, + { id: 454, title: 'Apache HTTP Server', subtitle: 'Most popular web server', category: 'TOOLS', isNew: false, features: { Type: 'Web Server', License: 'Apache-2.0' }, + specifications: { Type: 'Web Server', Platform: 'Cross-platform', Architecture: 'Process/Thread based', Modules: 'Extensive', License: 'Open Source (Apache-2.0)', Description: 'A robust, commercial-grade, featureful HTTP server serving over 20% of internet traffic.', PrimaryUseCase: 'Dynamic content processing and highly configurable routing.', Ecosystem: 'Apache Foundation' }, + scores: { Features: 98, Ecosystem: 100, Configurable: 96 }, + prices: { amazon: { price: 'Free', link: 'https://httpd.apache.org/' }, flipkart: { price: 'Free', link: 'https://httpd.apache.org/' }, official: { price: 'Free', link: 'https://httpd.apache.org/' } } + }, + + { id: 455, title: 'Vercel', subtitle: 'Frontend Cloud & Next.js creator', category: 'TOOLS', isNew: true, features: { Type: 'Deployment', Subscription: 'Freemium' }, + specifications: { Type: 'Platform as a Service', Platform: 'Web', Support: 'Global Edge Network', License: 'Proprietary Service', Description: 'Vercel is the platform for frontend developers, providing the speed and reliability innovators need to create at the moment of inspiration.', PrimaryUseCase: 'Zero-configuration deployment for frontend frameworks and serverless functions.', Ecosystem: 'Next.js, React, Edge Functions', FreeTier: 'Hobby (Free forever for non-commercial)', ProTier: '$20/mo per user (1TB Bandwidth)', EnterpriseTier: 'Custom pricing (Enhanced Security, SLA)' }, + scores: { Reliability: 99, Speed: 100, EaseOfUse: 98 }, + prices: { official: { price: 'Freemium', link: 'https://vercel.com/' } } + }, + { id: 456, title: 'Netlify', subtitle: 'Connect everything. Build anywhere.', category: 'TOOLS', isNew: false, features: { Type: 'Deployment', Subscription: 'Freemium' }, + specifications: { Type: 'Platform as a Service', Platform: 'Web', Support: 'Jamstack', License: 'Proprietary Service', Description: 'A unified platform that automates your code to create high-performant, easily maintainable sites and web apps.', PrimaryUseCase: 'Jamstack applications with automated edge deployments.', Ecosystem: 'Gatsby, Nuxt, Edge CDN', FreeTier: 'Starter (100GB Bandwidth, 300 build mins)', ProTier: '$19/mo per user (1TB Bandwidth)', EnterpriseTier: 'Custom pricing (99.99% Uptime SLA)' }, + scores: { Reliability: 98, Speed: 97, EaseOfUse: 99 }, + prices: { official: { price: 'Freemium', link: 'https://www.netlify.com/' } } + }, + { id: 457, title: 'Render', subtitle: 'Unified Cloud to build and run all your apps', category: 'TOOLS', isNew: true, features: { Type: 'Deployment', Subscription: 'Freemium' }, + specifications: { Type: 'Cloud Platform', Platform: 'Web / Backend', Support: 'Docker, Node, Python', License: 'Proprietary Service', Description: 'Render is a unified cloud to build and run all your apps and websites with free TLS certificates, a global CDN, DDoS protection, private networks, and auto deploys from Git.', PrimaryUseCase: 'Deploying full-stack applications, databases, and cron jobs effortlessly.', Ecosystem: 'PostgreSQL, Redis, Web Services', FreeTier: 'Individual (Static Sites, Free Web Services spin down)', ProTier: 'Team $19/mo (Scale memory/CPU as needed)', EnterpriseTier: 'Organization (SSO, Role-based access)' }, + scores: { Versatility: 95, Usability: 96, Value: 98 }, + prices: { official: { price: 'Freemium', link: 'https://render.com/' } } + }, + { id: 458, title: 'Heroku', subtitle: 'Cloud application platform', category: 'TOOLS', isNew: false, features: { Type: 'Deployment', Subscription: 'Paid' }, + specifications: { Type: 'Platform as a Service', Platform: 'Backend', Support: 'Polyglot', License: 'Proprietary Service', Description: 'A platform as a service (PaaS) that enables developers to build, run, and operate applications entirely in the cloud.', PrimaryUseCase: 'Simple container-based application hosting (Dynos).', Ecosystem: 'Salesforce, Node, Ruby, Postgres', FreeTier: 'No longer available. Starts at Eco ($5)', ProTier: 'Standard Dynos ($25-$50/mo)', EnterpriseTier: 'Private Spaces (Network isolation, compliance)' }, + scores: { Ecosystem: 99, Reliability: 95, Pricing: 70 }, + prices: { official: { price: 'Paid Plans', link: 'https://www.heroku.com/' } } + }, + { id: 459, title: 'AWS Amplify', subtitle: 'Build extensible, full-stack web and mobile apps', category: 'TOOLS', isNew: false, features: { Type: 'Deployment', Subscription: 'Pay-as-you-go' }, + specifications: { Type: 'Cloud Platform', Platform: 'Web / Mobile', Support: 'AWS Cloud', License: 'Proprietary Service', Description: 'A set of purpose-built tools and features that lets frontend web and mobile developers quickly and easily build full-stack applications on AWS.', PrimaryUseCase: 'Seamless integration of frontend code with AWS backend services (Auth, Storage, APIs).', Ecosystem: 'AWS ecosystem, React Native, Vue', FreeTier: 'Free tier limits for 12 months (1000 build mins, 15GB bandwidth)', ProTier: 'Pay-as-you-go ($0.01/build min, $0.15/GB)', EnterpriseTier: 'Part of AWS compliance, massive scale' }, + scores: { Scalability: 100, Features: 96, Complexity: 85 }, + prices: { official: { price: 'Pay-as-you-go', link: 'https://aws.amazon.com/amplify/' } } + }, + + { id: 455, title: 'Vercel', subtitle: 'Frontend Cloud & Next.js creator', category: 'TOOLS', isNew: true, features: { Type: 'Deployment', Subscription: 'Freemium' }, + specifications: { Type: 'Platform as a Service', Platform: 'Web', Support: 'Global Edge Network', License: 'Proprietary Service', Description: 'Vercel is the platform for frontend developers, providing the speed and reliability innovators need to create at the moment of inspiration.', PrimaryUseCase: 'Zero-configuration deployment for frontend frameworks and serverless functions.', Ecosystem: 'Next.js, React, Edge Functions', FreeTier: 'Hobby (Free forever for non-commercial)', ProTier: '$20/mo per user (1TB Bandwidth)', EnterpriseTier: 'Custom pricing (Enhanced Security, SLA)' }, + scores: { Reliability: 99, Speed: 100, EaseOfUse: 98 }, + prices: { official: { price: 'Freemium', link: 'https://vercel.com/' } } + }, + { id: 456, title: 'Netlify', subtitle: 'Connect everything. Build anywhere.', category: 'TOOLS', isNew: false, features: { Type: 'Deployment', Subscription: 'Freemium' }, + specifications: { Type: 'Platform as a Service', Platform: 'Web', Support: 'Jamstack', License: 'Proprietary Service', Description: 'A unified platform that automates your code to create high-performant, easily maintainable sites and web apps.', PrimaryUseCase: 'Jamstack applications with automated edge deployments.', Ecosystem: 'Gatsby, Nuxt, Edge CDN', FreeTier: 'Starter (100GB Bandwidth, 300 build mins)', ProTier: '$19/mo per user (1TB Bandwidth)', EnterpriseTier: 'Custom pricing (99.99% Uptime SLA)' }, + scores: { Reliability: 98, Speed: 97, EaseOfUse: 99 }, + prices: { official: { price: 'Freemium', link: 'https://www.netlify.com/' } } + }, + { id: 457, title: 'Render', subtitle: 'Unified Cloud to build and run all your apps', category: 'TOOLS', isNew: true, features: { Type: 'Deployment', Subscription: 'Freemium' }, + specifications: { Type: 'Cloud Platform', Platform: 'Web / Backend', Support: 'Docker, Node, Python', License: 'Proprietary Service', Description: 'Render is a unified cloud to build and run all your apps and websites with free TLS certificates, a global CDN, DDoS protection, private networks, and auto deploys from Git.', PrimaryUseCase: 'Deploying full-stack applications, databases, and cron jobs effortlessly.', Ecosystem: 'PostgreSQL, Redis, Web Services', FreeTier: 'Individual (Static Sites, Free Web Services spin down)', ProTier: 'Team $19/mo (Scale memory/CPU as needed)', EnterpriseTier: 'Organization (SSO, Role-based access)' }, + scores: { Versatility: 95, Usability: 96, Value: 98 }, + prices: { official: { price: 'Freemium', link: 'https://render.com/' } } + }, + { id: 458, title: 'Heroku', subtitle: 'Cloud application platform', category: 'TOOLS', isNew: false, features: { Type: 'Deployment', Subscription: 'Paid' }, + specifications: { Type: 'Platform as a Service', Platform: 'Backend', Support: 'Polyglot', License: 'Proprietary Service', Description: 'A platform as a service (PaaS) that enables developers to build, run, and operate applications entirely in the cloud.', PrimaryUseCase: 'Simple container-based application hosting (Dynos).', Ecosystem: 'Salesforce, Node, Ruby, Postgres', FreeTier: 'No longer available. Starts at Eco ($5)', ProTier: 'Standard Dynos ($25-$50/mo)', EnterpriseTier: 'Private Spaces (Network isolation, compliance)' }, + scores: { Ecosystem: 99, Reliability: 95, Pricing: 70 }, + prices: { official: { price: 'Paid Plans', link: 'https://www.heroku.com/' } } + }, + { id: 459, title: 'AWS Amplify', subtitle: 'Build extensible, full-stack web and mobile apps', category: 'TOOLS', isNew: false, features: { Type: 'Deployment', Subscription: 'Pay-as-you-go' }, + specifications: { Type: 'Cloud Platform', Platform: 'Web / Mobile', Support: 'AWS Cloud', License: 'Proprietary Service', Description: 'A set of purpose-built tools and features that lets frontend web and mobile developers quickly and easily build full-stack applications on AWS.', PrimaryUseCase: 'Seamless integration of frontend code with AWS backend services (Auth, Storage, APIs).', Ecosystem: 'AWS ecosystem, React Native, Vue', FreeTier: 'Free tier limits for 12 months (1000 build mins, 15GB bandwidth)', ProTier: 'Pay-as-you-go ($0.01/build min, $0.15/GB)', EnterpriseTier: 'Part of AWS compliance, massive scale' }, + scores: { Scalability: 100, Features: 96, Complexity: 85 }, + prices: { official: { price: 'Pay-as-you-go', link: 'https://aws.amazon.com/amplify/' } } + }, + + // Memory (RAM) + { id: 501, title: 'Corsair Vengeance RGB DDR5', subtitle: 'Popular RGB DDR5', category: 'MEMORY (RAM)', isNew: false, features: { Capacity: '32GB (2x16GB)', Speed: '6000MT/s' }, + specifications: { Capacity: '32GB (2x16GB)', Speed: '6000 MT/s', CAS: 'CL36', Voltage: '1.35V', Profile: 'XMP 3.0 / EXPO', RGB: 'Yes (iCUE)' }, + scores: { Speed: 90, Reliability: 95, Value: 85, Aesthetics: 96 }, + prices: { amazon: { price: '$110', link: getURL('amazon', 'Corsair Vengeance RGB DDR5 32GB 6000') }, flipkart: { price: '₹11,000', link: getURL('flipkart', 'Corsair Vengeance DDR5') }, official: { price: '$120', link: getURL('official', 'Corsair Vengeance RGB DDR5') } } + }, + { id: 502, title: 'G.Skill Trident Z5 RGB NEO', subtitle: 'Optimized for AMD EXPO', category: 'MEMORY (RAM)', isNew: true, features: { Capacity: '32GB (2x16GB)', Speed: '6000MT/s' }, + specifications: { Capacity: '32GB (2x16GB)', Speed: '6000 MT/s', CAS: 'CL30', Voltage: '1.35V', Profile: 'EXPO (AMD)', RGB: 'Yes' }, + scores: { Speed: 95, Reliability: 94, Value: 88, Aesthetics: 98 }, + prices: { amazon: { price: '$115', link: getURL('amazon', 'G.Skill Trident Z5 RGB NEO 32GB') }, flipkart: { price: '₹12,000', link: getURL('flipkart', 'G.Skill Trident Z5 NEO') }, official: { price: '$130', link: getURL('official', 'G.Skill Trident Z5 NEO') } } + }, + { id: 503, title: 'Kingston FURY Beast DDR5', subtitle: 'Reliable performance', category: 'MEMORY (RAM)', isNew: false, features: { Capacity: '32GB (2x16GB)', Speed: '5600MT/s' }, + specifications: { Capacity: '32GB (2x16GB)', Speed: '5600 MT/s', CAS: 'CL40', Voltage: '1.25V', Profile: 'XMP 3.0', RGB: 'No' }, + scores: { Speed: 80, Reliability: 98, Value: 92, Aesthetics: 75 }, + prices: { amazon: { price: '$90', link: getURL('amazon', 'Kingston FURY Beast DDR5 32GB') }, flipkart: { price: '₹9,000', link: getURL('flipkart', 'Kingston FURY Beast') }, official: { price: '$100', link: getURL('official', 'Kingston FURY Beast') } } + }, + { id: 504, title: 'Crucial Pro DDR5', subtitle: 'No-nonsense stability', category: 'MEMORY (RAM)', isNew: true, features: { Capacity: '32GB (2x16GB)', Speed: '5600MT/s' }, + specifications: { Capacity: '32GB (2x16GB)', Speed: '5600 MT/s', CAS: 'CL46', Voltage: '1.1V', Profile: 'JEDEC / XMP 3.0', RGB: 'No' }, + scores: { Speed: 78, Reliability: 99, Value: 95, Aesthetics: 70 }, + prices: { amazon: { price: '$85', link: getURL('amazon', 'Crucial Pro DDR5 32GB') }, flipkart: { price: '₹8,500', link: getURL('flipkart', 'Crucial Pro DDR5') }, official: { price: '$95', link: getURL('official', 'Crucial Pro DDR5') } } + }, + { id: 505, title: 'TeamGroup T-Force Delta RGB', subtitle: 'Striking aesthetics', category: 'MEMORY (RAM)', isNew: false, features: { Capacity: '32GB (2x16GB)', Speed: '6400MT/s' }, + specifications: { Capacity: '32GB (2x16GB)', Speed: '6400 MT/s', CAS: 'CL40', Voltage: '1.35V', Profile: 'XMP 3.0', RGB: 'Yes (120° Angle)' }, + scores: { Speed: 96, Reliability: 92, Value: 90, Aesthetics: 97 }, + prices: { amazon: { price: '$105', link: getURL('amazon', 'TeamGroup T-Force Delta RGB 32GB') }, flipkart: { price: '₹10,500', link: getURL('flipkart', 'TeamGroup T-Force Delta') }, official: { price: '$110', link: getURL('official', 'TeamGroup T-Force Delta') } } + }, + { id: 506, title: 'Corsair Vengeance LPX DDR4', subtitle: 'Classic DDR4 low profile', category: 'MEMORY (RAM)', isNew: false, features: { Capacity: '16GB (2x8GB)', Speed: '3200MT/s' }, + specifications: { Capacity: '16GB (2x8GB)', Speed: '3200 MT/s', CAS: 'CL16', Voltage: '1.35V', Profile: 'XMP 2.0', RGB: 'No' }, + scores: { Speed: 70, Reliability: 98, Value: 99, Aesthetics: 75 }, + prices: { amazon: { price: '$40', link: getURL('amazon', 'Corsair Vengeance LPX DDR4 16GB') }, flipkart: { price: '₹3,500', link: getURL('flipkart', 'Corsair Vengeance LPX DDR4') }, official: { price: '$45', link: getURL('official', 'Corsair Vengeance LPX') } } + }, + { id: 507, title: 'G.Skill Ripjaws V DDR4', subtitle: 'Best value DDR4', category: 'MEMORY (RAM)', isNew: false, features: { Capacity: '32GB (2x16GB)', Speed: '3600MT/s' }, + specifications: { Capacity: '32GB (2x16GB)', Speed: '3600 MT/s', CAS: 'CL18', Voltage: '1.35V', Profile: 'XMP 2.0', RGB: 'No' }, + scores: { Speed: 75, Reliability: 96, Value: 100, Aesthetics: 80 }, + prices: { amazon: { price: '$65', link: getURL('amazon', 'G.Skill Ripjaws V 32GB') }, flipkart: { price: '₹6,000', link: getURL('flipkart', 'G.Skill Ripjaws V') }, official: { price: '$70', link: getURL('official', 'G.Skill Ripjaws V') } } + } +]; + +// Enrich with reviews and overall scores + +const getProperImage = (product) => { + const title = product.title.toLowerCase(); + + // Use clearbit logos by brand name + if (title.includes('samsung')) return 'https://logo.clearbit.com/samsung.com'; + if (title.includes('wd ') || title.includes('western digital')) return 'https://logo.clearbit.com/westerndigital.com'; + if (title.includes('crucial')) return 'https://logo.clearbit.com/crucial.com'; + if (title.includes('kingston')) return 'https://logo.clearbit.com/kingston.com'; + if (title.includes('sabrent')) return 'https://logo.clearbit.com/sabrent.com'; + if (title.includes('corsair')) return 'https://logo.clearbit.com/corsair.com'; + if (title.includes('teamgroup')) return 'https://logo.clearbit.com/teamgroupinc.com'; + if (title.includes('nvidia') || title.includes('rtx')) return 'https://logo.clearbit.com/nvidia.com'; + if (title.includes('amd') || title.includes('ryzen') || title.includes('radeon')) return 'https://logo.clearbit.com/amd.com'; + if (title.includes('intel') || title.includes('core i')) return 'https://logo.clearbit.com/intel.com'; + if (title.includes('g.skill')) return 'https://logo.clearbit.com/gskill.com'; + + // Software logos + const urlMatches = { + 'git': 'git-scm.com', + 'svn': 'subversion.apache.org', + 'mercurial': 'mercurial-scm.org', + 'vscodium': 'vscodium.com', + 'eclipse': 'eclipse.org', + 'intellij': 'jetbrains.com', + 'maven': 'maven.apache.org', + 'gradle': 'gradle.org', + 'ant': 'ant.apache.org', + 'jenkins': 'jenkins.io', + 'gitlab': 'gitlab.com', + 'tekton': 'tekton.dev', + 'docker': 'docker.com', + 'podman': 'podman.io', + 'containerd': 'containerd.io', + 'kubernetes': 'kubernetes.io', + 'nomad': 'nomadproject.io', + 'ansible': 'ansible.com', + 'puppet': 'puppet.com', + 'chef': 'chef.io', + 'redmine': 'redmine.org', + 'bugzilla': 'bugzilla.org', + 'taiga': 'taiga.io', + 'sonarqube': 'sonarqube.org', + 'eslint': 'eslint.org', + 'prettier': 'prettier.io', + 'selenium': 'selenium.dev', + 'cypress': 'cypress.io', + 'junit': 'junit.org', + 'postgresql': 'postgresql.org', + 'mysql': 'mysql.com', + 'mariadb': 'mariadb.org', + 'hoppscotch': 'hoppscotch.io', + 'insomnia': 'insomnia.rest', + 'bruno': 'usebruno.com', + 'prometheus': 'prometheus.io', + 'grafana': 'grafana.com', + 'zabbix': 'zabbix.com', + 'elasticsearch': 'elastic.co', + 'logstash': 'elastic.co', + 'fluentd': 'fluentd.org', + 'gitea': 'gitea.io', + 'nginx': 'nginx.org', + 'apache http': 'httpd.apache.org', + 'vercel': 'vercel.com', + 'netlify': 'netlify.com', + 'render': 'render.com', + 'heroku': 'heroku.com', + 'aws': 'aws.amazon.com', + 'crystaldiskmark': 'crystalmark.info', + 'wiztree': 'diskanalyzer.com', + 'rufus': 'rufus.ie', + 'cinebench': 'maxon.net', + 'hwmonitor': 'cpuid.com', + 'apple': 'apple.com', + 'galaxy ai': 'samsung.com' + }; + + for (const [key, domain] of Object.entries(urlMatches)) { + if (title.includes(key)) { + return `https://logo.clearbit.com/${domain}`; + } + } + + // Fallback to beautiful tech images by category + if (product.category === 'SSD') return 'https://images.unsplash.com/photo-1597848212624-a19eb35e265c?w=400&h=400&fit=crop'; + if (product.category === 'GRAPHICS CARDS') return 'https://images.unsplash.com/photo-1591488320449-011701bb6704?w=400&h=400&fit=crop'; + if (product.category === 'CPUs') return 'https://images.unsplash.com/photo-1591799264318-7e6ef8ddb7ea?w=400&h=400&fit=crop'; + if (product.category === 'MEMORY (RAM)') return 'https://images.unsplash.com/photo-1562976540-1502c2145186?w=400&h=400&fit=crop'; + + return `https://via.placeholder.com/400?text=${encodeURIComponent(product.title)}`; +}; + +productsD.forEach(p => { + p.image = getProperImage(p); + p.scores.Overall = calcOverall(p.scores); + p.reviews = generateReviews(p.title, p.category); + p.benchmarks = generateUserBenchmarks(p.category, p.scores.Overall); + p.ratingStats = generateRatingStats(p.scores.Overall); +}); + +const content = `/* Auto-generated data.js with enriched reviews, stats, and prices */ +export const productsData = ${JSON.stringify(productsD, null, 2)}; + +export const getQuestionsForCategory = (category) => { + switch(category) { + case 'SSD': + return [ + { label: "1. Ultra-fast Gen5 Speeds (Future proof)", recommendation: "Crucial T700" }, + { label: "2. Best mix of Gen4 speed & price", recommendation: "Samsung 990 Pro" }, + { label: "3. Maximum terabytes for the budget", recommendation: "Crucial MX500" } + ]; + case 'GRAPHICS CARDS': + return [ + { label: "1. Flawless 4K & Raytracing at max settings", recommendation: "NVIDIA RTX 4090" }, + { label: "2. Great 1440p gaming & good value", recommendation: "AMD Radeon RX 7800 XT" }, + { label: "3. Budget 1080p e-sports", recommendation: "AMD Radeon RX 7600" } + ]; + case 'CPUs': + return [ + { label: "1. 100% focused on maximizing gaming FPS", recommendation: "AMD Ryzen 7 7800X3D" }, + { label: "2. Heavy video editing and mixed rendering", recommendation: "Intel Core i9-14900K" }, + { label: "3. Good everyday value out of the box", recommendation: "Intel Core i5-13600K" } + ]; + case 'TOOLS': + return [ + { label: "1. I want to benchmark/test my hardware limits", recommendation: "CrystalDiskMark or Cinebench R24" }, + { label: "2. I need to figure out where my disk space went", recommendation: "WizTree" }, + { label: "3. I'm comparing the latest ecosystem AI features", recommendation: "Apple Intelligence vs Galaxy AI" } + ]; + case 'MEMORY (RAM)': + return [ + { label: "1. Flashy RGB DDR5 for new systems", recommendation: "G.Skill Trident Z5 RGB NEO" }, + { label: "2. Standard DDR5 without the lights", recommendation: "Crucial Pro DDR5" }, + { label: "3. Older system needing DDR4 upgrade", recommendation: "Corsair Vengeance LPX DDR4" } + ]; + default: + return [ + { label: "1. I want the absolute best hardware", recommendation: "NVIDIA RTX 4090" }, + { label: "2. I care mostly about storage", recommendation: "Samsung 990 Pro" }, + { label: "3. I just need to build a cheap PC", recommendation: "AMD Radeon RX 7600" } + ]; + } +}; + +export const generateAISummary = (product) => { + const totRev = product.ratingStats ? product.ratingStats.total : product.reviews.length; + const avgRating = product.ratingStats ? product.ratingStats.avg : (product.reviews.reduce((acc, curr) => acc + curr.rating, 0) / totRev).toFixed(1); + return \`The \${product.title} is a highly regarded option in the \${product.category} space. Based on an AI analysis of over \${totRev.toLocaleString()} user reviews, it holds an average rating of \${avgRating} out of 5 stars. Users consistently praise its \${Object.keys(product.scores)[0]} score of \${product.scores[Object.keys(product.scores)[0]]}/100 and excellent performance. While a few reviewers noted minor concerns with \${Object.keys(product.scores)[2]}, the overall consensus is overwhelmingly positive, earning an impressive CompareXscore of \${product.scores.Overall}/100. It is a highly recommended choice for typical use cases.\`; +}; +`; + +fs.writeFileSync(path.join(__dirname, 'src', 'data.js'), content, 'utf-8'); +console.log('Successfully generated complete data.js with reviews, scores, specifications and prices.'); diff --git a/teams/double-door-refrigerator/package-lock.json b/teams/double-door-refrigerator/package-lock.json new file mode 100644 index 0000000..ecdff32 --- /dev/null +++ b/teams/double-door-refrigerator/package-lock.json @@ -0,0 +1,17544 @@ +{ + "name": "my-app", + "version": "0.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "my-app", + "version": "0.1.0", + "dependencies": { + "@testing-library/dom": "^10.4.1", + "@testing-library/jest-dom": "^6.9.1", + "@testing-library/react": "^16.3.2", + "@testing-library/user-event": "^13.5.0", + "ajv": "^8.18.0", + "ajv-keywords": "^5.1.0", + "lucide-react": "^0.368.0", + "react": "^18.3.1", + "react-dom": "^18.3.1", + "react-router-dom": "^6.20.0", + "react-scripts": "5.0.1", + "web-vitals": "^2.1.4" + }, + "devDependencies": { + "gh-pages": "^6.3.0" + } + }, + "node_modules/@adobe/css-tools": { + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.4.4.tgz", + "integrity": "sha512-Elp+iwUx5rN5+Y8xLt5/GRoG20WGoDCQ/1Fb+1LiGtvwbDavuSk0jhD/eZdckHAuzcDzccnkv+rEjyWfRx18gg==", + "license": "MIT" + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@apideck/better-ajv-errors": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.7.tgz", + "integrity": "sha512-TajUJwGWbDwkCx/CZi7tRE8PVB7simCvKJfHUsSdvps+aTM/PDPP4gkLmKnc+x3CE//y9i/nj74GqdL/hwk7Iw==", + "license": "MIT", + "dependencies": { + "jsonpointer": "^5.0.1", + "leven": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "ajv": ">=8" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz", + "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==", + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.28.5", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.0.tgz", + "integrity": "sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.0.tgz", + "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.29.0", + "@babel/generator": "^7.29.0", + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-module-transforms": "^7.28.6", + "@babel/helpers": "^7.28.6", + "@babel/parser": "^7.29.0", + "@babel/template": "^7.28.6", + "@babel/traverse": "^7.29.0", + "@babel/types": "^7.29.0", + "@jridgewell/remapping": "^2.3.5", + "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/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/eslint-parser": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.28.6.tgz", + "integrity": "sha512-QGmsKi2PBO/MHSQk+AAgA9R6OHQr+VqnniFE0eMWZcVcfBZoA2dKn2hUsl3Csg/Plt9opRUWdY7//VXsrIlEiA==", + "license": "MIT", + "dependencies": { + "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", + "eslint-visitor-keys": "^2.1.0", + "semver": "^6.3.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || >=14.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.11.0", + "eslint": "^7.5.0 || ^8.0.0 || ^9.0.0" + } + }, + "node_modules/@babel/eslint-parser/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "license": "Apache-2.0", + "engines": { + "node": ">=10" + } + }, + "node_modules/@babel/eslint-parser/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.29.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz", + "integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.0", + "@babel/types": "^7.29.0", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", + "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.3" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz", + "integrity": "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.28.6", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.6.tgz", + "integrity": "sha512-dTOdvsjnG3xNT9Y0AUg1wAl38y+4Rl4sf9caSQZOXdNqVn+H+HbbJ4IyyHaIqNR6SW9oJpA/RuRjsjCw2IdIow==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-member-expression-to-functions": "^7.28.5", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/helper-replace-supers": "^7.28.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/traverse": "^7.28.6", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.28.5.tgz", + "integrity": "sha512-N1EhvLtHzOvj7QQOUCCS3NrPJP8c5W6ZXCHDn7Yialuy1iu4r5EmIYkXlKNqT99Ciw+W0mDqWoR6HWMZlFP3hw==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "regexpu-core": "^6.3.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.8.tgz", + "integrity": "sha512-47UwBLPpQi1NoWzLuHNjRoHlYXMwIJoBf7MFou6viC/sIHWYygpvr0B6IAyh5sBdA2nr2LPIRww8lfaUVQINBA==", + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "debug": "^4.4.3", + "lodash.debounce": "^4.0.8", + "resolve": "^1.22.11" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.28.5.tgz", + "integrity": "sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.28.5", + "@babel/types": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz", + "integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.28.6", + "@babel/types": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz", + "integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.28.6", + "@babel/helper-validator-identifier": "^7.28.5", + "@babel/traverse": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz", + "integrity": "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz", + "integrity": "sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.27.1.tgz", + "integrity": "sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-wrap-function": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.28.6.tgz", + "integrity": "sha512-mq8e+laIk94/yFec3DxSjCRD2Z0TAjhVbEJY3UQrlwVo15Lmt7C2wAUbK4bjnTs4APkwsYLTahXRraQXhb1WCg==", + "license": "MIT", + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.28.5", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/traverse": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz", + "integrity": "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.28.6.tgz", + "integrity": "sha512-z+PwLziMNBeSQJonizz2AGnndLsP2DeGHIxDAn+wdHOGuo4Fo1x1HBPPXeE9TAOPHNNWQKCSlA2VZyYyyibDnQ==", + "license": "MIT", + "dependencies": { + "@babel/template": "^7.28.6", + "@babel/traverse": "^7.28.6", + "@babel/types": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.2.tgz", + "integrity": "sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw==", + "license": "MIT", + "dependencies": { + "@babel/template": "^7.28.6", + "@babel/types": "^7.29.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.2.tgz", + "integrity": "sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.0" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.28.5.tgz", + "integrity": "sha512-87GDMS3tsmMSi/3bWOte1UblL+YUTFMV8SZPZ2eSEL17s74Cw/l63rR6NmGVKMYW2GYi85nE+/d6Hw5N0bEk2Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.27.1.tgz", + "integrity": "sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.27.1.tgz", + "integrity": "sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.27.1.tgz", + "integrity": "sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/plugin-transform-optional-chaining": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.28.6.tgz", + "integrity": "sha512-a0aBScVTlNaiUe35UtfxAN7A/tehvvG4/ByO6+46VPKTRSlfnAFsgKy0FUh+qAkQrDTmhDkT+IBOKlOoMUxQ0g==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/traverse": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-proposal-class-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.", + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-decorators": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.29.0.tgz", + "integrity": "sha512-CVBVv3VY/XRMxRYq5dwr2DS7/MvqPm23cOCjbwNnVrfOqcWlnefua1uUs0sjdKOGjvPUG633o07uWzJq4oI6dA==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/plugin-syntax-decorators": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", + "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead.", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-numeric-separator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", + "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead.", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-chaining": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", + "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead.", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-methods": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", + "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-methods instead.", + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "license": "MIT", + "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-decorators": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.28.6.tgz", + "integrity": "sha512-71EYI0ONURHJBL4rSFXnITXqXrrY8q4P0q006DPfN+Rk+ASM+++IBXem/ruokgBZR8YNEWZ8R6B+rCb8VcUTqA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-flow": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.28.6.tgz", + "integrity": "sha512-D+OrJumc9McXNEBI/JmFnc/0uCM2/Y3PEBG3gfV3QIYkKv5pvnpzFrl1kYCrcHJP8nOeFB/SHi1IHz29pNGuew==", + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.28.6.tgz", + "integrity": "sha512-pSJUpFHdx9z5nqTSirOCMtYVP2wFgoWhP0p3g8ONK/4IHhLIBd0B9NYqAvIUAhq+OkhO4VM1tENCt0cjlsNShw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.28.6.tgz", + "integrity": "sha512-jiLC0ma9XkQT3TKJ9uYvlakm66Pamywo+qwL+oL8HJOvc6TWdZXVfhqJr8CCzbSGUAbDOzlGHJC1U+vRfLQDvw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.28.6.tgz", + "integrity": "sha512-wgEmr06G6sIpqr8YDwA2dSRTE3bJ+V0IfpzfSY3Lfgd7YWOaAdlykvJi13ZKBt8cZHfgH1IXN+CL656W3uUa4w==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "license": "MIT", + "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-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==", + "license": "MIT", + "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.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.28.6.tgz", + "integrity": "sha512-+nDNmQye7nlnuuHDboPbGm00Vqg3oO8niRRL27/4LYHUsHYh0zJ1xWOz0uRwNFmM1Avzk8wZbc6rdiYhomzv/A==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.27.1.tgz", + "integrity": "sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.29.0.tgz", + "integrity": "sha512-va0VdWro4zlBr2JsXC+ofCPB2iG12wPtVGTWFx2WLDOM3nYQZZIGP82qku2eW/JR83sD+k2k+CsNtyEbUqhU6w==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-remap-async-to-generator": "^7.27.1", + "@babel/traverse": "^7.29.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.28.6.tgz", + "integrity": "sha512-ilTRcmbuXjsMmcZ3HASTe4caH5Tpo93PkTxF9oG2VZsSWsahydmcEHhix9Ik122RcTnZnUzPbmux4wh1swfv7g==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-remap-async-to-generator": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.27.1.tgz", + "integrity": "sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.6.tgz", + "integrity": "sha512-tt/7wOtBmwHPNMPu7ax4pdPz6shjFrmHDghvNC+FG9Qvj7D6mJcoRQIF5dy4njmxR941l6rgtvfSB2zX3VlUIw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.28.6.tgz", + "integrity": "sha512-dY2wS3I2G7D697VHndN91TJr8/AAfXQNt5ynCTI/MpxMsSzHp+52uNivYT5wCPax3whc47DR8Ba7cmlQMg24bw==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.28.6.tgz", + "integrity": "sha512-rfQ++ghVwTWTqQ7w8qyDxL1XGihjBss4CmTgGRCTAC9RIbhVpyp4fOeZtta0Lbf+dTNIVJer6ych2ibHwkZqsQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.6.tgz", + "integrity": "sha512-EF5KONAqC5zAqT783iMGuM2ZtmEBy+mJMOKl2BCvPZ2lVrwvXnB6o+OBWCS+CoeCCpVRF2sA2RBKUxvT8tQT5Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-globals": "^7.28.0", + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-replace-supers": "^7.28.6", + "@babel/traverse": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.28.6.tgz", + "integrity": "sha512-bcc3k0ijhHbc2lEfpFHgx7eYw9KNXqOerKWfzbxEHUGKnS3sz9C4CNL9OiFN1297bDNfUiSO7DaLzbvHQQQ1BQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/template": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.28.5.tgz", + "integrity": "sha512-Kl9Bc6D0zTUcFUvkNuQh4eGXPKKNDOJQXVyyM4ZAQPMveniJdxi8XMJwLo+xSoW3MIq81bD33lcUe9kZpl0MCw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.28.6.tgz", + "integrity": "sha512-SljjowuNKB7q5Oayv4FoPzeB74g3QgLt8IVJw9ADvWy3QnUb/01aw8I4AVv8wYnPvQz2GDDZ/g3GhcNyDBI4Bg==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.28.5", + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.27.1.tgz", + "integrity": "sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.29.0.tgz", + "integrity": "sha512-zBPcW2lFGxdiD8PUnPwJjag2J9otbcLQzvbiOzDxpYXyCuYX9agOwMPGn1prVH0a4qzhCKu24rlH4c1f7yA8rw==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.28.5", + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.27.1.tgz", + "integrity": "sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-explicit-resource-management": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-explicit-resource-management/-/plugin-transform-explicit-resource-management-7.28.6.tgz", + "integrity": "sha512-Iao5Konzx2b6g7EPqTy40UZbcdXE126tTxVFr/nAIj+WItNxjKSYTEw3RC+A2/ZetmdJsgueL1KhaMCQHkLPIg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/plugin-transform-destructuring": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.28.6.tgz", + "integrity": "sha512-WitabqiGjV/vJ0aPOLSFfNY1u9U3R7W36B03r5I2KoNix+a3sOhJ3pKFB3R5It9/UiK78NiO0KE9P21cMhlPkw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.27.1.tgz", + "integrity": "sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-flow-strip-types": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.27.1.tgz", + "integrity": "sha512-G5eDKsu50udECw7DL2AcsysXiQyB7Nfg521t2OAJ4tbfTJ27doHLeF/vlI1NZGlLdbb/v+ibvtL1YBQqYOwJGg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-syntax-flow": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.27.1.tgz", + "integrity": "sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.27.1.tgz", + "integrity": "sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.28.6.tgz", + "integrity": "sha512-Nr+hEN+0geQkzhbdgQVPoqr47lZbm+5fCUmO70722xJZd0Mvb59+33QLImGj6F+DkK3xgDi1YVysP8whD6FQAw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.27.1.tgz", + "integrity": "sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.28.6.tgz", + "integrity": "sha512-+anKKair6gpi8VsM/95kmomGNMD0eLz1NQ8+Pfw5sAwWH9fGYXT50E55ZpV0pHUHWf6IUTWPM+f/7AAff+wr9A==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.27.1.tgz", + "integrity": "sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.27.1.tgz", + "integrity": "sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.28.6.tgz", + "integrity": "sha512-jppVbf8IV9iWWwWTQIxJMAJCWBuuKx71475wHwYytrRGQ2CWiDvYlADQno3tcYpS/T2UUWFQp3nVtYfK/YBQrA==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.29.0.tgz", + "integrity": "sha512-PrujnVFbOdUpw4UHiVwKvKRLMMic8+eC0CuNlxjsyZUiBjhFdPsewdXCkveh2KqBA9/waD0W1b4hXSOBQJezpQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-validator-identifier": "^7.28.5", + "@babel/traverse": "^7.29.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.27.1.tgz", + "integrity": "sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.29.0.tgz", + "integrity": "sha512-1CZQA5KNAD6ZYQLPw7oi5ewtDNxH/2vuCh+6SmvgDfhumForvs8a1o9n0UrEoBD8HU4djO2yWngTQlXl1NDVEQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.28.5", + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.27.1.tgz", + "integrity": "sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.28.6.tgz", + "integrity": "sha512-3wKbRgmzYbw24mDJXT7N+ADXw8BC/imU9yo9c9X9NKaLF1fW+e5H1U5QjMUBe4Qo4Ox/o++IyUkl1sVCLgevKg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.28.6.tgz", + "integrity": "sha512-SJR8hPynj8outz+SlStQSwvziMN4+Bq99it4tMIf5/Caq+3iOc0JtKyse8puvyXkk3eFRIA5ID/XfunGgO5i6w==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.28.6.tgz", + "integrity": "sha512-5rh+JR4JBC4pGkXLAcYdLHZjXudVxWMXbB6u6+E9lRL5TrGVbHt1TjxGbZ8CkmYw9zjkB7jutzOROArsqtncEA==", + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/plugin-transform-destructuring": "^7.28.5", + "@babel/plugin-transform-parameters": "^7.27.7", + "@babel/traverse": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.27.1.tgz", + "integrity": "sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.28.6.tgz", + "integrity": "sha512-R8ja/Pyrv0OGAvAXQhSTmWyPJPml+0TMqXlO5w+AsMEiwb2fg3WkOvob7UxFSL3OIttFSGSRFKQsOhJ/X6HQdQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.28.6.tgz", + "integrity": "sha512-A4zobikRGJTsX9uqVFdafzGkqD30t26ck2LmOzAuLL8b2x6k3TIqRiT2xVvA9fNmFeTX484VpsdgmKNA0bS23w==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.27.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.7.tgz", + "integrity": "sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.28.6.tgz", + "integrity": "sha512-piiuapX9CRv7+0st8lmuUlRSmX6mBcVeNQ1b4AYzJxfCMuBfB0vBXDiGSmm03pKJw1v6cZ8KSeM+oUnM6yAExg==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.28.6.tgz", + "integrity": "sha512-b97jvNSOb5+ehyQmBpmhOCiUC5oVK4PMnpRvO7+ymFBoqYjeDHIU9jnrNUuwHOiL9RpGDoKBpSViarV+BU+eVA==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-create-class-features-plugin": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.27.1.tgz", + "integrity": "sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-constant-elements": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.27.1.tgz", + "integrity": "sha512-edoidOjl/ZxvYo4lSBOQGDSyToYVkTAwyVoa2tkuYTSmjrB1+uAedoL5iROVLXkxH+vRgA7uP4tMg2pUJpZ3Ug==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.28.0.tgz", + "integrity": "sha512-D6Eujc2zMxKjfa4Zxl4GHMsmhKKZ9VpcqIchJLvwTxad9zWIYulwYItBovpDOoNLISpcZSXoDJ5gaGbQUDqViA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.28.6.tgz", + "integrity": "sha512-61bxqhiRfAACulXSLd/GxqmAedUSrRZIu/cbaT18T1CetkTmtDN15it7i80ru4DVqRK1WMxQhXs+Lf9kajm5Ow==", + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-module-imports": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/plugin-syntax-jsx": "^7.28.6", + "@babel/types": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-development": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.27.1.tgz", + "integrity": "sha512-ykDdF5yI4f1WrAolLqeF3hmYU12j9ntLQl/AOG1HAS21jxyg1Q0/J/tpREuYLfatGdGmXp/3yS0ZA76kOlVq9Q==", + "license": "MIT", + "dependencies": { + "@babel/plugin-transform-react-jsx": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-pure-annotations": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.27.1.tgz", + "integrity": "sha512-JfuinvDOsD9FVMTHpzA/pBLisxpv1aSf+OIV8lgH3MuWrks19R27e6a6DipIg4aX1Zm9Wpb04p8wljfKrVSnPA==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.29.0.tgz", + "integrity": "sha512-FijqlqMA7DmRdg/aINBSs04y8XNTYw/lr1gJ2WsmBnnaNw1iS43EPkJW+zK7z65auG3AWRFXWj+NcTQwYptUog==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regexp-modifiers": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.28.6.tgz", + "integrity": "sha512-QGWAepm9qxpaIs7UM9FvUSnCGlb8Ua1RhyM4/veAxLwt3gMat/LSGrZixyuj4I6+Kn9iwvqCyPTtbdxanYoWYg==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.28.5", + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.27.1.tgz", + "integrity": "sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.29.0.tgz", + "integrity": "sha512-jlaRT5dJtMaMCV6fAuLbsQMSwz/QkvaHOHOSXRitGGwSpR1blCY4KUKoyP2tYO8vJcqYe8cEj96cqSztv3uF9w==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "babel-plugin-polyfill-corejs2": "^0.4.14", + "babel-plugin-polyfill-corejs3": "^0.13.0", + "babel-plugin-polyfill-regenerator": "^0.6.5", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime/node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.13.0.tgz", + "integrity": "sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==", + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.5", + "core-js-compat": "^3.43.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz", + "integrity": "sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.28.6.tgz", + "integrity": "sha512-9U4QObUC0FtJl05AsUcodau/RWDytrU6uKgkxu09mLR9HLDAtUMoPuuskm5huQsoktmsYpI+bGmq+iapDcriKA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.27.1.tgz", + "integrity": "sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.27.1.tgz", + "integrity": "sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.27.1.tgz", + "integrity": "sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.28.6.tgz", + "integrity": "sha512-0YWL2RFxOqEm9Efk5PvreamxPME8OyY0wM5wh5lHjF+VtVhdneCWGzZeSqzOfiobVqQaNCd2z0tQvnI9DaPWPw==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-create-class-features-plugin": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/plugin-syntax-typescript": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.27.1.tgz", + "integrity": "sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.28.6.tgz", + "integrity": "sha512-4Wlbdl/sIZjzi/8St0evF0gEZrgOswVO6aOzqxh1kDZOl9WmLrHq2HtGhnOJZmHZYKP8WZ1MDLCt5DAWwRo57A==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.28.5", + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.27.1.tgz", + "integrity": "sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.28.6.tgz", + "integrity": "sha512-/wHc/paTUmsDYN7SZkpWxogTOBNnlx7nBQYfy6JJlCT7G3mVhltk3e++N7zV0XfgGsrqBxd4rJQt9H16I21Y1Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.28.5", + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.29.2.tgz", + "integrity": "sha512-DYD23veRYGvBFhcTY1iUvJnDNpuqNd/BzBwCvzOTKUnJjKg5kpUBh3/u9585Agdkgj+QuygG7jLfOPWMa2KVNw==", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.29.0", + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-validator-option": "^7.27.1", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.28.5", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.27.1", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.27.1", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.27.1", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.28.6", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-import-assertions": "^7.28.6", + "@babel/plugin-syntax-import-attributes": "^7.28.6", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.27.1", + "@babel/plugin-transform-async-generator-functions": "^7.29.0", + "@babel/plugin-transform-async-to-generator": "^7.28.6", + "@babel/plugin-transform-block-scoped-functions": "^7.27.1", + "@babel/plugin-transform-block-scoping": "^7.28.6", + "@babel/plugin-transform-class-properties": "^7.28.6", + "@babel/plugin-transform-class-static-block": "^7.28.6", + "@babel/plugin-transform-classes": "^7.28.6", + "@babel/plugin-transform-computed-properties": "^7.28.6", + "@babel/plugin-transform-destructuring": "^7.28.5", + "@babel/plugin-transform-dotall-regex": "^7.28.6", + "@babel/plugin-transform-duplicate-keys": "^7.27.1", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.29.0", + "@babel/plugin-transform-dynamic-import": "^7.27.1", + "@babel/plugin-transform-explicit-resource-management": "^7.28.6", + "@babel/plugin-transform-exponentiation-operator": "^7.28.6", + "@babel/plugin-transform-export-namespace-from": "^7.27.1", + "@babel/plugin-transform-for-of": "^7.27.1", + "@babel/plugin-transform-function-name": "^7.27.1", + "@babel/plugin-transform-json-strings": "^7.28.6", + "@babel/plugin-transform-literals": "^7.27.1", + "@babel/plugin-transform-logical-assignment-operators": "^7.28.6", + "@babel/plugin-transform-member-expression-literals": "^7.27.1", + "@babel/plugin-transform-modules-amd": "^7.27.1", + "@babel/plugin-transform-modules-commonjs": "^7.28.6", + "@babel/plugin-transform-modules-systemjs": "^7.29.0", + "@babel/plugin-transform-modules-umd": "^7.27.1", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.29.0", + "@babel/plugin-transform-new-target": "^7.27.1", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.28.6", + "@babel/plugin-transform-numeric-separator": "^7.28.6", + "@babel/plugin-transform-object-rest-spread": "^7.28.6", + "@babel/plugin-transform-object-super": "^7.27.1", + "@babel/plugin-transform-optional-catch-binding": "^7.28.6", + "@babel/plugin-transform-optional-chaining": "^7.28.6", + "@babel/plugin-transform-parameters": "^7.27.7", + "@babel/plugin-transform-private-methods": "^7.28.6", + "@babel/plugin-transform-private-property-in-object": "^7.28.6", + "@babel/plugin-transform-property-literals": "^7.27.1", + "@babel/plugin-transform-regenerator": "^7.29.0", + "@babel/plugin-transform-regexp-modifiers": "^7.28.6", + "@babel/plugin-transform-reserved-words": "^7.27.1", + "@babel/plugin-transform-shorthand-properties": "^7.27.1", + "@babel/plugin-transform-spread": "^7.28.6", + "@babel/plugin-transform-sticky-regex": "^7.27.1", + "@babel/plugin-transform-template-literals": "^7.27.1", + "@babel/plugin-transform-typeof-symbol": "^7.27.1", + "@babel/plugin-transform-unicode-escapes": "^7.27.1", + "@babel/plugin-transform-unicode-property-regex": "^7.28.6", + "@babel/plugin-transform-unicode-regex": "^7.27.1", + "@babel/plugin-transform-unicode-sets-regex": "^7.28.6", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.15", + "babel-plugin-polyfill-corejs3": "^0.14.0", + "babel-plugin-polyfill-regenerator": "^0.6.6", + "core-js-compat": "^3.48.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/preset-react": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.28.5.tgz", + "integrity": "sha512-Z3J8vhRq7CeLjdC58jLv4lnZ5RKFUJWqH5emvxmv9Hv3BD1T9R/Im713R4MTKwvFaV74ejZ3sM01LyEKk4ugNQ==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-option": "^7.27.1", + "@babel/plugin-transform-react-display-name": "^7.28.0", + "@babel/plugin-transform-react-jsx": "^7.27.1", + "@babel/plugin-transform-react-jsx-development": "^7.27.1", + "@babel/plugin-transform-react-pure-annotations": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-typescript": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.28.5.tgz", + "integrity": "sha512-+bQy5WOI2V6LJZpPVxY+yp66XdZ2yifu0Mc1aP5CQKgjn4QM5IN2i5fAZ4xKop47pr8rpVhiAeu+nDQa12C8+g==", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-option": "^7.27.1", + "@babel/plugin-syntax-jsx": "^7.27.1", + "@babel/plugin-transform-modules-commonjs": "^7.27.1", + "@babel/plugin-transform-typescript": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.2.tgz", + "integrity": "sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz", + "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.28.6", + "@babel/parser": "^7.28.6", + "@babel/types": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.0.tgz", + "integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.0", + "@babel/generator": "^7.29.0", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.29.0", + "@babel/template": "^7.28.6", + "@babel/types": "^7.29.0", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz", + "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" + }, + "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==", + "license": "MIT" + }, + "node_modules/@csstools/normalize.css": { + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-12.1.1.tgz", + "integrity": "sha512-YAYeJ+Xqh7fUou1d1j9XHl44BmsuThiTr4iNrgCQ3J27IbhXsxXDGZ1cXv8Qvs99d4rBbLiSKy3+WZiet32PcQ==", + "license": "CC0-1.0" + }, + "node_modules/@csstools/postcss-cascade-layers": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-1.1.1.tgz", + "integrity": "sha512-+KdYrpKC5TgomQr2DlZF4lDEpHcoxnj5IGddYYfBWJAKfj1JtuHUIqMa+E1pJJ+z3kvDViWMqyqPlG4Ja7amQA==", + "license": "CC0-1.0", + "dependencies": { + "@csstools/selector-specificity": "^2.0.2", + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-color-function": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-1.1.1.tgz", + "integrity": "sha512-Bc0f62WmHdtRDjf5f3e2STwRAl89N2CLb+9iAwzrv4L2hncrbDwnQD9PCq0gtAt7pOI2leIV08HIBUd4jxD8cw==", + "license": "CC0-1.0", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-font-format-keywords": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-1.0.1.tgz", + "integrity": "sha512-ZgrlzuUAjXIOc2JueK0X5sZDjCtgimVp/O5CEqTcs5ShWBa6smhWYbS0x5cVc/+rycTDbjjzoP0KTDnUneZGOg==", + "license": "CC0-1.0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-hwb-function": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.2.tgz", + "integrity": "sha512-YHdEru4o3Rsbjmu6vHy4UKOXZD+Rn2zmkAmLRfPet6+Jz4Ojw8cbWxe1n42VaXQhD3CQUXXTooIy8OkVbUcL+w==", + "license": "CC0-1.0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-ic-unit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-1.0.1.tgz", + "integrity": "sha512-Ot1rcwRAaRHNKC9tAqoqNZhjdYBzKk1POgWfhN4uCOE47ebGcLRqXjKkApVDpjifL6u2/55ekkpnFcp+s/OZUw==", + "license": "CC0-1.0", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-is-pseudo-class": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.7.tgz", + "integrity": "sha512-7JPeVVZHd+jxYdULl87lvjgvWldYu+Bc62s9vD/ED6/QTGjy0jy0US/f6BG53sVMTBJ1lzKZFpYmofBN9eaRiA==", + "license": "CC0-1.0", + "dependencies": { + "@csstools/selector-specificity": "^2.0.0", + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-nested-calc": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-nested-calc/-/postcss-nested-calc-1.0.0.tgz", + "integrity": "sha512-JCsQsw1wjYwv1bJmgjKSoZNvf7R6+wuHDAbi5f/7MbFhl2d/+v+TvBTU4BJH3G1X1H87dHl0mh6TfYogbT/dJQ==", + "license": "CC0-1.0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-normalize-display-values": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-1.0.1.tgz", + "integrity": "sha512-jcOanIbv55OFKQ3sYeFD/T0Ti7AMXc9nM1hZWu8m/2722gOTxFg7xYu4RDLJLeZmPUVQlGzo4jhzvTUq3x4ZUw==", + "license": "CC0-1.0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-oklab-function": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.1.1.tgz", + "integrity": "sha512-nJpJgsdA3dA9y5pgyb/UfEzE7W5Ka7u0CX0/HIMVBNWzWemdcTH3XwANECU6anWv/ao4vVNLTMxhiPNZsTK6iA==", + "license": "CC0-1.0", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-progressive-custom-properties": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz", + "integrity": "sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA==", + "license": "CC0-1.0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.3" + } + }, + "node_modules/@csstools/postcss-stepped-value-functions": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-1.0.1.tgz", + "integrity": "sha512-dz0LNoo3ijpTOQqEJLY8nyaapl6umbmDcgj4AD0lgVQ572b2eqA1iGZYTTWhrcrHztWDDRAX2DGYyw2VBjvCvQ==", + "license": "CC0-1.0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-text-decoration-shorthand": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-1.0.0.tgz", + "integrity": "sha512-c1XwKJ2eMIWrzQenN0XbcfzckOLLJiczqy+YvfGmzoVXd7pT9FfObiSEfzs84bpE/VqfpEuAZ9tCRbZkZxxbdw==", + "license": "CC0-1.0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-trigonometric-functions": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-1.0.2.tgz", + "integrity": "sha512-woKaLO///4bb+zZC2s80l+7cm07M7268MsyG3M0ActXXEFi6SuhvriQYcb58iiKGbjwwIU7n45iRLEHypB47Og==", + "license": "CC0-1.0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-unset-value": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-unset-value/-/postcss-unset-value-1.0.2.tgz", + "integrity": "sha512-c8J4roPBILnelAsdLr4XOAR/GsTm0GJi4XpcfvoWk3U6KiTCqiFYc63KhRMQQX35jYMp4Ao8Ij9+IZRgMfJp1g==", + "license": "CC0-1.0", + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/selector-specificity": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.2.0.tgz", + "integrity": "sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw==", + "license": "CC0-1.0", + "engines": { + "node": "^14 || ^16 || >=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss-selector-parser": "^6.0.10" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz", + "integrity": "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==", + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", + "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", + "license": "MIT", + "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==", + "license": "MIT", + "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/ajv": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz", + "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==", + "license": "MIT", + "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/@eslint/eslintrc/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==", + "license": "Python-2.0" + }, + "node_modules/@eslint/eslintrc/node_modules/js-yaml": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@eslint/eslintrc/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==", + "license": "MIT" + }, + "node_modules/@eslint/js": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", + "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", + "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", + "deprecated": "Use @eslint/config-array instead", + "license": "Apache-2.0", + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.3", + "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==", + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", + "license": "BSD-3-Clause" + }, + "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==", + "license": "ISC", + "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/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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/core": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz", + "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==", + "license": "MIT", + "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/environment": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz", + "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@jest/schemas": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz", + "integrity": "sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==", + "license": "MIT", + "dependencies": { + "@sinclair/typebox": "^0.24.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "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==", + "license": "MIT", + "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/source-map/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==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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/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==", + "license": "MIT" + }, + "node_modules/@jest/transform/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==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "license": "MIT", + "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/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", + "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", + "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==", + "license": "MIT" + }, + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { + "version": "5.1.1-v1", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", + "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", + "license": "MIT", + "dependencies": { + "eslint-scope": "5.1.1" + } + }, + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@pmmmwh/react-refresh-webpack-plugin": { + "version": "0.5.17", + "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.17.tgz", + "integrity": "sha512-tXDyE1/jzFsHXjhRZQ3hMl0IVhYe5qula43LDWIhVfjp9G/nT5OQY5AORVOrkEGAUltBJOfOWeETbmhm6kHhuQ==", + "license": "MIT", + "dependencies": { + "ansi-html": "^0.0.9", + "core-js-pure": "^3.23.3", + "error-stack-parser": "^2.0.6", + "html-entities": "^2.1.0", + "loader-utils": "^2.0.4", + "schema-utils": "^4.2.0", + "source-map": "^0.7.3" + }, + "engines": { + "node": ">= 10.13" + }, + "peerDependencies": { + "@types/webpack": "4.x || 5.x", + "react-refresh": ">=0.10.0 <1.0.0", + "sockjs-client": "^1.4.0", + "type-fest": ">=0.17.0 <5.0.0", + "webpack": ">=4.43.0 <6.0.0", + "webpack-dev-server": "3.x || 4.x || 5.x", + "webpack-hot-middleware": "2.x", + "webpack-plugin-serve": "0.x || 1.x" + }, + "peerDependenciesMeta": { + "@types/webpack": { + "optional": true + }, + "sockjs-client": { + "optional": true + }, + "type-fest": { + "optional": true + }, + "webpack-dev-server": { + "optional": true + }, + "webpack-hot-middleware": { + "optional": true + }, + "webpack-plugin-serve": { + "optional": true + } + } + }, + "node_modules/@remix-run/router": { + "version": "1.23.2", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.23.2.tgz", + "integrity": "sha512-Ic6m2U/rMjTkhERIa/0ZtXJP17QUi2CbWE7cqx4J58M8aA3QTfW+2UlQ4psvTX9IO1RfNVhK3pcpdjej7L+t2w==", + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@rollup/plugin-babel": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", + "integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.10.4", + "@rollup/pluginutils": "^3.1.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "@types/babel__core": "^7.1.9", + "rollup": "^1.20.0||^2.0.0" + }, + "peerDependenciesMeta": { + "@types/babel__core": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-node-resolve": { + "version": "11.2.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz", + "integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==", + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "@types/resolve": "1.17.1", + "builtin-modules": "^3.1.0", + "deepmerge": "^4.2.2", + "is-module": "^1.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/@rollup/plugin-replace": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz", + "integrity": "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==", + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "magic-string": "^0.25.7" + }, + "peerDependencies": { + "rollup": "^1.20.0 || ^2.0.0" + } + }, + "node_modules/@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "license": "MIT", + "dependencies": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/@rollup/pluginutils/node_modules/@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", + "license": "MIT" + }, + "node_modules/@rtsao/scc": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", + "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", + "license": "MIT" + }, + "node_modules/@rushstack/eslint-patch": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.16.1.tgz", + "integrity": "sha512-TvZbIpeKqGQQ7X0zSCvPH9riMSFQFSggnfBjFZ1mEoILW+UuXCKwOoPcgjMwiUtRqFZ8jWhPJc4um14vC6I4ag==", + "license": "MIT" + }, + "node_modules/@sinclair/typebox": { + "version": "0.24.51", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz", + "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==", + "license": "MIT" + }, + "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==", + "license": "BSD-3-Clause", + "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==", + "license": "BSD-3-Clause", + "dependencies": { + "@sinonjs/commons": "^1.7.0" + } + }, + "node_modules/@surma/rollup-plugin-off-main-thread": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz", + "integrity": "sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==", + "license": "Apache-2.0", + "dependencies": { + "ejs": "^3.1.6", + "json5": "^2.2.0", + "magic-string": "^0.25.0", + "string.prototype.matchall": "^4.0.6" + } + }, + "node_modules/@svgr/babel-plugin-add-jsx-attribute": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-5.4.0.tgz", + "integrity": "sha512-ZFf2gs/8/6B8PnSofI0inYXr2SDNTDScPXhN7k5EqD4aZ3gi6u+rbmZHVB8IM3wDyx8ntKACZbtXSm7oZGRqVg==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-5.4.0.tgz", + "integrity": "sha512-yaS4o2PgUtwLFGTKbsiAy6D0o3ugcUhWK0Z45umJ66EPWunAz9fuFw2gJuje6wqQvQWOTJvIahUwndOXb7QCPg==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-5.0.1.tgz", + "integrity": "sha512-LA72+88A11ND/yFIMzyuLRSMJ+tRKeYKeQ+mR3DcAZ5I4h5CPWN9AHyUzJbWSYp/u2u0xhmgOe0+E41+GjEueA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-5.0.1.tgz", + "integrity": "sha512-PoiE6ZD2Eiy5mK+fjHqwGOS+IXX0wq/YDtNyIgOrc6ejFnxN4b13pRpiIPbtPwHEc+NT2KCjteAcq33/F1Y9KQ==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-svg-dynamic-title": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-5.4.0.tgz", + "integrity": "sha512-zSOZH8PdZOpuG1ZVx/cLVePB2ibo3WPpqo7gFIjLV9a0QsuQAzJiwwqmuEdTaW2pegyBE17Uu15mOgOcgabQZg==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-svg-em-dimensions": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-5.4.0.tgz", + "integrity": "sha512-cPzDbDA5oT/sPXDCUYoVXEmm3VIoAWAPT6mSPTJNbQaBNUuEKVKyGH93oDY4e42PYHRW67N5alJx/eEol20abw==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-transform-react-native-svg": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-5.4.0.tgz", + "integrity": "sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-transform-svg-component": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.5.0.tgz", + "integrity": "sha512-q4jSH1UUvbrsOtlo/tKcgSeiCHRSBdXoIoqX1pgcKK/aU3JD27wmMKwGtpB8qRYUYoyXvfGxUVKchLuR5pB3rQ==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-preset": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-5.5.0.tgz", + "integrity": "sha512-4FiXBjvQ+z2j7yASeGPEi8VD/5rrGQk4Xrq3EdJmoZgz/tpqChpo5hgXDvmEauwtvOc52q8ghhZK4Oy7qph4ig==", + "license": "MIT", + "dependencies": { + "@svgr/babel-plugin-add-jsx-attribute": "^5.4.0", + "@svgr/babel-plugin-remove-jsx-attribute": "^5.4.0", + "@svgr/babel-plugin-remove-jsx-empty-expression": "^5.0.1", + "@svgr/babel-plugin-replace-jsx-attribute-value": "^5.0.1", + "@svgr/babel-plugin-svg-dynamic-title": "^5.4.0", + "@svgr/babel-plugin-svg-em-dimensions": "^5.4.0", + "@svgr/babel-plugin-transform-react-native-svg": "^5.4.0", + "@svgr/babel-plugin-transform-svg-component": "^5.5.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/core": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-5.5.0.tgz", + "integrity": "sha512-q52VOcsJPvV3jO1wkPtzTuKlvX7Y3xIcWRpCMtBF3MrteZJtBfQw/+u0B1BHy5ColpQc1/YVTrPEtSYIMNZlrQ==", + "license": "MIT", + "dependencies": { + "@svgr/plugin-jsx": "^5.5.0", + "camelcase": "^6.2.0", + "cosmiconfig": "^7.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/hast-util-to-babel-ast": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.5.0.tgz", + "integrity": "sha512-cAaR/CAiZRB8GP32N+1jocovUtvlj0+e65TB50/6Lcime+EA49m/8l+P2ko+XPJ4dw3xaPS3jOL4F2X4KWxoeQ==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.12.6" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/plugin-jsx": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-5.5.0.tgz", + "integrity": "sha512-V/wVh33j12hGh05IDg8GpIUXbjAPnTdPTKuP4VNLggnwaHMPNQNae2pRnyTAILWCQdz5GyMqtO488g7CKM8CBA==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.12.3", + "@svgr/babel-preset": "^5.5.0", + "@svgr/hast-util-to-babel-ast": "^5.5.0", + "svg-parser": "^2.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/plugin-svgo": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-5.5.0.tgz", + "integrity": "sha512-r5swKk46GuQl4RrVejVwpeeJaydoxkdwkM1mBKOgJLBUJPGaLci6ylg/IjhrRsREKDkr4kbMWdgOtbXEh0fyLQ==", + "license": "MIT", + "dependencies": { + "cosmiconfig": "^7.0.0", + "deepmerge": "^4.2.2", + "svgo": "^1.2.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/webpack": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-5.5.0.tgz", + "integrity": "sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/plugin-transform-react-constant-elements": "^7.12.1", + "@babel/preset-env": "^7.12.1", + "@babel/preset-react": "^7.12.5", + "@svgr/core": "^5.5.0", + "@svgr/plugin-jsx": "^5.5.0", + "@svgr/plugin-svgo": "^5.5.0", + "loader-utils": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@testing-library/dom": { + "version": "10.4.1", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.1.tgz", + "integrity": "sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==", + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^5.0.1", + "aria-query": "5.3.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.5.0", + "picocolors": "1.1.1", + "pretty-format": "^27.0.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@testing-library/jest-dom": { + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.9.1.tgz", + "integrity": "sha512-zIcONa+hVtVSSep9UT3jZ5rizo2BsxgyDYU7WFD5eICBE7no3881HGeb/QkGfsJs6JTkY1aQhT7rIPC7e+0nnA==", + "license": "MIT", + "dependencies": { + "@adobe/css-tools": "^4.4.0", + "aria-query": "^5.0.0", + "css.escape": "^1.5.1", + "dom-accessibility-api": "^0.6.3", + "picocolors": "^1.1.1", + "redent": "^3.0.0" + }, + "engines": { + "node": ">=14", + "npm": ">=6", + "yarn": ">=1" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/dom-accessibility-api": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz", + "integrity": "sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==", + "license": "MIT" + }, + "node_modules/@testing-library/react": { + "version": "16.3.2", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-16.3.2.tgz", + "integrity": "sha512-XU5/SytQM+ykqMnAnvB2umaJNIOsLF3PVv//1Ew4CTcpz0/BRyy/af40qqrt7SjKpDdT1saBMc42CUok5gaw+g==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.5" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@testing-library/dom": "^10.0.0", + "@types/react": "^18.0.0 || ^19.0.0", + "@types/react-dom": "^18.0.0 || ^19.0.0", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@testing-library/user-event": { + "version": "13.5.0", + "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-13.5.0.tgz", + "integrity": "sha512-5Kwtbo3Y/NowpkbRuSepbyMFkZmHgD+vPzYB/RJ4oxt5Gj/avFFBYjhw27cqSVPVw/3a67NK1PbiIr9k4Gwmdg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.5" + }, + "engines": { + "node": ">=10", + "npm": ">=6" + }, + "peerDependencies": { + "@testing-library/dom": ">=7.21.4" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/@types/aria-query": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", + "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==", + "license": "MIT" + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "license": "MIT", + "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.27.0", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", + "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", + "license": "MIT", + "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==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", + "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.28.2" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.6", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.6.tgz", + "integrity": "sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==", + "license": "MIT", + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/bonjour": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz", + "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect-history-api-fallback": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz", + "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==", + "license": "MIT", + "dependencies": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "node_modules/@types/eslint": { + "version": "8.56.12", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.12.tgz", + "integrity": "sha512-03ruubjWyOHlmljCVoxSuNDdmfZDzsrrz0P2LeJsOXr+ZwFQ+0yQIwNCwt/GYhV7Z31fgtXJTAEs+FYlEL851g==", + "license": "MIT", + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "license": "MIT", + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "license": "MIT" + }, + "node_modules/@types/express": { + "version": "4.17.25", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.25.tgz", + "integrity": "sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw==", + "license": "MIT", + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "^1" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.1.1.tgz", + "integrity": "sha512-v4zIMr/cX7/d2BpAEX3KNKL/JrT1s43s96lLvvdTmza1oEvDudCqK9aF/djc/SWgy8Yh0h30TZx5VpzqFCxk5A==", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/express/node_modules/@types/express-serve-static-core": { + "version": "4.19.8", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.8.tgz", + "integrity": "sha512-02S5fmqeoKzVZCHPZid4b8JH2eM5HzQLZWN2FohQEy/0eXTq8VXZfSN6Pcr3F6N9R/vNrj7cpgbhjie6m/1tCA==", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==", + "license": "MIT" + }, + "node_modules/@types/http-errors": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.5.tgz", + "integrity": "sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==", + "license": "MIT" + }, + "node_modules/@types/http-proxy": { + "version": "1.17.17", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.17.tgz", + "integrity": "sha512-ED6LB+Z1AVylNTu7hdzuBqOgMnvG/ld6wGCG8wFnAzKX5uyW2K3WD52v0gnLCTK/VLpXtKckgWuyScYK6cSPaw==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT" + }, + "node_modules/@types/mime": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "25.5.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.5.2.tgz", + "integrity": "sha512-tO4ZIRKNC+MDWV4qKVZe3Ql/woTnmHDr5JD8UI5hn2pwBrHEwOEMZK7WlNb5RKB6EoJ02gwmQS9OrjuFnZYdpg==", + "license": "MIT", + "dependencies": { + "undici-types": "~7.18.0" + } + }, + "node_modules/@types/node-forge": { + "version": "1.3.14", + "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.14.tgz", + "integrity": "sha512-mhVF2BnD4BO+jtOp7z1CdzaK4mbuK0LLQYAvdOLqHTavxFNq4zA1EmYkpnFjP8HOUzedfQkRnp0E2ulSAYSzAw==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/parse-json": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", + "license": "MIT" + }, + "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==", + "license": "MIT" + }, + "node_modules/@types/q": { + "version": "1.5.8", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.8.tgz", + "integrity": "sha512-hroOstUScF6zhIi+5+x0dzqrHA1EJi+Irri6b1fxolMTqqHIV/Cg77EtnQcZqZCu8hR3mX2BzIxN4/GzI68Kfw==", + "license": "MIT" + }, + "node_modules/@types/qs": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.15.0.tgz", + "integrity": "sha512-JawvT8iBVWpzTrz3EGw9BTQFg3BQNmwERdKE22vlTxawwtbyUSlMppvZYKLZzB5zgACXdXxbD3m1bXaMqP/9ow==", + "license": "MIT" + }, + "node_modules/@types/range-parser": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", + "license": "MIT" + }, + "node_modules/@types/resolve": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", + "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", + "license": "MIT" + }, + "node_modules/@types/semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA==", + "license": "MIT" + }, + "node_modules/@types/send": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@types/send/-/send-1.2.1.tgz", + "integrity": "sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/serve-index": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz", + "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==", + "license": "MIT", + "dependencies": { + "@types/express": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.10", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.10.tgz", + "integrity": "sha512-tRs1dB+g8Itk72rlSI2ZrW6vZg0YrLI81iQSTkMmOqnqCaNr/8Ek4VwWcN5vZgCYWbg/JJSGBlUaYGAOP73qBw==", + "license": "MIT", + "dependencies": { + "@types/http-errors": "*", + "@types/node": "*", + "@types/send": "<1" + } + }, + "node_modules/@types/serve-static/node_modules/@types/send": { + "version": "0.17.6", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.6.tgz", + "integrity": "sha512-Uqt8rPBE8SY0RK8JB1EzVOIZ32uqy8HwdxCnoCOsYrvnswqmFZ/k+9Ikidlk/ImhsdvBsloHbAlewb2IEBV/Og==", + "license": "MIT", + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/sockjs": { + "version": "0.3.36", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz", + "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "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==", + "license": "MIT" + }, + "node_modules/@types/trusted-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", + "license": "MIT" + }, + "node_modules/@types/ws": { + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz", + "integrity": "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/yargs": { + "version": "16.0.11", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.11.tgz", + "integrity": "sha512-sbtvk8wDN+JvEdabmZExoW/HNr1cB7D/j4LT08rMiuikfA7m/JNJg7ATQcgzs34zHnoScDkY0ZRSl29Fkmk36g==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", + "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", + "license": "MIT", + "peer": true, + "dependencies": { + "@eslint-community/regexpp": "^4.4.0", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/type-utils": "5.62.0", + "@typescript-eslint/utils": "5.62.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/experimental-utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.62.0.tgz", + "integrity": "sha512-RTXpeB3eMkpoclG3ZHft6vG/Z30azNHuqY6wKPBHlVMZFuEvrtlEDe8gMqDb+SO+9hjC/pLekeSCryf9vMZlCw==", + "license": "MIT", + "dependencies": { + "@typescript-eslint/utils": "5.62.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", + "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", + "license": "BSD-2-Clause", + "peer": true, + "dependencies": { + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", + "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", + "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", + "license": "MIT", + "dependencies": { + "@typescript-eslint/typescript-estree": "5.62.0", + "@typescript-eslint/utils": "5.62.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", + "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", + "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", + "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", + "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", + "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", + "license": "ISC" + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", + "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/helper-numbers": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", + "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", + "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", + "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", + "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.13.2", + "@webassemblyjs/helper-api-error": "1.13.2", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", + "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", + "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/wasm-gen": "1.14.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", + "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", + "license": "MIT", + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", + "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", + "license": "Apache-2.0", + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", + "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", + "license": "MIT" + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", + "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/helper-wasm-section": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-opt": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1", + "@webassemblyjs/wast-printer": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", + "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", + "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", + "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-api-error": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", + "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "license": "BSD-3-Clause" + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "license": "Apache-2.0" + }, + "node_modules/abab": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "deprecated": "Use your platform's native atob() and btoa() methods instead", + "license": "BSD-3-Clause" + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "license": "MIT", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/accepts/node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", + "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", + "license": "MIT", + "peer": 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==", + "license": "MIT", + "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==", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-phases": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz", + "integrity": "sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==", + "license": "MIT", + "engines": { + "node": ">=10.13.0" + }, + "peerDependencies": { + "acorn": "^8.14.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==", + "license": "MIT", + "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==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/address": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/address/-/address-1.2.2.tgz", + "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==", + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/adjust-sourcemap-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", + "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", + "license": "MIT", + "dependencies": { + "loader-utils": "^2.0.0", + "regex-parser": "^2.2.11" + }, + "engines": { + "node": ">=8.9" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/ajv": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz", + "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", + "license": "MIT", + "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-escapes/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==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-html": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.9.tgz", + "integrity": "sha512-ozbS3LuenHVxNRh/wdnN16QapUHzauqSomAl1jwwJRRsGwFwtj644lIhxfWu0Fy0acCij2+AEgHvjscq3dlVXg==", + "engines": [ + "node >= 0.8.0" + ], + "license": "Apache-2.0", + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "node_modules/ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "engines": [ + "node >= 0.8.0" + ], + "license": "Apache-2.0", + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "license": "MIT" + }, + "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==", + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "license": "MIT" + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/aria-query": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "license": "Apache-2.0", + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "license": "MIT" + }, + "node_modules/array-includes": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.9.tgz", + "integrity": "sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.24.0", + "es-object-atoms": "^1.1.1", + "get-intrinsic": "^1.3.0", + "is-string": "^1.1.1", + "math-intrinsics": "^1.1.0" + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/array.prototype.findlast": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", + "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz", + "integrity": "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "es-shim-unscopables": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", + "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", + "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.reduce": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.8.tgz", + "integrity": "sha512-DwuEqgXFBwbmZSRqt3BpQigWNUoqw9Ml2dTWdF3B2zQlQX4OeUE0zyuzX0fX0IbTvjdkZbcBTU3idgpO78qkTw==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-array-method-boxes-properly": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "is-string": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", + "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", + "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "license": "MIT" + }, + "node_modules/ast-types-flow": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", + "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==", + "license": "MIT" + }, + "node_modules/async": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", + "license": "MIT" + }, + "node_modules/async-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", + "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "license": "ISC", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.27", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.27.tgz", + "integrity": "sha512-NP9APE+tO+LuJGn7/9+cohklunJsXWiaWEfV3si4Gi/XHDwVNgkwr1J3RQYFIvPy76GmJ9/bW8vyoU1LcxwKHA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "browserslist": "^4.28.1", + "caniuse-lite": "^1.0.30001774", + "fraction.js": "^5.3.4", + "picocolors": "^1.1.1", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axe-core": { + "version": "4.11.2", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.11.2.tgz", + "integrity": "sha512-byD6KPdvo72y/wj2T/4zGEvvlis+PsZsn/yPS3pEO+sFpcrqRpX/TJCxvVaEsNeMrfQbCr7w163YqoD9IYwHXw==", + "license": "MPL-2.0", + "engines": { + "node": ">=4" + } + }, + "node_modules/axobject-query": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "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==", + "license": "MIT", + "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-loader": { + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.4.1.tgz", + "integrity": "sha512-nXzRChX+Z1GoE6yWavBQg6jDslyFF3SDjl2paADuoQtQW10JqShJt62R6eJQ5m/pjJFDT8xgKIWSP85OY8eXeA==", + "license": "MIT", + "dependencies": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^2.0.4", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + }, + "engines": { + "node": ">= 8.9" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "webpack": ">=2" + } + }, + "node_modules/babel-loader/node_modules/ajv": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz", + "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==", + "license": "MIT", + "peer": 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/babel-loader/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/babel-loader/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==", + "license": "MIT" + }, + "node_modules/babel-loader/node_modules/schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "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==", + "license": "BSD-3-Clause", + "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==", + "license": "MIT", + "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-plugin-macros": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", + "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.5", + "cosmiconfig": "^7.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">=10", + "npm": ">=6" + } + }, + "node_modules/babel-plugin-named-asset-import": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.8.tgz", + "integrity": "sha512-WXiAc++qo7XcJ1ZnTYGtLxmBCVbddAml3CEXgWaBzNzLNoxtQ8AiGEFDMOhot9XjTCQbvP5E77Fj9Gk924f00Q==", + "license": "MIT", + "peerDependencies": { + "@babel/core": "^7.1.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.17", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.17.tgz", + "integrity": "sha512-aTyf30K/rqAsNwN76zYrdtx8obu0E4KoUME29B1xj+B3WxgvWkp943vYQ+z8Mv3lw9xHXMHpvSPOBxzAkIa94w==", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.28.6", + "@babel/helper-define-polyfill-provider": "^0.6.8", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.14.2.tgz", + "integrity": "sha512-coWpDLJ410R781Npmn/SIBZEsAetR4xVi0SxLMXPaMO4lSf1MwnkGYMtkFxew0Dn8B3/CpbpYxN0JCgg8mn67g==", + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.8", + "core-js-compat": "^3.48.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.8.tgz", + "integrity": "sha512-M762rNHfSF1EV3SLtnCJXFoQbbIIz0OyRwnCmV0KPC7qosSfCO0QLTSuJX3ayAebubhE6oYBAYPrBA5ljowaZg==", + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.8" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-transform-react-remove-prop-types": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz", + "integrity": "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==", + "license": "MIT" + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.2.0.tgz", + "integrity": "sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==", + "license": "MIT", + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-import-attributes": "^7.24.7", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@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-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5" + }, + "peerDependencies": { + "@babel/core": "^7.0.0 || ^8.0.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==", + "license": "MIT", + "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/babel-preset-react-app": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/babel-preset-react-app/-/babel-preset-react-app-10.1.0.tgz", + "integrity": "sha512-f9B1xMdnkCIqe+2dHrJsoQFRz7reChaAHE/65SdaykPklQqhme2WaC08oD3is77x9ff98/9EazAKFDZv5rFEQg==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.16.0", + "@babel/plugin-proposal-class-properties": "^7.16.0", + "@babel/plugin-proposal-decorators": "^7.16.4", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.0", + "@babel/plugin-proposal-numeric-separator": "^7.16.0", + "@babel/plugin-proposal-optional-chaining": "^7.16.0", + "@babel/plugin-proposal-private-methods": "^7.16.0", + "@babel/plugin-proposal-private-property-in-object": "^7.16.7", + "@babel/plugin-transform-flow-strip-types": "^7.16.0", + "@babel/plugin-transform-react-display-name": "^7.16.0", + "@babel/plugin-transform-runtime": "^7.16.4", + "@babel/preset-env": "^7.16.4", + "@babel/preset-react": "^7.16.0", + "@babel/preset-typescript": "^7.16.0", + "@babel/runtime": "^7.16.3", + "babel-plugin-macros": "^3.1.0", + "babel-plugin-transform-react-remove-prop-types": "^0.4.24" + } + }, + "node_modules/babel-preset-react-app/node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.11.tgz", + "integrity": "sha512-0QZ8qP/3RLDVBwBFoWAwCtgcDZJVwA5LUJRZU8x2YFfKNuFq161wK3cuGrALu5yiPu+vzwTAg/sMWVNeWeNyaw==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-property-in-object instead.", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.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==", + "license": "MIT" + }, + "node_modules/baseline-browser-mapping": { + "version": "2.10.16", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.16.tgz", + "integrity": "sha512-Lyf3aK28zpsD1yQMiiHD4RvVb6UdMoo8xzG2XzFIfR9luPzOpcBlAsT/qfB1XWS1bxWT+UtE4WmQgsp297FYOA==", + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.cjs" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", + "license": "MIT" + }, + "node_modules/bfj": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/bfj/-/bfj-7.1.0.tgz", + "integrity": "sha512-I6MMLkn+anzNdCUp9hMRyui1HaNEUCco50lxbvNS4+EyXg8lN3nJ48PjPWtbH8UVS9CuMoaKE9U2V3l29DaRQw==", + "license": "MIT", + "dependencies": { + "bluebird": "^3.7.2", + "check-types": "^11.2.3", + "hoopy": "^0.1.4", + "jsonpath": "^1.1.1", + "tryer": "^1.0.1" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "license": "MIT" + }, + "node_modules/body-parser": { + "version": "1.20.4", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.4.tgz", + "integrity": "sha512-ZTgYYLMOXY9qKU/57FAo8F+HA2dGX7bqGc71txDRC1rS4frdFI5R7NhluHxH6M0YItAP0sHB4uqAOcYKxO6uGA==", + "license": "MIT", + "dependencies": { + "bytes": "~3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "~1.2.0", + "http-errors": "~2.0.1", + "iconv-lite": "~0.4.24", + "on-finished": "~2.4.1", + "qs": "~6.14.0", + "raw-body": "~2.5.3", + "type-is": "~1.6.18", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/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==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/bonjour-service": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.3.0.tgz", + "integrity": "sha512-3YuAUiSkWykd+2Azjgyxei8OWf8thdn8AITIog2M4UICzoqfjlqr64WIjEXZllf/W6vK1goqleSR6brGomxQqA==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.5" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "license": "ISC" + }, + "node_modules/brace-expansion": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.13.tgz", + "integrity": "sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.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==", + "license": "BSD-2-Clause" + }, + "node_modules/browserslist": { + "version": "4.28.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.2.tgz", + "integrity": "sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==", + "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" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "baseline-browser-mapping": "^2.10.12", + "caniuse-lite": "^1.0.30001782", + "electron-to-chromium": "^1.5.328", + "node-releases": "^2.0.36", + "update-browserslist-db": "^1.2.3" + }, + "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==", + "license": "Apache-2.0", + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "license": "MIT", + "dependencies": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001787", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001787.tgz", + "integrity": "sha512-mNcrMN9KeI68u7muanUpEejSLghOKlVhRqS/Za2IeyGllJ9I9otGpR9g3nsw7n4W378TE/LyIteA0+/FOZm4Kg==", + "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" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/case-sensitive-paths-webpack-plugin": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz", + "integrity": "sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "license": "MIT", + "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/chalk/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==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/check-types": { + "version": "11.2.3", + "resolved": "https://registry.npmjs.org/check-types/-/check-types-11.2.3.tgz", + "integrity": "sha512-+67P1GkJRaxQD6PKK0Et9DhwQB+vGg3PM5+aavopCpZT1lj9jeqfvpgTLAWErNj8qApkkmXlu/Ug74kmhagkXg==", + "license": "MIT" + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/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==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "license": "MIT", + "engines": { + "node": ">=6.0" + } + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.3.tgz", + "integrity": "sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==", + "license": "MIT" + }, + "node_modules/clean-css": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz", + "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==", + "license": "MIT", + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 10.0" + } + }, + "node_modules/clean-css/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==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "license": "ISC", + "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==", + "license": "MIT", + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/coa": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", + "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", + "license": "MIT", + "dependencies": { + "@types/q": "^1.5.1", + "chalk": "^2.4.1", + "q": "^1.1.2" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/coa/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==", + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/coa/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==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/coa/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==", + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/coa/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==", + "license": "MIT" + }, + "node_modules/coa/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==", + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/coa/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==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/coa/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==", + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.3.tgz", + "integrity": "sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "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==", + "license": "MIT" + }, + "node_modules/colord": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", + "license": "MIT" + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, + "node_modules/common-tags": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", + "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "license": "MIT" + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "license": "MIT", + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.8.1.tgz", + "integrity": "sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "compressible": "~2.0.18", + "debug": "2.6.9", + "negotiator": "~0.6.4", + "on-headers": "~1.1.0", + "safe-buffer": "5.2.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "license": "MIT" + }, + "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==", + "license": "MIT" + }, + "node_modules/connect-history-api-fallback": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", + "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "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==", + "license": "MIT" + }, + "node_modules/cookie": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.7.tgz", + "integrity": "sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==", + "license": "MIT" + }, + "node_modules/core-js": { + "version": "3.49.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.49.0.tgz", + "integrity": "sha512-es1U2+YTtzpwkxVLwAFdSpaIMyQaq0PBgm3YD1W3Qpsn1NAmO3KSgZfu+oGSWVu6NvLHoHCV/aYcsE5wiB7ALg==", + "hasInstallScript": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat": { + "version": "3.49.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.49.0.tgz", + "integrity": "sha512-VQXt1jr9cBz03b331DFDCCP90b3fanciLkgiOoy8SBHy06gNf+vQ1A3WFLqG7I8TipYIKeYK9wxd0tUrvHcOZA==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.28.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-pure": { + "version": "3.49.0", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.49.0.tgz", + "integrity": "sha512-XM4RFka59xATyJv/cS3O3Kml72hQXUeGRuuTmMYFxwzc9/7C8OYTaIR/Ji+Yt8DXzsFLNhat15cE/JP15HrCgw==", + "hasInstallScript": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "license": "MIT" + }, + "node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "license": "MIT", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/css-blank-pseudo": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz", + "integrity": "sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ==", + "license": "CC0-1.0", + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "bin": { + "css-blank-pseudo": "dist/cli.cjs" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-declaration-sorter": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.4.1.tgz", + "integrity": "sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==", + "license": "ISC", + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.0.9" + } + }, + "node_modules/css-has-pseudo": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-3.0.4.tgz", + "integrity": "sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw==", + "license": "CC0-1.0", + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "bin": { + "css-has-pseudo": "dist/cli.cjs" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-loader": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.11.0.tgz", + "integrity": "sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==", + "license": "MIT", + "dependencies": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.33", + "postcss-modules-extract-imports": "^3.1.0", + "postcss-modules-local-by-default": "^4.0.5", + "postcss-modules-scope": "^3.2.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/css-minimizer-webpack-plugin": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.4.1.tgz", + "integrity": "sha512-1u6D71zeIfgngN2XNRJefc/hY7Ybsxd74Jm4qngIXyUEk7fss3VUzuHxLAq/R8NAba4QU9OUSaMZlbpRc7bM4Q==", + "license": "MIT", + "dependencies": { + "cssnano": "^5.0.6", + "jest-worker": "^27.0.2", + "postcss": "^8.3.5", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@parcel/css": { + "optional": true + }, + "clean-css": { + "optional": true + }, + "csso": { + "optional": true + }, + "esbuild": { + "optional": true + } + } + }, + "node_modules/css-minimizer-webpack-plugin/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==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/css-prefers-color-scheme": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz", + "integrity": "sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==", + "license": "CC0-1.0", + "bin": { + "css-prefers-color-scheme": "dist/cli.cjs" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-select-base-adapter": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", + "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==", + "license": "MIT" + }, + "node_modules/css-tree": { + "version": "1.0.0-alpha.37", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", + "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.4", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/css-tree/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==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/css-what": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz", + "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css.escape": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", + "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==", + "license": "MIT" + }, + "node_modules/cssdb": { + "version": "7.11.2", + "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-7.11.2.tgz", + "integrity": "sha512-lhQ32TFkc1X4eTefGfYPvgovRSzIMofHkigfH8nWtyRL4XJLsRhJFreRvEgKzept7x1rjBuy3J/MurXLaFxW/A==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + } + ], + "license": "CC0-1.0" + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano": { + "version": "5.1.15", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.15.tgz", + "integrity": "sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==", + "license": "MIT", + "dependencies": { + "cssnano-preset-default": "^5.2.14", + "lilconfig": "^2.0.3", + "yaml": "^1.10.2" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/cssnano" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-preset-default": { + "version": "5.2.14", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.14.tgz", + "integrity": "sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==", + "license": "MIT", + "dependencies": { + "css-declaration-sorter": "^6.3.1", + "cssnano-utils": "^3.1.0", + "postcss-calc": "^8.2.3", + "postcss-colormin": "^5.3.1", + "postcss-convert-values": "^5.1.3", + "postcss-discard-comments": "^5.1.2", + "postcss-discard-duplicates": "^5.1.0", + "postcss-discard-empty": "^5.1.1", + "postcss-discard-overridden": "^5.1.0", + "postcss-merge-longhand": "^5.1.7", + "postcss-merge-rules": "^5.1.4", + "postcss-minify-font-values": "^5.1.0", + "postcss-minify-gradients": "^5.1.1", + "postcss-minify-params": "^5.1.4", + "postcss-minify-selectors": "^5.2.1", + "postcss-normalize-charset": "^5.1.0", + "postcss-normalize-display-values": "^5.1.0", + "postcss-normalize-positions": "^5.1.1", + "postcss-normalize-repeat-style": "^5.1.1", + "postcss-normalize-string": "^5.1.0", + "postcss-normalize-timing-functions": "^5.1.0", + "postcss-normalize-unicode": "^5.1.1", + "postcss-normalize-url": "^5.1.0", + "postcss-normalize-whitespace": "^5.1.1", + "postcss-ordered-values": "^5.1.3", + "postcss-reduce-initial": "^5.1.2", + "postcss-reduce-transforms": "^5.1.0", + "postcss-svgo": "^5.1.0", + "postcss-unique-selectors": "^5.1.1" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-utils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", + "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", + "license": "MIT", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "license": "MIT", + "dependencies": { + "css-tree": "^1.1.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "license": "CC0-1.0" + }, + "node_modules/csso/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==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cssom": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", + "license": "MIT" + }, + "node_modules/cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "node_modules/damerau-levenshtein": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", + "license": "BSD-2-Clause" + }, + "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==", + "license": "MIT", + "dependencies": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/data-view-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/inspect-js" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decimal.js": { + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz", + "integrity": "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==", + "license": "MIT" + }, + "node_modules/dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", + "license": "MIT" + }, + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "license": "BSD-2-Clause", + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "license": "MIT", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "license": "MIT" + }, + "node_modules/detect-port-alt": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", + "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", + "license": "MIT", + "dependencies": { + "address": "^1.0.1", + "debug": "^2.6.0" + }, + "bin": { + "detect": "bin/detect-port", + "detect-port": "bin/detect-port" + }, + "engines": { + "node": ">= 4.2.1" + } + }, + "node_modules/detect-port-alt/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/detect-port-alt/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "license": "Apache-2.0" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "license": "MIT" + }, + "node_modules/dns-packet": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", + "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", + "license": "MIT", + "dependencies": { + "@leichtgewicht/ip-codec": "^2.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom-accessibility-api": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", + "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==", + "license": "MIT" + }, + "node_modules/dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "license": "MIT", + "dependencies": { + "utila": "~0.4" + } + }, + "node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "license": "MIT", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domexception": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", + "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "deprecated": "Use your platform's native DOMException instead", + "license": "MIT", + "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==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=8" + } + }, + "node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/dotenv": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", + "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=10" + } + }, + "node_modules/dotenv-expand": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", + "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==", + "license": "BSD-2-Clause" + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "license": "MIT" + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT" + }, + "node_modules/ejs": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", + "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", + "license": "Apache-2.0", + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.334", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.334.tgz", + "integrity": "sha512-mgjZAz7Jyx1SRCwEpy9wefDS7GvNPazLthHg8eQMJ76wBdGQQDW33TCrUTvQ4wzpmOrv2zrFoD3oNufMdyMpog==", + "license": "ISC" + }, + "node_modules/email-addresses": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/email-addresses/-/email-addresses-5.0.0.tgz", + "integrity": "sha512-4OIPYlA6JXqtVn8zpHpGiI7vE6EQOAg16aGnDMIAlZVinnoZ8208tW1hAbjWydgN/4PLTT9q+O1K6AH/vALJGw==", + "dev": true, + "license": "MIT" + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "license": "MIT" + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.20.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.20.1.tgz", + "integrity": "sha512-Qohcme7V1inbAfvjItgw0EaxVX5q2rdVEZHRBrEQdRZTssLDGsL8Lwrznl8oQ/6kuTJONLaDcGjkNP247XEhcA==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.3.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "license": "BSD-2-Clause", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/error-ex": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", + "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/error-stack-parser": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz", + "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", + "license": "MIT", + "dependencies": { + "stackframe": "^1.3.4" + } + }, + "node_modules/es-abstract": { + "version": "1.24.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.2.tgz", + "integrity": "sha512-2FpH9Q5i2RRwyEP1AylXe6nYLR5OhaJTZwmlcP0dL/+JCbgg7yyEo/sEK6HeGZRf3dFpWwThaRHVApXSkW3xeg==", + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.2", + "arraybuffer.prototype.slice": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "data-view-buffer": "^1.0.2", + "data-view-byte-length": "^1.0.2", + "data-view-byte-offset": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "es-set-tostringtag": "^2.1.0", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.3.0", + "get-proto": "^1.0.1", + "get-symbol-description": "^1.1.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "internal-slot": "^1.1.0", + "is-array-buffer": "^3.0.5", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.2", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.2.1", + "is-set": "^2.0.3", + "is-shared-array-buffer": "^1.0.4", + "is-string": "^1.1.1", + "is-typed-array": "^1.1.15", + "is-weakref": "^1.1.1", + "math-intrinsics": "^1.1.0", + "object-inspect": "^1.13.4", + "object-keys": "^1.1.1", + "object.assign": "^4.1.7", + "own-keys": "^1.0.1", + "regexp.prototype.flags": "^1.5.4", + "safe-array-concat": "^1.1.3", + "safe-push-apply": "^1.0.0", + "safe-regex-test": "^1.1.0", + "set-proto": "^1.0.0", + "stop-iteration-iterator": "^1.1.0", + "string.prototype.trim": "^1.2.10", + "string.prototype.trimend": "^1.0.9", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.3", + "typed-array-byte-length": "^1.0.3", + "typed-array-byte-offset": "^1.0.4", + "typed-array-length": "^1.0.7", + "unbox-primitive": "^1.1.0", + "which-typed-array": "^1.1.19" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-array-method-boxes-properly": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", + "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", + "license": "MIT" + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-iterator-helpers": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.3.1.tgz", + "integrity": "sha512-zWwRvqWiuBPr0muUG/78cW3aHROFCNIQ3zpmYDpwdbnt2m+xlNyRWpHBpa2lJjSBit7BQ+RXA1iwbSmu5yJ/EQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.24.1", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.1.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.3.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "iterator.prototype": "^1.1.5", + "math-intrinsics": "^1.1.0", + "safe-array-concat": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.0.0.tgz", + "integrity": "sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw==", + "license": "MIT" + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", + "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==", + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", + "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7", + "is-date-object": "^1.0.5", + "is-symbol": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "license": "BSD-2-Clause", + "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/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", + "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", + "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", + "license": "MIT", + "peer": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.1", + "@humanwhocodes/config-array": "^0.13.0", + "@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-react-app": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-7.0.1.tgz", + "integrity": "sha512-K6rNzvkIeHaTd8m/QEh1Zko0KI7BACWkkneSs6s9cKZC/J27X3eZR6Upt1jkmZ/4FK+XUOPPxMEN7+lbUXfSlA==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.16.0", + "@babel/eslint-parser": "^7.16.3", + "@rushstack/eslint-patch": "^1.1.0", + "@typescript-eslint/eslint-plugin": "^5.5.0", + "@typescript-eslint/parser": "^5.5.0", + "babel-preset-react-app": "^10.0.1", + "confusing-browser-globals": "^1.0.11", + "eslint-plugin-flowtype": "^8.0.3", + "eslint-plugin-import": "^2.25.3", + "eslint-plugin-jest": "^25.3.0", + "eslint-plugin-jsx-a11y": "^6.5.1", + "eslint-plugin-react": "^7.27.1", + "eslint-plugin-react-hooks": "^4.3.0", + "eslint-plugin-testing-library": "^5.0.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "eslint": "^8.0.0" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.10", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.10.tgz", + "integrity": "sha512-tRrKqFyCaKict5hOd244sL6EQFNycnMQnBe+j8uqGNXYzsImGbGUU4ibtoaBmv5FLwJwcFJNeg1GeVjQfbMrDQ==", + "license": "MIT", + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.16.1", + "resolve": "^2.0.0-next.6" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/resolve": { + "version": "2.0.0-next.6", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.6.tgz", + "integrity": "sha512-3JmVl5hMGtJ3kMmB3zi3DL25KfkCEyy3Tw7Gmw7z5w8M9WlwoPFnIvwChzu1+cF3iaK3sp18hhPz8ANeimdJfA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "is-core-module": "^2.16.1", + "node-exports-info": "^1.6.0", + "object-keys": "^1.1.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.1.tgz", + "integrity": "sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==", + "license": "MIT", + "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==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-flowtype": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-8.0.3.tgz", + "integrity": "sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ==", + "license": "BSD-3-Clause", + "dependencies": { + "lodash": "^4.17.21", + "string-natural-compare": "^3.0.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@babel/plugin-syntax-flow": "^7.14.5", + "@babel/plugin-transform-react-jsx": "^7.14.9", + "eslint": "^8.1.0" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.32.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.32.0.tgz", + "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==", + "license": "MIT", + "dependencies": { + "@rtsao/scc": "^1.1.0", + "array-includes": "^3.1.9", + "array.prototype.findlastindex": "^1.2.6", + "array.prototype.flat": "^1.3.3", + "array.prototype.flatmap": "^1.3.3", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.12.1", + "hasown": "^2.0.2", + "is-core-module": "^2.16.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "object.groupby": "^1.0.3", + "object.values": "^1.2.1", + "semver": "^6.3.1", + "string.prototype.trimend": "^1.0.9", + "tsconfig-paths": "^3.15.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-jest": { + "version": "25.7.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-25.7.0.tgz", + "integrity": "sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ==", + "license": "MIT", + "dependencies": { + "@typescript-eslint/experimental-utils": "^5.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + }, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "^4.0.0 || ^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "@typescript-eslint/eslint-plugin": { + "optional": true + }, + "jest": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-jsx-a11y": { + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz", + "integrity": "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==", + "license": "MIT", + "dependencies": { + "aria-query": "^5.3.2", + "array-includes": "^3.1.8", + "array.prototype.flatmap": "^1.3.2", + "ast-types-flow": "^0.0.8", + "axe-core": "^4.10.0", + "axobject-query": "^4.1.0", + "damerau-levenshtein": "^1.0.8", + "emoji-regex": "^9.2.2", + "hasown": "^2.0.2", + "jsx-ast-utils": "^3.3.5", + "language-tags": "^1.0.9", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "safe-regex-test": "^1.0.3", + "string.prototype.includes": "^2.0.1" + }, + "engines": { + "node": ">=4.0" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9" + } + }, + "node_modules/eslint-plugin-jsx-a11y/node_modules/aria-query": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", + "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.37.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz", + "integrity": "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==", + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", + "array.prototype.flatmap": "^1.3.3", + "array.prototype.tosorted": "^1.1.4", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.2.1", + "estraverse": "^5.3.0", + "hasown": "^2.0.2", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.9", + "object.fromentries": "^2.0.8", + "object.values": "^1.2.1", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.5", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.12", + "string.prototype.repeat": "^1.0.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz", + "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/eslint-plugin-react/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-react/node_modules/resolve": { + "version": "2.0.0-next.6", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.6.tgz", + "integrity": "sha512-3JmVl5hMGtJ3kMmB3zi3DL25KfkCEyy3Tw7Gmw7z5w8M9WlwoPFnIvwChzu1+cF3iaK3sp18hhPz8ANeimdJfA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "is-core-module": "^2.16.1", + "node-exports-info": "^1.6.0", + "object-keys": "^1.1.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/eslint-plugin-react/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-testing-library": { + "version": "5.11.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.11.1.tgz", + "integrity": "sha512-5eX9e1Kc2PqVRed3taaLnAAqPZGEX75C+M/rXzUAI3wIg/ZxzUm1OVAwfe/O+vE+6YXOLetSe9g5GKD2ecXipw==", + "license": "MIT", + "dependencies": { + "@typescript-eslint/utils": "^5.58.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0", + "npm": ">=6" + }, + "peerDependencies": { + "eslint": "^7.5.0 || ^8.0.0" + } + }, + "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==", + "license": "BSD-2-Clause", + "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-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==", + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-webpack-plugin": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-3.2.0.tgz", + "integrity": "sha512-avrKcGncpPbPSUHX6B3stNGzkKFto3eL+DKM4+VyMrVnhPc3vRczVlCq3uhuFOdRvDHTVXuzwk1ZKUrqDQHQ9w==", + "license": "MIT", + "dependencies": { + "@types/eslint": "^7.29.0 || ^8.4.1", + "jest-worker": "^28.0.2", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0", + "webpack": "^5.0.0" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/jest-worker": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz", + "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/eslint-webpack-plugin/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==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/eslint/node_modules/ajv": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz", + "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==", + "license": "MIT", + "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/eslint/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==", + "license": "Python-2.0" + }, + "node_modules/eslint/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==", + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/js-yaml": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/eslint/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==", + "license": "MIT" + }, + "node_modules/eslint/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==", + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/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==", + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/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==", + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "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==", + "license": "BSD-2-Clause", + "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==", + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz", + "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==", + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "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==", + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "license": "MIT" + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "license": "MIT" + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "license": "MIT", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "license": "MIT", + "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==", + "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==", + "license": "MIT", + "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/express": { + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.22.1.tgz", + "integrity": "sha512-F2X8g9P1X7uCPZMA3MVf9wcTqlyNp7IhH5qPCI0izhaOIYXaW9L535tGA3qmjRzpH+bZczqq7hVKxTR4NWnu+g==", + "license": "MIT", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "~1.20.3", + "content-disposition": "~0.5.4", + "content-type": "~1.0.4", + "cookie": "~0.7.1", + "cookie-signature": "~1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.3.1", + "fresh": "~0.5.2", + "http-errors": "~2.0.0", + "merge-descriptors": "1.0.3", + "methods": "~1.1.2", + "on-finished": "~2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "~0.1.12", + "proxy-addr": "~2.0.7", + "qs": "~6.14.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "~0.19.0", + "serve-static": "~1.16.2", + "setprototypeof": "1.2.0", + "statuses": "~2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "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==", + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "license": "MIT", + "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.8" + }, + "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==", + "license": "ISC", + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT" + }, + "node_modules/fast-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", + "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/fastq": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", + "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "license": "Apache-2.0", + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "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==", + "license": "Apache-2.0", + "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==", + "license": "MIT", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/file-loader": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", + "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", + "license": "MIT", + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/file-loader/node_modules/ajv": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz", + "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==", + "license": "MIT", + "peer": 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/file-loader/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/file-loader/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==", + "license": "MIT" + }, + "node_modules/file-loader/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/filelist": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.6.tgz", + "integrity": "sha512-5giy2PkLYY1cP39p17Ech+2xlpTRL9HLspOfEgm0L6CwBXBTgsK5ou0JtzYuepxkaQ/tvhCFIJ5uXo0OrM2DxA==", + "license": "Apache-2.0", + "dependencies": { + "minimatch": "^5.0.1" + } + }, + "node_modules/filelist/node_modules/brace-expansion": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.3.tgz", + "integrity": "sha512-MCV/fYJEbqx68aE58kv2cA/kiky1G8vux3OR6/jbS+jIMe/6fJWa0DTzJU7dqijOWYwHi1t29FlfYI9uytqlpA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.9.tgz", + "integrity": "sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/filename-reserved-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz", + "integrity": "sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/filenamify": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-4.3.0.tgz", + "integrity": "sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "filename-reserved-regex": "^2.0.0", + "strip-outer": "^1.0.1", + "trim-repeated": "^1.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/filesize": { + "version": "8.0.7", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz", + "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==", + "license": "BSD-3-Clause", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.2.tgz", + "integrity": "sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "on-finished": "~2.4.1", + "parseurl": "~1.3.3", + "statuses": "~2.0.2", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "license": "MIT", + "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.4.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.2.tgz", + "integrity": "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==", + "license": "ISC" + }, + "node_modules/follow-redirects": { + "version": "1.15.11", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz", + "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/for-each": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/fork-ts-checker-webpack-plugin": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.3.tgz", + "integrity": "sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@types/json-schema": "^7.0.5", + "chalk": "^4.1.0", + "chokidar": "^3.4.2", + "cosmiconfig": "^6.0.0", + "deepmerge": "^4.2.2", + "fs-extra": "^9.0.0", + "glob": "^7.1.6", + "memfs": "^3.1.2", + "minimatch": "^3.0.4", + "schema-utils": "2.7.0", + "semver": "^7.3.2", + "tapable": "^1.0.0" + }, + "engines": { + "node": ">=10", + "yarn": ">=1.0.0" + }, + "peerDependencies": { + "eslint": ">= 6", + "typescript": ">= 2.7", + "vue-template-compiler": "*", + "webpack": ">= 4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + }, + "vue-template-compiler": { + "optional": true + } + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/ajv": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz", + "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==", + "license": "MIT", + "peer": 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/fork-ts-checker-webpack-plugin/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/cosmiconfig": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "license": "MIT", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "license": "MIT", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/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==", + "license": "MIT" + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/schema-utils": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", + "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.4", + "ajv": "^6.12.2", + "ajv-keywords": "^3.4.1" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/form-data": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.4.tgz", + "integrity": "sha512-f0cRzm6dkyVYV3nPoooP8XlccPQukegwhAnpoLcXy+X+A8KfpGOoXwDr9FLZd3wzgLaBGQBE3lY93Zm/i1JvIQ==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", + "mime-types": "^2.1.35" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fraction.js": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-5.3.4.tgz", + "integrity": "sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==", + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "license": "MIT", + "engines": { + "node": ">= 0.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==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/fs-monkey": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.1.0.tgz", + "integrity": "sha512-QMUezzXWII9EV5aTFXW1UBVUO77wYPpjqIF8/AviUCThNeSYZykpoTixUeaNNBwmCev0AMDWMAni+f8Hxb1IFw==", + "license": "Unlicense" + }, + "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==", + "license": "ISC" + }, + "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, + "license": "MIT", + "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==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", + "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "functions-have-names": "^1.2.3", + "hasown": "^2.0.2", + "is-callable": "^1.2.7" + }, + "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==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/generator-function": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/generator-function/-/generator-function-2.0.1.tgz", + "integrity": "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-own-enumerable-property-symbols": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", + "license": "ISC" + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gh-pages": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/gh-pages/-/gh-pages-6.3.0.tgz", + "integrity": "sha512-Ot5lU6jK0Eb+sszG8pciXdjMXdBJ5wODvgjR+imihTqsUWF2K6dJ9HST55lgqcs8wWcw6o6wAsUzfcYRhJPXbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "async": "^3.2.4", + "commander": "^13.0.0", + "email-addresses": "^5.0.0", + "filenamify": "^4.3.0", + "find-cache-dir": "^3.3.1", + "fs-extra": "^11.1.1", + "globby": "^11.1.0" + }, + "bin": { + "gh-pages": "bin/gh-pages.js", + "gh-pages-clean": "bin/gh-pages-clean.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/gh-pages/node_modules/commander": { + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-13.1.0.tgz", + "integrity": "sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/gh-pages/node_modules/fs-extra": { + "version": "11.3.4", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.4.tgz", + "integrity": "sha512-CTXd6rk/M3/ULNQj8FBqBWHYBVYybQ3VPBw0xGKFe3tuH7ytT6ACnvzpIQ3UZtB8yvUKC2cXn1a+x+5EVQLovA==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", + "license": "ISC", + "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==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "license": "BSD-2-Clause" + }, + "node_modules/global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "license": "MIT", + "dependencies": { + "global-prefix": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "license": "MIT", + "dependencies": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "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==", + "license": "MIT", + "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.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "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==", + "license": "ISC" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "license": "MIT" + }, + "node_modules/gzip-size": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", + "license": "MIT", + "dependencies": { + "duplexer": "^0.1.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "license": "MIT" + }, + "node_modules/harmony-reflect": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.2.tgz", + "integrity": "sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g==", + "license": "(Apache-2.0 OR MPL-1.1)" + }, + "node_modules/has-bigints": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", + "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "license": "MIT", + "bin": { + "he": "bin/he" + } + }, + "node_modules/hoopy": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", + "integrity": "sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==", + "license": "MIT", + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/hpack.js/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" + }, + "node_modules/hpack.js/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/hpack.js/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "node_modules/hpack.js/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "whatwg-encoding": "^1.0.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/html-entities": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.6.0.tgz", + "integrity": "sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/mdevils" + }, + { + "type": "patreon", + "url": "https://patreon.com/mdevils" + } + ], + "license": "MIT" + }, + "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==", + "license": "MIT" + }, + "node_modules/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", + "license": "MIT", + "dependencies": { + "camel-case": "^4.1.2", + "clean-css": "^5.2.2", + "commander": "^8.3.0", + "he": "^1.2.0", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.10.0" + }, + "bin": { + "html-minifier-terser": "cli.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/html-webpack-plugin": { + "version": "5.6.6", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.6.6.tgz", + "integrity": "sha512-bLjW01UTrvoWTJQL5LsMRo1SypHW80FTm12OJRSnr3v6YHNhfe+1r0MYUZJMACxnCHURVnBWRwAsWs2yPU9Ezw==", + "license": "MIT", + "dependencies": { + "@types/html-minifier-terser": "^6.0.0", + "html-minifier-terser": "^6.0.2", + "lodash": "^4.17.21", + "pretty-error": "^4.0.0", + "tapable": "^2.0.0" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/html-webpack-plugin" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "webpack": "^5.20.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/htmlparser2": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + } + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", + "license": "MIT" + }, + "node_modules/http-errors": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", + "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", + "license": "MIT", + "dependencies": { + "depd": "~2.0.0", + "inherits": "~2.0.4", + "setprototypeof": "~1.2.0", + "statuses": "~2.0.2", + "toidentifier": "~1.0.1" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/http-parser-js": { + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.10.tgz", + "integrity": "sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA==", + "license": "MIT" + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "license": "MIT", + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/http-proxy-middleware": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.9.tgz", + "integrity": "sha512-c1IyJYLYppU574+YI7R4QyX2ystMtVXZwIdzazUIPIJsHuWNd+mho2j+bKoHftndicGj9yh+xjd+l0yj7VeT1Q==", + "license": "MIT", + "dependencies": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } + } + }, + "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==", + "license": "MIT", + "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==", + "license": "Apache-2.0", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "license": "ISC", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/idb": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/idb/-/idb-7.1.1.tgz", + "integrity": "sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==", + "license": "ISC" + }, + "node_modules/identity-obj-proxy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz", + "integrity": "sha512-00n6YnVHKrinT9t0d9+5yZC6UBNJANpYEQvL2LlX6Ab9lnmxzIRcEmTPuyGScvl1+jKuCICX1Z0Ab1pPKKdikA==", + "license": "MIT", + "dependencies": { + "harmony-reflect": "^1.4.6" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/immer": { + "version": "9.0.21", + "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz", + "integrity": "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/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==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/import-local": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", + "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", + "license": "MIT", + "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==", + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "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==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "license": "ISC", + "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==", + "license": "ISC" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "license": "ISC" + }, + "node_modules/internal-slot": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ipaddr.js": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.3.0.tgz", + "integrity": "sha512-Zv/pA+ciVFbCSBBjGfaKUya/CcGmUHzTydLMaTwrUUEM2DIEO3iZvueGxmacvmN50fGpGVKeTXpb2LcYQxeVdg==", + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "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==", + "license": "MIT" + }, + "node_modules/is-async-function": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", + "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", + "license": "MIT", + "dependencies": { + "async-function": "^1.0.0", + "call-bound": "^1.0.3", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", + "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", + "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finalizationregistry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", + "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-generator-function": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.2.tgz", + "integrity": "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.4", + "generator-function": "^2.0.0", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "license": "MIT" + }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "license": "MIT", + "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==", + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "license": "MIT" + }, + "node_modules/is-regex": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-root": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", + "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.16" + }, + "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==", + "license": "MIT" + }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", + "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "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==", + "license": "MIT", + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC" + }, + "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==", + "license": "BSD-3-Clause", + "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==", + "license": "BSD-3-Clause", + "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-instrument/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "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==", + "license": "BSD-3-Clause", + "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/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==", + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "license": "BSD-3-Clause", + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps/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==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-reports": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz", + "integrity": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==", + "license": "BSD-3-Clause", + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/iterator.prototype": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz", + "integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==", + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "get-proto": "^1.0.0", + "has-symbols": "^1.1.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/jake": { + "version": "10.9.4", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.4.tgz", + "integrity": "sha512-wpHYzhxiVQL+IV05BLE2Xn34zW1S223hvjtqk0+gsPrwd/8JNLXJgZZM/iPFsYc1xyphF+6M6EvdE5E9MBGkDA==", + "license": "Apache-2.0", + "dependencies": { + "async": "^3.2.6", + "filelist": "^1.0.4", + "picocolors": "^1.1.1" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz", + "integrity": "sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==", + "license": "MIT", + "peer": 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==", + "license": "MIT", + "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==", + "license": "MIT", + "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-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==", + "license": "MIT", + "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-config": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz", + "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==", + "license": "MIT", + "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-diff": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", + "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", + "license": "MIT", + "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-docblock": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz", + "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==", + "license": "MIT", + "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==", + "license": "MIT", + "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-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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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-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==", + "license": "MIT", + "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==", + "license": "MIT", + "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-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==", + "license": "MIT", + "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-mock": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz", + "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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-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==", + "license": "MIT", + "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-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==", + "license": "MIT", + "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-serializer": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", + "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", + "license": "MIT", + "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==", + "license": "MIT", + "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-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "license": "MIT", + "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-validate": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz", + "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==", + "license": "MIT", + "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-watch-typeahead": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jest-watch-typeahead/-/jest-watch-typeahead-1.1.0.tgz", + "integrity": "sha512-Va5nLSJTN7YFtC2jd+7wsoe1pNe5K4ShLux/E5iHEwlB9AxaxmggY7to9KUqKojhaJw3aXqt5WAb4jGPOolpEw==", + "license": "MIT", + "dependencies": { + "ansi-escapes": "^4.3.1", + "chalk": "^4.0.0", + "jest-regex-util": "^28.0.0", + "jest-watcher": "^28.0.0", + "slash": "^4.0.0", + "string-length": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "jest": "^27.0.0 || ^28.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@jest/console": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.3.tgz", + "integrity": "sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==", + "license": "MIT", + "dependencies": { + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3", + "slash": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@jest/console/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@jest/test-result": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.3.tgz", + "integrity": "sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg==", + "license": "MIT", + "dependencies": { + "@jest/console": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@jest/types": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.3.tgz", + "integrity": "sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==", + "license": "MIT", + "dependencies": { + "@jest/schemas": "^28.1.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@types/yargs": { + "version": "17.0.35", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.35.tgz", + "integrity": "sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==", + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/jest-watch-typeahead/node_modules/emittery": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", + "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-message-util": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz", + "integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^28.1.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^28.1.3", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-message-util/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-regex-util": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz", + "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==", + "license": "MIT", + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-util": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz", + "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", + "license": "MIT", + "dependencies": { + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-watcher": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.3.tgz", + "integrity": "sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g==", + "license": "MIT", + "dependencies": { + "@jest/test-result": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.10.2", + "jest-util": "^28.1.3", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-watcher/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==", + "license": "MIT", + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-watcher/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==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watch-typeahead/node_modules/pretty-format": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", + "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", + "license": "MIT", + "dependencies": { + "@jest/schemas": "^28.1.3", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "license": "MIT" + }, + "node_modules/jest-watch-typeahead/node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watch-typeahead/node_modules/string-length": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-5.0.1.tgz", + "integrity": "sha512-9Ep08KAMUn0OadnVaBuRdE2l615CQ508kr0XMadjClfYpdCyvrbFp6Taebo8yyxokQ4viUd/xPPUA4FGgUa0ow==", + "license": "MIT", + "dependencies": { + "char-regex": "^2.0.0", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watch-typeahead/node_modules/string-length/node_modules/char-regex": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-2.0.2.tgz", + "integrity": "sha512-cbGOjAptfM2LVmWhwRFHEKTPkLwNddVmuqYZQt895yXwAsWsXObCG+YN4DGQ/JBtT4GP1a1lPPdio2z413LmTg==", + "license": "MIT", + "engines": { + "node": ">=12.20" + } + }, + "node_modules/jest-watch-typeahead/node_modules/strip-ansi": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.2.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/node_modules/strip-ansi/node_modules/ansi-regex": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "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==", + "license": "MIT", + "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-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==", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/jiti": { + "version": "1.21.7", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", + "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", + "license": "MIT", + "peer": true, + "bin": { + "jiti": "bin/jiti.js" + } + }, + "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==", + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz", + "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==", + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "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==", + "license": "MIT", + "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": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT" + }, + "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==", + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonpath": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsonpath/-/jsonpath-1.3.0.tgz", + "integrity": "sha512-0kjkYHJBkAy50Z5QzArZ7udmvxrJzkpKYW27fiF//BrMY7TQibYLl+FYIXN2BiYmwMIVzSfD8aDRj6IzgBX2/w==", + "license": "MIT", + "dependencies": { + "esprima": "1.2.5", + "static-eval": "2.1.1", + "underscore": "1.13.6" + } + }, + "node_modules/jsonpath/node_modules/esprima": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.2.5.tgz", + "integrity": "sha512-S9VbPDU0adFErpDai3qDkjq8+G05ONtKzcyNrPKg/ZKa+tf879nX2KexNU95b31UoTJjRLInNBHHHjFPoCd7lQ==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/jsonpointer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", + "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jsx-ast-utils": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" + }, + "engines": { + "node": ">=4.0" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/klona": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", + "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/language-subtag-registry": { + "version": "0.3.23", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz", + "integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==", + "license": "CC0-1.0" + }, + "node_modules/language-tags": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz", + "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", + "license": "MIT", + "dependencies": { + "language-subtag-registry": "^0.3.20" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/launch-editor": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.13.2.tgz", + "integrity": "sha512-4VVDnbOpLXy/s8rdRCSXb+zfMeFR0WlJWpET1iA9CQdlZDfwyLjUuGQzXU4VeOoey6AicSAluWan7Etga6Kcmg==", + "license": "MIT", + "dependencies": { + "picocolors": "^1.1.1", + "shell-quote": "^1.8.3" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "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==", + "license": "MIT" + }, + "node_modules/loader-runner": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.1.tgz", + "integrity": "sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==", + "license": "MIT", + "engines": { + "node": ">=6.11.5" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "license": "MIT", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz", + "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==", + "license": "MIT" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "license": "MIT" + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "license": "MIT" + }, + "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==", + "license": "MIT" + }, + "node_modules/lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==", + "license": "MIT" + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", + "license": "MIT" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "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==", + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/lucide-react": { + "version": "0.368.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.368.0.tgz", + "integrity": "sha512-soryVrCjheZs8rbXKdINw9B8iPi5OajBJZMJ1HORig89ljcOcEokKKAgGbg3QWxSXel7JwHOfDFUdDHAKyUAMw==", + "license": "ISC", + "peerDependencies": { + "react": "^16.5.1 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/lz-string": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", + "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", + "license": "MIT", + "bin": { + "lz-string": "bin/bin.js" + } + }, + "node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "license": "MIT", + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "license": "BSD-3-Clause", + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/mdn-data": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", + "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==", + "license": "CC0-1.0" + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memfs": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", + "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", + "license": "Unlicense", + "dependencies": { + "fs-monkey": "^1.0.4" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/mini-css-extract-plugin": { + "version": "2.10.2", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.10.2.tgz", + "integrity": "sha512-AOSS0IdEB95ayVkxn5oGzNQwqAi2J0Jb/kKm43t7H73s8+f5873g0yuj0PNvK4dO75mu5DHg4nlgp4k6Kga8eg==", + "license": "MIT", + "dependencies": { + "schema-utils": "^4.0.0", + "tapable": "^2.2.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "license": "ISC" + }, + "node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "license": "ISC", + "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==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/multicast-dns": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "license": "MIT", + "dependencies": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "license": "MIT" + }, + "node_modules/natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "license": "MIT" + }, + "node_modules/negotiator": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", + "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "license": "MIT" + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "license": "MIT", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/node-exports-info": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/node-exports-info/-/node-exports-info-1.6.0.tgz", + "integrity": "sha512-pyFS63ptit/P5WqUkt+UUfe+4oevH+bFeIiPPdfb0pFeYEu/1ELnJu5l+5EcTKYL5M7zaAa7S8ddywgXypqKCw==", + "license": "MIT", + "dependencies": { + "array.prototype.flatmap": "^1.3.3", + "es-errors": "^1.3.0", + "object.entries": "^1.1.9", + "semver": "^6.3.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/node-exports-info/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/node-forge": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.4.0.tgz", + "integrity": "sha512-LarFH0+6VfriEhqMMcLX2F7SwSXeWwnEAJEsYm5QKWchiVYVvJyV9v7UDvUv+w5HO23ZpQTXDv/GxdDdMyOuoQ==", + "license": "(BSD-3-Clause OR GPL-2.0)", + "engines": { + "node": ">= 6.13.0" + } + }, + "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==", + "license": "MIT" + }, + "node_modules/node-releases": { + "version": "2.0.37", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.37.tgz", + "integrity": "sha512-1h5gKZCF+pO/o3Iqt5Jp7wc9rH3eJJ0+nh/CIoiRwjRxde/hAHyLPXYN4V3CqKAbiZPSeJFSWHmJsbkicta0Eg==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/nwsapi": { + "version": "2.2.23", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.23.tgz", + "integrity": "sha512-7wfH4sLbt4M0gCDzGE6vzQBo0bfTKjU7Sfpqy/7gs1qBfYz2vEJH6vXcBKpO3+6Yu1telwd0t9HpyOoLEQQbIQ==", + "license": "MIT" + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.9.tgz", + "integrity": "sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.getownpropertydescriptors": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.9.tgz", + "integrity": "sha512-mt8YM6XwsTTovI+kdZdHSxoyF2DI59up034orlC9NfweclcWOt7CVascNNLp6U+bjFVCVCIh9PwS76tDM/rH8g==", + "license": "MIT", + "dependencies": { + "array.prototype.reduce": "^1.0.8", + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.24.0", + "es-object-atoms": "^1.1.1", + "gopd": "^1.2.0", + "safe-array-concat": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.values": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", + "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "license": "MIT" + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.1.0.tgz", + "integrity": "sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "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==", + "license": "ISC", + "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==", + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "license": "MIT", + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/own-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", + "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.6", + "object-keys": "^1.1.1", + "safe-push-apply": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-retry": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", + "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "license": "MIT", + "dependencies": { + "@types/retry": "0.12.0", + "retry": "^0.13.1" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "license": "MIT", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "node_modules/path-to-regexp": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.13.tgz", + "integrity": "sha512-A/AGNMFN3c8bOlvV9RreMdrv7jsmF9XIfDeCd87+I8RNg6s78BhJxMu69NEMHBSJFxKidViTEdruRwEk/WIKqA==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", + "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", + "license": "MIT", + "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==", + "license": "MIT", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-up": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", + "license": "MIT", + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-up/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "license": "MIT", + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "license": "MIT", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "license": "MIT", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postcss": { + "version": "8.5.9", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.9.tgz", + "integrity": "sha512-7a70Nsot+EMX9fFU3064K/kdHWZqGVY+BADLyXc8Dfv+mTLLVl6JzJpPaCZ2kQL9gIJvKXSLMHhqdRRjwQeFtw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-attribute-case-insensitive": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.2.tgz", + "integrity": "sha512-XIidXV8fDr0kKt28vqki84fRK8VW8eTuIa4PChv2MqKuT6C9UjmSKzen6KaWhWEoYvwxFCa7n/tC1SZ3tyq4SQ==", + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-browser-comments": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-browser-comments/-/postcss-browser-comments-4.0.0.tgz", + "integrity": "sha512-X9X9/WN3KIvY9+hNERUqX9gncsgBA25XaeR+jshHz2j8+sYyHktHw1JdKuMjeLpGktXidqDhA7b/qm1mrBDmgg==", + "license": "CC0-1.0", + "engines": { + "node": ">=8" + }, + "peerDependencies": { + "browserslist": ">=4", + "postcss": ">=8" + } + }, + "node_modules/postcss-calc": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", + "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.0.9", + "postcss-value-parser": "^4.2.0" + }, + "peerDependencies": { + "postcss": "^8.2.2" + } + }, + "node_modules/postcss-clamp": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-clamp/-/postcss-clamp-4.1.0.tgz", + "integrity": "sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=7.6.0" + }, + "peerDependencies": { + "postcss": "^8.4.6" + } + }, + "node_modules/postcss-color-functional-notation": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.4.tgz", + "integrity": "sha512-2yrTAUZUab9s6CpxkxC4rVgFEVaR6/2Pipvi6qcgvnYiVqZcbDHEoBDhrXzyb7Efh2CCfHQNtcqWcIruDTIUeg==", + "license": "CC0-1.0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-color-hex-alpha": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.4.tgz", + "integrity": "sha512-nLo2DCRC9eE4w2JmuKgVA3fGL3d01kGq752pVALF68qpGLmx2Qrk91QTKkdUqqp45T1K1XV8IhQpcu1hoAQflQ==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-color-rebeccapurple": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.1.1.tgz", + "integrity": "sha512-pGxkuVEInwLHgkNxUc4sdg4g3py7zUeCQ9sMfwyHAT+Ezk8a4OaaVZ8lIY5+oNqA/BXXgLyXv0+5wHP68R79hg==", + "license": "CC0-1.0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-colormin": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.1.tgz", + "integrity": "sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0", + "colord": "^2.9.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-convert-values": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz", + "integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.21.4", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-custom-media": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-8.0.2.tgz", + "integrity": "sha512-7yi25vDAoHAkbhAzX9dHx2yc6ntS4jQvejrNcC+csQJAXjj15e7VcWfMgLqBNAbOvqi5uIa9huOVwdHbf+sKqg==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.3" + } + }, + "node_modules/postcss-custom-properties": { + "version": "12.1.11", + "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.11.tgz", + "integrity": "sha512-0IDJYhgU8xDv1KY6+VgUwuQkVtmYzRwu+dMjnmdMafXYv86SWqfxkc7qdDvWS38vsjaEtv8e0vGOUQrAiMBLpQ==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-custom-selectors": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-6.0.3.tgz", + "integrity": "sha512-fgVkmyiWDwmD3JbpCmB45SvvlCD6z9CG6Ie6Iere22W5aHea6oWa7EM2bpnv2Fj3I94L3VbtvX9KqwSi5aFzSg==", + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.3" + } + }, + "node_modules/postcss-dir-pseudo-class": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.5.tgz", + "integrity": "sha512-eqn4m70P031PF7ZQIvSgy9RSJ5uI2171O/OO/zcRNYpJbvaeKFUlar1aJ7rmgiQtbm0FSPsRewjpdS0Oew7MPA==", + "license": "CC0-1.0", + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-discard-comments": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", + "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", + "license": "MIT", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-duplicates": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", + "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", + "license": "MIT", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-empty": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", + "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", + "license": "MIT", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-overridden": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", + "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", + "license": "MIT", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-double-position-gradients": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.2.tgz", + "integrity": "sha512-GX+FuE/uBR6eskOK+4vkXgT6pDkexLokPaz/AbJna9s5Kzp/yl488pKPjhy0obB475ovfT1Wv8ho7U/cHNaRgQ==", + "license": "CC0-1.0", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-env-function": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-4.0.6.tgz", + "integrity": "sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA==", + "license": "CC0-1.0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-flexbugs-fixes": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-5.0.2.tgz", + "integrity": "sha512-18f9voByak7bTktR2QgDveglpn9DTbBWPUzSOe9g0N4WR/2eSt6Vrcbf0hmspvMI6YWGywz6B9f7jzpFNJJgnQ==", + "license": "MIT", + "peerDependencies": { + "postcss": "^8.1.4" + } + }, + "node_modules/postcss-focus-visible": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-6.0.4.tgz", + "integrity": "sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw==", + "license": "CC0-1.0", + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-focus-within": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-5.0.4.tgz", + "integrity": "sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ==", + "license": "CC0-1.0", + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-font-variant": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", + "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==", + "license": "MIT", + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-gap-properties": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-3.0.5.tgz", + "integrity": "sha512-IuE6gKSdoUNcvkGIqdtjtcMtZIFyXZhmFd5RUlg97iVEvp1BZKV5ngsAjCjrVy+14uhGBQl9tzmi1Qwq4kqVOg==", + "license": "CC0-1.0", + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-image-set-function": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-4.0.7.tgz", + "integrity": "sha512-9T2r9rsvYzm5ndsBE8WgtrMlIT7VbtTfE7b3BQnudUqnBcBo7L758oc+o+pdj/dUV0l5wjwSdjeOH2DZtfv8qw==", + "license": "CC0-1.0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-initial": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-4.0.1.tgz", + "integrity": "sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==", + "license": "MIT", + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.1.0.tgz", + "integrity": "sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-lab-function": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-4.2.1.tgz", + "integrity": "sha512-xuXll4isR03CrQsmxyz92LJB2xX9n+pZJ5jE9JgcnmsCammLyKdlzrBin+25dy6wIjfhJpKBAN80gsTlCgRk2w==", + "license": "CC0-1.0", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-loader": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.2.1.tgz", + "integrity": "sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==", + "license": "MIT", + "dependencies": { + "cosmiconfig": "^7.0.0", + "klona": "^2.0.5", + "semver": "^7.3.5" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "postcss": "^7.0.0 || ^8.0.1", + "webpack": "^5.0.0" + } + }, + "node_modules/postcss-logical": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-5.0.4.tgz", + "integrity": "sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==", + "license": "CC0-1.0", + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-media-minmax": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz", + "integrity": "sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-merge-longhand": { + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz", + "integrity": "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0", + "stylehacks": "^5.1.1" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-merge-rules": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.4.tgz", + "integrity": "sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^3.1.0", + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-font-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", + "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-gradients": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", + "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", + "license": "MIT", + "dependencies": { + "colord": "^2.9.1", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-params": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz", + "integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.21.4", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-selectors": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", + "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", + "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", + "license": "ISC", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz", + "integrity": "sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==", + "license": "MIT", + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^7.0.0", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default/node_modules/postcss-selector-parser": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-modules-scope": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz", + "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==", + "license": "ISC", + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope/node_modules/postcss-selector-parser": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "license": "ISC", + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-nested": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.1.1" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-nesting": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-10.2.0.tgz", + "integrity": "sha512-EwMkYchxiDiKUhlJGzWsD9b2zvq/r2SSubcRrgP+jujMXFzqvANLt16lJANC+5uZ6hjI7lpRmI6O8JIl+8l1KA==", + "license": "CC0-1.0", + "dependencies": { + "@csstools/selector-specificity": "^2.0.0", + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-normalize": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize/-/postcss-normalize-10.0.1.tgz", + "integrity": "sha512-+5w18/rDev5mqERcG3W5GZNMJa1eoYYNGo8gB7tEwaos0ajk3ZXAI4mHGcNT47NE+ZnZD1pEpUOFLvltIwmeJA==", + "license": "CC0-1.0", + "dependencies": { + "@csstools/normalize.css": "*", + "postcss-browser-comments": "^4", + "sanitize.css": "*" + }, + "engines": { + "node": ">= 12" + }, + "peerDependencies": { + "browserslist": ">= 4", + "postcss": ">= 8" + } + }, + "node_modules/postcss-normalize-charset": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", + "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", + "license": "MIT", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-display-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", + "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-positions": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz", + "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-repeat-style": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz", + "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-string": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", + "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-timing-functions": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", + "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-unicode": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz", + "integrity": "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.21.4", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", + "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", + "license": "MIT", + "dependencies": { + "normalize-url": "^6.0.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-whitespace": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", + "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-opacity-percentage": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/postcss-opacity-percentage/-/postcss-opacity-percentage-1.1.3.tgz", + "integrity": "sha512-An6Ba4pHBiDtyVpSLymUUERMo2cU7s+Obz6BTrS+gxkbnSBNKSuD0AVUc+CpBMrpVPKKfoVz0WQCX+Tnst0i4A==", + "funding": [ + { + "type": "kofi", + "url": "https://ko-fi.com/mrcgrtz" + }, + { + "type": "liberapay", + "url": "https://liberapay.com/mrcgrtz" + } + ], + "license": "MIT", + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-ordered-values": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz", + "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==", + "license": "MIT", + "dependencies": { + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-overflow-shorthand": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.4.tgz", + "integrity": "sha512-otYl/ylHK8Y9bcBnPLo3foYFLL6a6Ak+3EQBPOTR7luMYCOsiVTUk1iLvNf6tVPNGXcoL9Hoz37kpfriRIFb4A==", + "license": "CC0-1.0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-page-break": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz", + "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==", + "license": "MIT", + "peerDependencies": { + "postcss": "^8" + } + }, + "node_modules/postcss-place": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-7.0.5.tgz", + "integrity": "sha512-wR8igaZROA6Z4pv0d+bvVrvGY4GVHihBCBQieXFY3kuSuMyOmEnnfFzHl/tQuqHZkfkIVBEbDvYcFfHmpSet9g==", + "license": "CC0-1.0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-preset-env": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.8.3.tgz", + "integrity": "sha512-T1LgRm5uEVFSEF83vHZJV2z19lHg4yJuZ6gXZZkqVsqv63nlr6zabMH3l4Pc01FQCyfWVrh2GaUeCVy9Po+Aag==", + "license": "CC0-1.0", + "dependencies": { + "@csstools/postcss-cascade-layers": "^1.1.1", + "@csstools/postcss-color-function": "^1.1.1", + "@csstools/postcss-font-format-keywords": "^1.0.1", + "@csstools/postcss-hwb-function": "^1.0.2", + "@csstools/postcss-ic-unit": "^1.0.1", + "@csstools/postcss-is-pseudo-class": "^2.0.7", + "@csstools/postcss-nested-calc": "^1.0.0", + "@csstools/postcss-normalize-display-values": "^1.0.1", + "@csstools/postcss-oklab-function": "^1.1.1", + "@csstools/postcss-progressive-custom-properties": "^1.3.0", + "@csstools/postcss-stepped-value-functions": "^1.0.1", + "@csstools/postcss-text-decoration-shorthand": "^1.0.0", + "@csstools/postcss-trigonometric-functions": "^1.0.2", + "@csstools/postcss-unset-value": "^1.0.2", + "autoprefixer": "^10.4.13", + "browserslist": "^4.21.4", + "css-blank-pseudo": "^3.0.3", + "css-has-pseudo": "^3.0.4", + "css-prefers-color-scheme": "^6.0.3", + "cssdb": "^7.1.0", + "postcss-attribute-case-insensitive": "^5.0.2", + "postcss-clamp": "^4.1.0", + "postcss-color-functional-notation": "^4.2.4", + "postcss-color-hex-alpha": "^8.0.4", + "postcss-color-rebeccapurple": "^7.1.1", + "postcss-custom-media": "^8.0.2", + "postcss-custom-properties": "^12.1.10", + "postcss-custom-selectors": "^6.0.3", + "postcss-dir-pseudo-class": "^6.0.5", + "postcss-double-position-gradients": "^3.1.2", + "postcss-env-function": "^4.0.6", + "postcss-focus-visible": "^6.0.4", + "postcss-focus-within": "^5.0.4", + "postcss-font-variant": "^5.0.0", + "postcss-gap-properties": "^3.0.5", + "postcss-image-set-function": "^4.0.7", + "postcss-initial": "^4.0.1", + "postcss-lab-function": "^4.2.1", + "postcss-logical": "^5.0.4", + "postcss-media-minmax": "^5.0.0", + "postcss-nesting": "^10.2.0", + "postcss-opacity-percentage": "^1.1.2", + "postcss-overflow-shorthand": "^3.0.4", + "postcss-page-break": "^3.0.4", + "postcss-place": "^7.0.5", + "postcss-pseudo-class-any-link": "^7.1.6", + "postcss-replace-overflow-wrap": "^4.0.0", + "postcss-selector-not": "^6.0.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-pseudo-class-any-link": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.6.tgz", + "integrity": "sha512-9sCtZkO6f/5ML9WcTLcIyV1yz9D1rf0tWc+ulKcvV30s0iZKS/ONyETvoWsr6vnrmW+X+KmuK3gV/w5EWnT37w==", + "license": "CC0-1.0", + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-reduce-initial": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.2.tgz", + "integrity": "sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-reduce-transforms": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", + "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-replace-overflow-wrap": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", + "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==", + "license": "MIT", + "peerDependencies": { + "postcss": "^8.0.3" + } + }, + "node_modules/postcss-selector-not": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-6.0.1.tgz", + "integrity": "sha512-1i9affjAe9xu/y9uqWH+tD4r6/hDaXJruk8xn2x1vzxC2U3J3LKO3zJW4CyxlNhA56pADJ/djpEwpH1RClI2rQ==", + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "license": "MIT", + "peer": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-svgo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz", + "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0", + "svgo": "^2.7.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-svgo/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/postcss-svgo/node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/postcss-svgo/node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "license": "CC0-1.0" + }, + "node_modules/postcss-svgo/node_modules/sax": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.6.0.tgz", + "integrity": "sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=11.0.0" + } + }, + "node_modules/postcss-svgo/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==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-svgo/node_modules/svgo": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.2.tgz", + "integrity": "sha512-TyzE4NVGLUFy+H/Uy4N6c3G0HEeprsVfge6Lmq+0FdQQ/zqoVYB62IsBZORsiL+o96s6ff/V6/3UQo/C0cgCAA==", + "license": "MIT", + "dependencies": { + "commander": "^7.2.0", + "css-select": "^4.1.3", + "css-tree": "^1.1.3", + "csso": "^4.2.0", + "picocolors": "^1.0.0", + "sax": "^1.5.0", + "stable": "^0.1.8" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/postcss-unique-selectors": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", + "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/pretty-bytes": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pretty-error": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", + "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", + "license": "MIT", + "dependencies": { + "lodash": "^4.17.20", + "renderkid": "^3.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==", + "license": "MIT", + "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/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "license": "MIT" + }, + "node_modules/promise": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", + "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", + "license": "MIT", + "dependencies": { + "asap": "~2.0.6" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/prop-types/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-addr/node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/psl": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz", + "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==", + "license": "MIT", + "dependencies": { + "punycode": "^2.3.1" + }, + "funding": { + "url": "https://github.com/sponsors/lupomontero" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", + "deprecated": "You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other.\n\n(For a CapTP with native promises, see @endo/eventual-send and @endo/captp)", + "license": "MIT", + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" + } + }, + "node_modules/qs": { + "version": "6.14.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.2.tgz", + "integrity": "sha512-V/yCWTTF7VJ9hIh18Ugr2zhJMP01MY7c5kh4J870L7imm6/DIzBsNLTXzMwUA3yZ5b/KBqLx8Kp3uRvd7xSe3Q==", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "license": "MIT" + }, + "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==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/raf": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", + "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", + "license": "MIT", + "dependencies": { + "performance-now": "^2.1.0" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.3.tgz", + "integrity": "sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==", + "license": "MIT", + "dependencies": { + "bytes": "~3.1.2", + "http-errors": "~2.0.1", + "iconv-lite": "~0.4.24", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/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==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-app-polyfill": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/react-app-polyfill/-/react-app-polyfill-3.0.0.tgz", + "integrity": "sha512-sZ41cxiU5llIB003yxxQBYrARBqe0repqPTTYBTmMqTz9szeBbE37BehCE891NZsmdZqqP+xWKdT3eo3vOzN8w==", + "license": "MIT", + "dependencies": { + "core-js": "^3.19.2", + "object-assign": "^4.1.1", + "promise": "^8.1.0", + "raf": "^3.4.1", + "regenerator-runtime": "^0.13.9", + "whatwg-fetch": "^3.6.2" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/react-dev-utils": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz", + "integrity": "sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.16.0", + "address": "^1.1.2", + "browserslist": "^4.18.1", + "chalk": "^4.1.2", + "cross-spawn": "^7.0.3", + "detect-port-alt": "^1.1.6", + "escape-string-regexp": "^4.0.0", + "filesize": "^8.0.6", + "find-up": "^5.0.0", + "fork-ts-checker-webpack-plugin": "^6.5.0", + "global-modules": "^2.0.0", + "globby": "^11.0.4", + "gzip-size": "^6.0.0", + "immer": "^9.0.7", + "is-root": "^2.1.0", + "loader-utils": "^3.2.0", + "open": "^8.4.0", + "pkg-up": "^3.1.0", + "prompts": "^2.4.2", + "react-error-overlay": "^6.0.11", + "recursive-readdir": "^2.2.2", + "shell-quote": "^1.7.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/react-dev-utils/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==", + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/react-dev-utils/node_modules/loader-utils": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.3.1.tgz", + "integrity": "sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==", + "license": "MIT", + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/react-dev-utils/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==", + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/react-dev-utils/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==", + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/react-dev-utils/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==", + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "license": "MIT", + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, + "node_modules/react-error-overlay": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.1.0.tgz", + "integrity": "sha512-SN/U6Ytxf1QGkw/9ve5Y+NxBbZM6Ht95tuXNMKs8EJyFa/Vy/+Co3stop3KBHARfn/giv+Lj1uUnTfOJ3moFEQ==", + "license": "MIT" + }, + "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==", + "license": "MIT" + }, + "node_modules/react-refresh": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.11.0.tgz", + "integrity": "sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-router": { + "version": "6.30.3", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.30.3.tgz", + "integrity": "sha512-XRnlbKMTmktBkjCLE8/XcZFlnHvr2Ltdr1eJX4idL55/9BbORzyZEaIkBFDhFGCEWBBItsVrDxwx3gnisMitdw==", + "license": "MIT", + "dependencies": { + "@remix-run/router": "1.23.2" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8" + } + }, + "node_modules/react-router-dom": { + "version": "6.30.3", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.30.3.tgz", + "integrity": "sha512-pxPcv1AczD4vso7G4Z3TKcvlxK7g7TNt3/FNGMhfqyntocvYKj+GCatfigGDjbLozC4baguJ0ReCigoDJXb0ag==", + "license": "MIT", + "dependencies": { + "@remix-run/router": "1.23.2", + "react-router": "6.30.3" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8", + "react-dom": ">=16.8" + } + }, + "node_modules/react-scripts": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-5.0.1.tgz", + "integrity": "sha512-8VAmEm/ZAwQzJ+GOMLbBsTdDKOpuZh7RPs0UymvBR2vRk4iZWCskjbFnxqjrzoIvlNNRZ3QJFx6/qDSi6zSnaQ==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.16.0", + "@pmmmwh/react-refresh-webpack-plugin": "^0.5.3", + "@svgr/webpack": "^5.5.0", + "babel-jest": "^27.4.2", + "babel-loader": "^8.2.3", + "babel-plugin-named-asset-import": "^0.3.8", + "babel-preset-react-app": "^10.0.1", + "bfj": "^7.0.2", + "browserslist": "^4.18.1", + "camelcase": "^6.2.1", + "case-sensitive-paths-webpack-plugin": "^2.4.0", + "css-loader": "^6.5.1", + "css-minimizer-webpack-plugin": "^3.2.0", + "dotenv": "^10.0.0", + "dotenv-expand": "^5.1.0", + "eslint": "^8.3.0", + "eslint-config-react-app": "^7.0.1", + "eslint-webpack-plugin": "^3.1.1", + "file-loader": "^6.2.0", + "fs-extra": "^10.0.0", + "html-webpack-plugin": "^5.5.0", + "identity-obj-proxy": "^3.0.0", + "jest": "^27.4.3", + "jest-resolve": "^27.4.2", + "jest-watch-typeahead": "^1.0.0", + "mini-css-extract-plugin": "^2.4.5", + "postcss": "^8.4.4", + "postcss-flexbugs-fixes": "^5.0.2", + "postcss-loader": "^6.2.1", + "postcss-normalize": "^10.0.1", + "postcss-preset-env": "^7.0.1", + "prompts": "^2.4.2", + "react-app-polyfill": "^3.0.0", + "react-dev-utils": "^12.0.1", + "react-refresh": "^0.11.0", + "resolve": "^1.20.0", + "resolve-url-loader": "^4.0.0", + "sass-loader": "^12.3.0", + "semver": "^7.3.5", + "source-map-loader": "^3.0.0", + "style-loader": "^3.3.1", + "tailwindcss": "^3.0.2", + "terser-webpack-plugin": "^5.2.5", + "webpack": "^5.64.4", + "webpack-dev-server": "^4.6.0", + "webpack-manifest-plugin": "^4.0.2", + "workbox-webpack-plugin": "^6.4.1" + }, + "bin": { + "react-scripts": "bin/react-scripts.js" + }, + "engines": { + "node": ">=14.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + }, + "peerDependencies": { + "react": ">= 16", + "typescript": "^3.2.1 || ^4" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "license": "MIT", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/recursive-readdir": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz", + "integrity": "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==", + "license": "MIT", + "dependencies": { + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "license": "MIT", + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", + "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.1", + "which-builtin-type": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "license": "MIT" + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.2.tgz", + "integrity": "sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==", + "license": "MIT", + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", + "license": "MIT" + }, + "node_modules/regex-parser": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.3.1.tgz", + "integrity": "sha512-yXLRqatcCuKtVHsWrNg0JL3l1zGfdXeEvDa0bdu4tCDQw0RpMDZsqbkyRTUnKMR0tXF627V2oEWjBEaEdqTwtQ==", + "license": "MIT" + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpu-core": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.4.0.tgz", + "integrity": "sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==", + "license": "MIT", + "dependencies": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.2.2", + "regjsgen": "^0.8.0", + "regjsparser": "^0.13.0", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.2.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", + "license": "MIT" + }, + "node_modules/regjsparser": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.13.1.tgz", + "integrity": "sha512-dLsljMd9sqwRkby8zhO1gSg3PnJIBFid8f4CQj/sXx+7cKx+E7u0PKhZ+U4wmhx7EfmtvnA318oVaIkAB1lRJw==", + "license": "BSD-2-Clause", + "dependencies": { + "jsesc": "~3.1.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/renderkid": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", + "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", + "license": "MIT", + "dependencies": { + "css-select": "^4.1.3", + "dom-converter": "^0.2.0", + "htmlparser2": "^6.1.0", + "lodash": "^4.17.21", + "strip-ansi": "^6.0.1" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "node_modules/resolve": { + "version": "1.22.11", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", + "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "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==", + "license": "MIT", + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-url-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-4.0.0.tgz", + "integrity": "sha512-05VEMczVREcbtT7Bz+C+96eUO5HDNvdthIiMB34t7FcF8ehcu4wC0sSgPUubs3XW2Q3CNLJk/BJrCU9wVRymiA==", + "license": "MIT", + "dependencies": { + "adjust-sourcemap-loader": "^4.0.0", + "convert-source-map": "^1.7.0", + "loader-utils": "^2.0.0", + "postcss": "^7.0.35", + "source-map": "0.6.1" + }, + "engines": { + "node": ">=8.9" + }, + "peerDependencies": { + "rework": "1.0.1", + "rework-visit": "1.0.0" + }, + "peerDependenciesMeta": { + "rework": { + "optional": true + }, + "rework-visit": { + "optional": true + } + } + }, + "node_modules/resolve-url-loader/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==", + "license": "MIT" + }, + "node_modules/resolve-url-loader/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "license": "ISC" + }, + "node_modules/resolve-url-loader/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "license": "MIT", + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/resolve-url-loader/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==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "license": "MIT", + "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==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "2.80.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.80.0.tgz", + "integrity": "sha512-cIFJOD1DESzpjOBl763Kp1AH7UE/0fcdHe6rZXUdQ9c50uvgigvW97u3IcSeBwOkgqL/PXPBktBCh0KEu5L8XQ==", + "license": "MIT", + "peer": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "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", + "license": "MIT", + "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/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==", + "license": "MIT", + "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/serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "license": "BSD-3-Clause", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "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==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-array-concat": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", + "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "has-symbols": "^1.1.0", + "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==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safe-push-apply": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", + "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-regex-test": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" + }, + "engines": { + "node": ">= 0.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==", + "license": "MIT" + }, + "node_modules/sanitize.css": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/sanitize.css/-/sanitize.css-13.0.0.tgz", + "integrity": "sha512-ZRwKbh/eQ6w9vmTjkuG0Ioi3HBwPFce0O+v//ve+aOq1oeCy7jMV2qzzAlpsNuqpqCBjjriM1lbtZbF/Q8jVyA==", + "license": "CC0-1.0" + }, + "node_modules/sass-loader": { + "version": "12.6.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.6.0.tgz", + "integrity": "sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==", + "license": "MIT", + "dependencies": { + "klona": "^2.0.4", + "neo-async": "^2.6.2" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "fibers": ">= 3.1.0", + "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0", + "sass": "^1.3.0", + "sass-embedded": "*", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "fibers": { + "optional": true + }, + "node-sass": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + } + } + }, + "node_modules/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "license": "ISC" + }, + "node_modules/saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "license": "ISC", + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/schema-utils": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz", + "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", + "license": "MIT" + }, + "node_modules/selfsigned": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", + "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", + "license": "MIT", + "dependencies": { + "@types/node-forge": "^1.3.0", + "node-forge": "^1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/send": { + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.2.tgz", + "integrity": "sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "~0.5.2", + "http-errors": "~2.0.1", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "~2.4.1", + "range-parser": "~1.2.1", + "statuses": "~2.0.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "license": "BSD-3-Clause", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-index": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.2.tgz", + "integrity": "sha512-KDj11HScOaLmrPxl70KYNW1PksP4Nb/CLL2yvC+Qd2kHMPEEpfc4Re2e4FOay+bC/+XQl/7zAcWON3JVo5v3KQ==", + "license": "MIT", + "dependencies": { + "accepts": "~1.3.8", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.8.0", + "mime-types": "~2.1.35", + "parseurl": "~1.3.3" + }, + "engines": { + "node": ">= 0.8.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/serve-index/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/serve-index/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "license": "MIT", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/serve-index/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-static": { + "version": "1.16.3", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.3.tgz", + "integrity": "sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==", + "license": "MIT", + "dependencies": { + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "~0.19.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-proto": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", + "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz", + "integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz", + "integrity": "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "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==", + "license": "ISC" + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "license": "MIT" + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "license": "MIT", + "dependencies": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "node_modules/source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", + "license": "MIT" + }, + "node_modules/source-map": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", + "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", + "license": "BSD-3-Clause", + "engines": { + "node": ">= 12" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-loader": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-3.0.2.tgz", + "integrity": "sha512-BokxPoLjyl3iOrgkWaakaxqnelAJSS+0V+De0kKIq6lyWrXuiPgYTGp6z3iHmqljKAaLXwZa+ctD8GccRJeVvg==", + "license": "MIT", + "dependencies": { + "abab": "^2.0.5", + "iconv-lite": "^0.6.3", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.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==", + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/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==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "deprecated": "Please use @jridgewell/sourcemap-codec instead", + "license": "MIT" + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "license": "MIT", + "dependencies": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "license": "MIT", + "dependencies": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "license": "BSD-3-Clause" + }, + "node_modules/stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/stackframe": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", + "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==", + "license": "MIT" + }, + "node_modules/static-eval": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.1.1.tgz", + "integrity": "sha512-MgWpQ/ZjGieSVB3eOJVs4OA2LT/q1vx98KPCTTQPzq/aLr0YUXTsgryTXr4SLfR0ZfUUCiedM9n/ABeDIyy4mA==", + "license": "MIT", + "dependencies": { + "escodegen": "^2.1.0" + } + }, + "node_modules/statuses": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/stop-iteration-iterator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", + "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "internal-slot": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-natural-compare": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/string-natural-compare/-/string-natural-compare-3.0.1.tgz", + "integrity": "sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width/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==", + "license": "MIT" + }, + "node_modules/string.prototype.includes": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz", + "integrity": "sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz", + "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.6", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "regexp.prototype.flags": "^1.5.3", + "set-function-name": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.repeat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", + "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", + "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-data-property": "^1.1.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-object-atoms": "^1.0.0", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", + "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/stringify-object": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", + "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", + "license": "BSD-2-Clause", + "dependencies": { + "get-own-enumerable-property-symbols": "^3.0.0", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz", + "integrity": "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "license": "MIT", + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-outer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", + "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-outer/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, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/style-loader": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.4.tgz", + "integrity": "sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==", + "license": "MIT", + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/stylehacks": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz", + "integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.21.4", + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/sucrase": { + "version": "3.35.1", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.1.tgz", + "integrity": "sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "tinyglobby": "^0.2.11", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/sucrase/node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", + "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.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==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svg-parser": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", + "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==", + "license": "MIT" + }, + "node_modules/svgo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", + "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", + "deprecated": "This SVGO version is no longer supported. Upgrade to v2.x.x.", + "license": "MIT", + "dependencies": { + "chalk": "^2.4.1", + "coa": "^2.0.2", + "css-select": "^2.0.0", + "css-select-base-adapter": "^0.1.1", + "css-tree": "1.0.0-alpha.37", + "csso": "^4.0.2", + "js-yaml": "^3.13.1", + "mkdirp": "~0.5.1", + "object.values": "^1.1.0", + "sax": "~1.2.4", + "stable": "^0.1.8", + "unquote": "~1.1.1", + "util.promisify": "~1.0.0" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/svgo/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==", + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/svgo/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==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/svgo/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==", + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/svgo/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==", + "license": "MIT" + }, + "node_modules/svgo/node_modules/css-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", + "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^3.2.1", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" + } + }, + "node_modules/svgo/node_modules/css-what": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", + "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==", + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/svgo/node_modules/dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "license": "MIT", + "dependencies": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + } + }, + "node_modules/svgo/node_modules/domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "node_modules/svgo/node_modules/domutils/node_modules/domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", + "license": "BSD-2-Clause" + }, + "node_modules/svgo/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==", + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/svgo/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==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/svgo/node_modules/nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "~1.0.0" + } + }, + "node_modules/svgo/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==", + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "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==", + "license": "MIT" + }, + "node_modules/tailwindcss": { + "version": "3.4.19", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.19.tgz", + "integrity": "sha512-3ofp+LL8E+pK/JuPLPggVAIaEuhvIz4qNcf3nA1Xn2o/7fb7s/TYpHhwGDv1ZU3PkBluUVaF8PyCHcm48cKLWQ==", + "license": "MIT", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.6.0", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.2", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.7", + "lilconfig": "^3.1.3", + "micromatch": "^4.0.8", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.1.1", + "postcss": "^8.4.47", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.2 || ^5.0 || ^6.0", + "postcss-nested": "^6.2.0", + "postcss-selector-parser": "^6.1.2", + "resolve": "^1.22.8", + "sucrase": "^3.35.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tailwindcss/node_modules/lilconfig": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/tailwindcss/node_modules/postcss-load-config": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-6.0.1.tgz", + "integrity": "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "lilconfig": "^3.1.1" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "jiti": ">=1.21.0", + "postcss": ">=8.0.9", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + }, + "postcss": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/tapable": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.2.tgz", + "integrity": "sha512-1MOpMXuhGzGL5TTCZFItxCc0AARf1EZFQkGqMm7ERKj8+Hgr5oLvJOVFcC+lRmR8hCe2S3jC4T5D7Vg/d7/fhA==", + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/temp-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", + "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/tempy": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.6.0.tgz", + "integrity": "sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==", + "license": "MIT", + "dependencies": { + "is-stream": "^2.0.0", + "temp-dir": "^2.0.0", + "type-fest": "^0.16.0", + "unique-string": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tempy/node_modules/type-fest": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", + "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "license": "MIT", + "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.46.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.46.1.tgz", + "integrity": "sha512-vzCjQO/rgUuK9sf8VJZvjqiqiHFaZLnOiimmUuOKODxWL8mm/xua7viT7aqX7dgPY60otQjUotzFMmCB4VdmqQ==", + "license": "BSD-2-Clause", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.15.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.4.0.tgz", + "integrity": "sha512-Bn5vxm48flOIfkdl5CaD2+1CiUVbonWQ3KQPyP7/EuIl9Gbzq/gQFOzaMFUEgVjB1396tcK0SG8XcNJ/2kDH8g==", + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.25", + "jest-worker": "^27.4.5", + "schema-utils": "^4.3.0", + "terser": "^5.31.1" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser/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==", + "license": "MIT" + }, + "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==", + "license": "ISC", + "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==", + "license": "MIT" + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "license": "MIT", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/throat": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.2.tgz", + "integrity": "sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ==", + "license": "MIT" + }, + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "license": "MIT" + }, + "node_modules/tinyglobby": { + "version": "0.2.16", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.16.tgz", + "integrity": "sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==", + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyglobby/node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "license": "BSD-3-Clause" + }, + "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==", + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tough-cookie": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz", + "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", + "license": "BSD-3-Clause", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/trim-repeated": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", + "integrity": "sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/trim-repeated/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, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/tryer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz", + "integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==", + "license": "MIT" + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "license": "Apache-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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "license": "MIT", + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "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==", + "license": "(MIT OR CC0-1.0)", + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "license": "MIT", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", + "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", + "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.15", + "reflect.getprototypeof": "^1.0.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", + "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0", + "reflect.getprototypeof": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" + }, + "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==", + "license": "MIT", + "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==", + "license": "Apache-2.0", + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/unbox-primitive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", + "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-bigints": "^1.0.2", + "has-symbols": "^1.1.0", + "which-boxed-primitive": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/underscore": { + "version": "1.13.6", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz", + "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==", + "license": "MIT" + }, + "node_modules/undici-types": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz", + "integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==", + "license": "MIT" + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", + "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "license": "MIT", + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.1.tgz", + "integrity": "sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.2.0.tgz", + "integrity": "sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "license": "MIT", + "dependencies": { + "crypto-random-string": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/unquote": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", + "integrity": "sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==", + "license": "MIT" + }, + "node_modules/upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "license": "MIT", + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", + "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" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "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==", + "license": "BSD-2-Clause", + "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==", + "license": "MIT", + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" + }, + "node_modules/util.promisify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", + "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.2", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/utila": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", + "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==", + "license": "MIT" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "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==", + "license": "ISC", + "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==", + "license": "MIT" + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", + "engines": { + "node": ">= 0.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.", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "Apache-2.0", + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/watchpack": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.5.1.tgz", + "integrity": "sha512-Zn5uXdcFNIA1+1Ei5McRd+iRzfhENPCe7LeABkJtNulSxjma+l7ltNx55BWZkRlwRnpOgHqxnjyaDgJnNXnqzg==", + "license": "MIT", + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "license": "MIT", + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/web-vitals": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-2.1.4.tgz", + "integrity": "sha512-sVWcwhU5mX6crfI5Vd2dC4qchyTqxV8URinzt25XqVh+bHEPGH4C3NPrNionCP7Obx59wrYEbNlw4Z8sjALzZg==", + "license": "Apache-2.0" + }, + "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==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=10.4" + } + }, + "node_modules/webpack": { + "version": "5.106.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.106.0.tgz", + "integrity": "sha512-Pkx5joZ9RrdgO5LBkyX1L2ZAJeK/Taz3vqZ9CbcP0wS5LEMx5QkKsEwLl29QJfihZ+DKRBFldzy1O30pJ1MDpA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/eslint-scope": "^3.7.7", + "@types/estree": "^1.0.8", + "@types/json-schema": "^7.0.15", + "@webassemblyjs/ast": "^1.14.1", + "@webassemblyjs/wasm-edit": "^1.14.1", + "@webassemblyjs/wasm-parser": "^1.14.1", + "acorn": "^8.16.0", + "acorn-import-phases": "^1.0.3", + "browserslist": "^4.28.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.20.0", + "es-module-lexer": "^2.0.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.11", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.3.1", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^4.3.3", + "tapable": "^2.3.0", + "terser-webpack-plugin": "^5.3.17", + "watchpack": "^2.5.1", + "webpack-sources": "^3.3.4" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-middleware": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz", + "integrity": "sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==", + "license": "MIT", + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^3.4.3", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/webpack-dev-server": { + "version": "4.15.2", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.2.tgz", + "integrity": "sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/bonjour": "^3.5.9", + "@types/connect-history-api-fallback": "^1.3.5", + "@types/express": "^4.17.13", + "@types/serve-index": "^1.9.1", + "@types/serve-static": "^1.13.10", + "@types/sockjs": "^0.3.33", + "@types/ws": "^8.5.5", + "ansi-html-community": "^0.0.8", + "bonjour-service": "^1.0.11", + "chokidar": "^3.5.3", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^2.0.0", + "default-gateway": "^6.0.3", + "express": "^4.17.3", + "graceful-fs": "^4.2.6", + "html-entities": "^2.3.2", + "http-proxy-middleware": "^2.0.3", + "ipaddr.js": "^2.0.1", + "launch-editor": "^2.6.0", + "open": "^8.0.9", + "p-retry": "^4.5.0", + "rimraf": "^3.0.2", + "schema-utils": "^4.0.0", + "selfsigned": "^2.1.1", + "serve-index": "^1.9.1", + "sockjs": "^0.3.24", + "spdy": "^4.0.2", + "webpack-dev-middleware": "^5.3.4", + "ws": "^8.13.0" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.37.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + }, + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/ws": { + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.20.0.tgz", + "integrity": "sha512-sAt8BhgNbzCtgGbt2OxmpuryO63ZoDk/sqaB/znQm94T4fCEsy/yV+7CdC1kJhOU9lboAEU7R3kquuycDoibVA==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/webpack-manifest-plugin": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/webpack-manifest-plugin/-/webpack-manifest-plugin-4.1.1.tgz", + "integrity": "sha512-YXUAwxtfKIJIKkhg03MKuiFAD72PlrqCiwdwO4VEXdRO5V0ORCNwaOwAZawPZalCbmH9kBDmXnNeQOw+BIEiow==", + "license": "MIT", + "dependencies": { + "tapable": "^2.0.0", + "webpack-sources": "^2.2.0" + }, + "engines": { + "node": ">=12.22.0" + }, + "peerDependencies": { + "webpack": "^4.44.2 || ^5.47.0" + } + }, + "node_modules/webpack-manifest-plugin/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==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-manifest-plugin/node_modules/webpack-sources": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.3.1.tgz", + "integrity": "sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA==", + "license": "MIT", + "dependencies": { + "source-list-map": "^2.0.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack-sources": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.3.4.tgz", + "integrity": "sha512-7tP1PdV4vF+lYPnkMR0jMY5/la2ub5Fc/8VQrrU+lXkiM6C4TjVfGw7iKfyhnTQOsD+6Q/iKw0eFciziRgD58Q==", + "license": "MIT", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/webpack/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "license": "Apache-2.0", + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "license": "Apache-2.0", + "engines": { + "node": ">=0.8.0" + } + }, + "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==", + "deprecated": "Use @exodus/bytes instead for a more spec-conformant and faster implementation", + "license": "MIT", + "dependencies": { + "iconv-lite": "0.4.24" + } + }, + "node_modules/whatwg-encoding/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==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/whatwg-fetch": { + "version": "3.6.20", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz", + "integrity": "sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==", + "license": "MIT" + }, + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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==", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", + "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", + "license": "MIT", + "dependencies": { + "is-bigint": "^1.1.0", + "is-boolean-object": "^1.2.1", + "is-number-object": "^1.1.1", + "is-string": "^1.1.1", + "is-symbol": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", + "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.1.0", + "is-finalizationregistry": "^1.1.0", + "is-generator-function": "^1.0.10", + "is-regex": "^1.2.1", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.1.0", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "license": "MIT", + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.20", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.20.tgz", + "integrity": "sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==", + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "for-each": "^0.3.5", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/workbox-background-sync": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-6.6.0.tgz", + "integrity": "sha512-jkf4ZdgOJxC9u2vztxLuPT/UjlH7m/nWRQ/MgGL0v8BJHoZdVGJd18Kck+a0e55wGXdqyHO+4IQTk0685g4MUw==", + "license": "MIT", + "dependencies": { + "idb": "^7.0.1", + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-broadcast-update": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-6.6.0.tgz", + "integrity": "sha512-nm+v6QmrIFaB/yokJmQ/93qIJ7n72NICxIwQwe5xsZiV2aI93MGGyEyzOzDPVz5THEr5rC3FJSsO3346cId64Q==", + "license": "MIT", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-build": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-6.6.0.tgz", + "integrity": "sha512-Tjf+gBwOTuGyZwMz2Nk/B13Fuyeo0Q84W++bebbVsfr9iLkDSo6j6PST8tET9HYA58mlRXwlMGpyWO8ETJiXdQ==", + "license": "MIT", + "dependencies": { + "@apideck/better-ajv-errors": "^0.3.1", + "@babel/core": "^7.11.1", + "@babel/preset-env": "^7.11.0", + "@babel/runtime": "^7.11.2", + "@rollup/plugin-babel": "^5.2.0", + "@rollup/plugin-node-resolve": "^11.2.1", + "@rollup/plugin-replace": "^2.4.1", + "@surma/rollup-plugin-off-main-thread": "^2.2.3", + "ajv": "^8.6.0", + "common-tags": "^1.8.0", + "fast-json-stable-stringify": "^2.1.0", + "fs-extra": "^9.0.1", + "glob": "^7.1.6", + "lodash": "^4.17.20", + "pretty-bytes": "^5.3.0", + "rollup": "^2.43.1", + "rollup-plugin-terser": "^7.0.0", + "source-map": "^0.8.0-beta.0", + "stringify-object": "^3.3.0", + "strip-comments": "^2.0.1", + "tempy": "^0.6.0", + "upath": "^1.2.0", + "workbox-background-sync": "6.6.0", + "workbox-broadcast-update": "6.6.0", + "workbox-cacheable-response": "6.6.0", + "workbox-core": "6.6.0", + "workbox-expiration": "6.6.0", + "workbox-google-analytics": "6.6.0", + "workbox-navigation-preload": "6.6.0", + "workbox-precaching": "6.6.0", + "workbox-range-requests": "6.6.0", + "workbox-recipes": "6.6.0", + "workbox-routing": "6.6.0", + "workbox-strategies": "6.6.0", + "workbox-streams": "6.6.0", + "workbox-sw": "6.6.0", + "workbox-window": "6.6.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/workbox-build/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "license": "MIT", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/workbox-build/node_modules/source-map": { + "version": "0.8.0-beta.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", + "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", + "deprecated": "The work that was done in this beta branch won't be included in future versions", + "license": "BSD-3-Clause", + "dependencies": { + "whatwg-url": "^7.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/workbox-build/node_modules/tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==", + "license": "MIT", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/workbox-build/node_modules/webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "license": "BSD-2-Clause" + }, + "node_modules/workbox-build/node_modules/whatwg-url": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "license": "MIT", + "dependencies": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + }, + "node_modules/workbox-cacheable-response": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.6.0.tgz", + "integrity": "sha512-JfhJUSQDwsF1Xv3EV1vWzSsCOZn4mQ38bWEBR3LdvOxSPgB65gAM6cS2CX8rkkKHRgiLrN7Wxoyu+TuH67kHrw==", + "deprecated": "workbox-background-sync@6.6.0", + "license": "MIT", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-core": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-6.6.0.tgz", + "integrity": "sha512-GDtFRF7Yg3DD859PMbPAYPeJyg5gJYXuBQAC+wyrWuuXgpfoOrIQIvFRZnQ7+czTIQjIr1DhLEGFzZanAT/3bQ==", + "license": "MIT" + }, + "node_modules/workbox-expiration": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.6.0.tgz", + "integrity": "sha512-baplYXcDHbe8vAo7GYvyAmlS4f6998Jff513L4XvlzAOxcl8F620O91guoJ5EOf5qeXG4cGdNZHkkVAPouFCpw==", + "license": "MIT", + "dependencies": { + "idb": "^7.0.1", + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-google-analytics": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.6.0.tgz", + "integrity": "sha512-p4DJa6OldXWd6M9zRl0H6vB9lkrmqYFkRQ2xEiNdBFp9U0LhsGO7hsBscVEyH9H2/3eZZt8c97NB2FD9U2NJ+Q==", + "deprecated": "It is not compatible with newer versions of GA starting with v4, as long as you are using GAv3 it should be ok, but the package is not longer being maintained", + "license": "MIT", + "dependencies": { + "workbox-background-sync": "6.6.0", + "workbox-core": "6.6.0", + "workbox-routing": "6.6.0", + "workbox-strategies": "6.6.0" + } + }, + "node_modules/workbox-navigation-preload": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-6.6.0.tgz", + "integrity": "sha512-utNEWG+uOfXdaZmvhshrh7KzhDu/1iMHyQOV6Aqup8Mm78D286ugu5k9MFD9SzBT5TcwgwSORVvInaXWbvKz9Q==", + "license": "MIT", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-precaching": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.6.0.tgz", + "integrity": "sha512-eYu/7MqtRZN1IDttl/UQcSZFkHP7dnvr/X3Vn6Iw6OsPMruQHiVjjomDFCNtd8k2RdjLs0xiz9nq+t3YVBcWPw==", + "license": "MIT", + "dependencies": { + "workbox-core": "6.6.0", + "workbox-routing": "6.6.0", + "workbox-strategies": "6.6.0" + } + }, + "node_modules/workbox-range-requests": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-6.6.0.tgz", + "integrity": "sha512-V3aICz5fLGq5DpSYEU8LxeXvsT//mRWzKrfBOIxzIdQnV/Wj7R+LyJVTczi4CQ4NwKhAaBVaSujI1cEjXW+hTw==", + "license": "MIT", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-recipes": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-6.6.0.tgz", + "integrity": "sha512-TFi3kTgYw73t5tg73yPVqQC8QQjxJSeqjXRO4ouE/CeypmP2O/xqmB/ZFBBQazLTPxILUQ0b8aeh0IuxVn9a6A==", + "license": "MIT", + "dependencies": { + "workbox-cacheable-response": "6.6.0", + "workbox-core": "6.6.0", + "workbox-expiration": "6.6.0", + "workbox-precaching": "6.6.0", + "workbox-routing": "6.6.0", + "workbox-strategies": "6.6.0" + } + }, + "node_modules/workbox-routing": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.6.0.tgz", + "integrity": "sha512-x8gdN7VDBiLC03izAZRfU+WKUXJnbqt6PG9Uh0XuPRzJPpZGLKce/FkOX95dWHRpOHWLEq8RXzjW0O+POSkKvw==", + "license": "MIT", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-strategies": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.6.0.tgz", + "integrity": "sha512-eC07XGuINAKUWDnZeIPdRdVja4JQtTuc35TZ8SwMb1ztjp7Ddq2CJ4yqLvWzFWGlYI7CG/YGqaETntTxBGdKgQ==", + "license": "MIT", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-streams": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-6.6.0.tgz", + "integrity": "sha512-rfMJLVvwuED09CnH1RnIep7L9+mj4ufkTyDPVaXPKlhi9+0czCu+SJggWCIFbPpJaAZmp2iyVGLqS3RUmY3fxg==", + "license": "MIT", + "dependencies": { + "workbox-core": "6.6.0", + "workbox-routing": "6.6.0" + } + }, + "node_modules/workbox-sw": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-6.6.0.tgz", + "integrity": "sha512-R2IkwDokbtHUE4Kus8pKO5+VkPHD2oqTgl+XJwh4zbF1HyjAbgNmK/FneZHVU7p03XUt9ICfuGDYISWG9qV/CQ==", + "license": "MIT" + }, + "node_modules/workbox-webpack-plugin": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-6.6.0.tgz", + "integrity": "sha512-xNZIZHalboZU66Wa7x1YkjIqEy1gTR+zPM+kjrYJzqN7iurYZBctBLISyScjhkJKYuRrZUP0iqViZTh8rS0+3A==", + "license": "MIT", + "dependencies": { + "fast-json-stable-stringify": "^2.1.0", + "pretty-bytes": "^5.4.1", + "upath": "^1.2.0", + "webpack-sources": "^1.4.3", + "workbox-build": "6.6.0" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "webpack": "^4.4.0 || ^5.9.0" + } + }, + "node_modules/workbox-webpack-plugin/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==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/workbox-webpack-plugin/node_modules/webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "license": "MIT", + "dependencies": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "node_modules/workbox-window": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-6.6.0.tgz", + "integrity": "sha512-L4N9+vka17d16geaJXXRjENLFldvkWy7JyGxElRD0JvBxvFEd8LOhr+uXCcar/NzAmIBRv9EZ+M+Qr4mOoBITw==", + "license": "MIT", + "dependencies": { + "@types/trusted-types": "^2.0.2", + "workbox-core": "6.6.0" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "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==", + "license": "ISC" + }, + "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==", + "license": "ISC", + "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.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "license": "MIT", + "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==", + "license": "Apache-2.0" + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "license": "MIT" + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "license": "ISC", + "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==", + "license": "ISC" + }, + "node_modules/yaml": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.3.tgz", + "integrity": "sha512-vIYeF1u3CjlhAFekPPAk2h/Kv4T3mAkMox5OymRiJQB0spDP10LHvt+K7G9Ny6NuuMAb25/6n1qyUjAcGNf/AA==", + "license": "ISC", + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "license": "MIT", + "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==", + "license": "ISC", + "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==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/teams/double-door-refrigerator/package.json b/teams/double-door-refrigerator/package.json new file mode 100644 index 0000000..7876d06 --- /dev/null +++ b/teams/double-door-refrigerator/package.json @@ -0,0 +1,49 @@ +{ + "name": "my-app", + "version": "0.1.0", + "private": true, + "homepage": "https://SrujanTag.github.io/DoubleDoorRefrigerator", + "dependencies": { + "@testing-library/dom": "^10.4.1", + "@testing-library/jest-dom": "^6.9.1", + "@testing-library/react": "^16.3.2", + "@testing-library/user-event": "^13.5.0", + "ajv": "^8.18.0", + "ajv-keywords": "^5.1.0", + "lucide-react": "^0.368.0", + "react": "^18.3.1", + "react-dom": "^18.3.1", + "react-router-dom": "^6.20.0", + "react-scripts": "5.0.1", + "web-vitals": "^2.1.4" + }, + "scripts": { + "start": "react-scripts start", + "build": "react-scripts build", + "test": "react-scripts test", + "eject": "react-scripts eject", + "predeploy": "npm run build", + "deploy": "gh-pages -d build" + }, + "eslintConfig": { + "extends": [ + "react-app", + "react-app/jest" + ] + }, + "browserslist": { + "production": [ + ">0.2%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + }, + "devDependencies": { + "gh-pages": "^6.3.0" + } +} diff --git a/teams/double-door-refrigerator/public/favicon.ico b/teams/double-door-refrigerator/public/favicon.ico new file mode 100644 index 0000000..a11777c Binary files /dev/null and b/teams/double-door-refrigerator/public/favicon.ico differ diff --git a/teams/double-door-refrigerator/public/images/magician.png b/teams/double-door-refrigerator/public/images/magician.png new file mode 100644 index 0000000..9f174e4 Binary files /dev/null and b/teams/double-door-refrigerator/public/images/magician.png differ diff --git a/teams/double-door-refrigerator/public/images/rtx4090.jpg b/teams/double-door-refrigerator/public/images/rtx4090.jpg new file mode 100644 index 0000000..0885200 Binary files /dev/null and b/teams/double-door-refrigerator/public/images/rtx4090.jpg differ diff --git a/teams/double-door-refrigerator/public/images/sonarqube.png b/teams/double-door-refrigerator/public/images/sonarqube.png new file mode 100644 index 0000000..6c57f06 Binary files /dev/null and b/teams/double-door-refrigerator/public/images/sonarqube.png differ diff --git a/teams/double-door-refrigerator/public/images/taiga.png b/teams/double-door-refrigerator/public/images/taiga.png new file mode 100644 index 0000000..0b2c916 Binary files /dev/null and b/teams/double-door-refrigerator/public/images/taiga.png differ diff --git a/teams/double-door-refrigerator/public/index.html b/teams/double-door-refrigerator/public/index.html new file mode 100644 index 0000000..8e07546 --- /dev/null +++ b/teams/double-door-refrigerator/public/index.html @@ -0,0 +1,43 @@ + + + + + + + + + + + + + CompareX — Compare Everything + + + +
+ + + diff --git a/teams/double-door-refrigerator/public/logo-bugzilla.png b/teams/double-door-refrigerator/public/logo-bugzilla.png new file mode 100644 index 0000000..2b5cade Binary files /dev/null and b/teams/double-door-refrigerator/public/logo-bugzilla.png differ diff --git a/teams/double-door-refrigerator/public/logo-crystaldiskmark.png b/teams/double-door-refrigerator/public/logo-crystaldiskmark.png new file mode 100644 index 0000000..74743b9 Binary files /dev/null and b/teams/double-door-refrigerator/public/logo-crystaldiskmark.png differ diff --git a/teams/double-door-refrigerator/public/logo-galaxy-ai.png b/teams/double-door-refrigerator/public/logo-galaxy-ai.png new file mode 100644 index 0000000..a1ccb63 Binary files /dev/null and b/teams/double-door-refrigerator/public/logo-galaxy-ai.png differ diff --git a/teams/double-door-refrigerator/public/logo-hwmonitor.png b/teams/double-door-refrigerator/public/logo-hwmonitor.png new file mode 100644 index 0000000..375e698 Binary files /dev/null and b/teams/double-door-refrigerator/public/logo-hwmonitor.png differ diff --git a/teams/double-door-refrigerator/public/logo-samsung-magician.png b/teams/double-door-refrigerator/public/logo-samsung-magician.png new file mode 100644 index 0000000..f3cd0c8 Binary files /dev/null and b/teams/double-door-refrigerator/public/logo-samsung-magician.png differ diff --git a/teams/double-door-refrigerator/public/logo-wiztree.png b/teams/double-door-refrigerator/public/logo-wiztree.png new file mode 100644 index 0000000..7444882 Binary files /dev/null and b/teams/double-door-refrigerator/public/logo-wiztree.png differ diff --git a/teams/double-door-refrigerator/public/logo192.png b/teams/double-door-refrigerator/public/logo192.png new file mode 100644 index 0000000..fc44b0a Binary files /dev/null and b/teams/double-door-refrigerator/public/logo192.png differ diff --git a/teams/double-door-refrigerator/public/logo512.png b/teams/double-door-refrigerator/public/logo512.png new file mode 100644 index 0000000..a4e47a6 Binary files /dev/null and b/teams/double-door-refrigerator/public/logo512.png differ diff --git a/teams/double-door-refrigerator/public/manifest.json b/teams/double-door-refrigerator/public/manifest.json new file mode 100644 index 0000000..080d6c7 --- /dev/null +++ b/teams/double-door-refrigerator/public/manifest.json @@ -0,0 +1,25 @@ +{ + "short_name": "React App", + "name": "Create React App Sample", + "icons": [ + { + "src": "favicon.ico", + "sizes": "64x64 32x32 24x24 16x16", + "type": "image/x-icon" + }, + { + "src": "logo192.png", + "type": "image/png", + "sizes": "192x192" + }, + { + "src": "logo512.png", + "type": "image/png", + "sizes": "512x512" + } + ], + "start_url": ".", + "display": "standalone", + "theme_color": "#000000", + "background_color": "#ffffff" +} diff --git a/teams/double-door-refrigerator/public/robots.txt b/teams/double-door-refrigerator/public/robots.txt new file mode 100644 index 0000000..e9e57dc --- /dev/null +++ b/teams/double-door-refrigerator/public/robots.txt @@ -0,0 +1,3 @@ +# https://www.robotstxt.org/robotstxt.html +User-agent: * +Disallow: diff --git a/teams/double-door-refrigerator/replace_images.js b/teams/double-door-refrigerator/replace_images.js new file mode 100644 index 0000000..2addc18 --- /dev/null +++ b/teams/double-door-refrigerator/replace_images.js @@ -0,0 +1,102 @@ +#!/usr/bin/env node +const fs = require('fs'); + +let data = fs.readFileSync('src/data.js', 'utf8'); + +// High quality Unsplash images by category/brand +const imageMap = { + // SSDs + 'Samsung 990 Pro': 'https://images.unsplash.com/photo-1597872200969-2b65d56bd16b?w=600&h=400&fit=crop', + 'WD Black SN850X': 'https://images.unsplash.com/photo-1628557044797-f21a177c37ec?w=600&h=400&fit=crop', + 'Crucial T700': 'https://images.unsplash.com/photo-1541029071515-84cc54f84dc5?w=600&h=400&fit=crop', + 'Kingston KC3000': 'https://images.unsplash.com/photo-1678685888221-cda773a3dcdb?w=600&h=400&fit=crop', + 'Sabrent Rocket 4 Plus': 'https://images.unsplash.com/photo-1597872200969-2b65d56bd16b?w=600&h=400&fit=crop&q=90', + 'TeamGroup MP34': 'https://images.unsplash.com/photo-1628557044797-f21a177c37ec?w=600&h=400&fit=crop&q=90', + 'Crucial MX500': 'https://images.unsplash.com/photo-1541029071515-84cc54f84dc5?w=600&h=400&fit=crop&q=90', + 'Corsair MP600 Pro': 'https://images.unsplash.com/photo-1678685888221-cda773a3dcdb?w=600&h=400&fit=crop&q=90', + + // GPUs + 'NVIDIA RTX 4090': 'https://images.unsplash.com/photo-1591488320449-011701bb6704?w=600&h=400&fit=crop', + 'AMD Radeon RX 7900 XTX': 'https://images.unsplash.com/photo-1587202372775-e229f172b9d7?w=600&h=400&fit=crop', + 'NVIDIA RTX 4080 Super': 'https://images.unsplash.com/photo-1591488320449-011701bb6704?w=600&h=400&fit=crop&q=90', + 'AMD Radeon RX 7800 XT': 'https://images.unsplash.com/photo-1587202372775-e229f172b9d7?w=600&h=400&fit=crop&q=90', + 'NVIDIA RTX 4070 Ti Super': 'https://images.unsplash.com/photo-1555618254-5e28e2e0c76f?w=600&h=400&fit=crop', + 'AMD Radeon RX 7600': 'https://images.unsplash.com/photo-1587202372775-e229f172b9d7?w=600&h=400&fit=crop&q=85', + 'NVIDIA RTX 3060': 'https://images.unsplash.com/photo-1555618254-5e28e2e0c76f?w=600&h=400&fit=crop&q=90', + 'Intel Arc A770': 'https://images.unsplash.com/photo-1591488320449-011701bb6704?w=600&h=400&fit=crop&q=85', + + // CPUs + 'AMD Ryzen 7 7800X3D': 'https://images.unsplash.com/photo-1555617981-dac3880eac6e?w=600&h=400&fit=crop', + 'Intel Core i9-14900K': 'https://images.unsplash.com/photo-1592664474505-51c549ad15c5?w=600&h=400&fit=crop', + 'AMD Ryzen 9 7950X': 'https://images.unsplash.com/photo-1555617981-dac3880eac6e?w=600&h=400&fit=crop&q=90', + 'Intel Core i5-13600K': 'https://images.unsplash.com/photo-1592664474505-51c549ad15c5?w=600&h=400&fit=crop&q=90', + 'AMD Ryzen 5 7600X': 'https://images.unsplash.com/photo-1555617981-dac3880eac6e?w=600&h=400&fit=crop&q=85', + 'Intel Core i7-14700K': 'https://images.unsplash.com/photo-1592664474505-51c549ad15c5?w=600&h=400&fit=crop&q=85', + 'AMD Ryzen 5 5600X': 'https://images.unsplash.com/photo-1555617981-dac3880eac6e?w=600&h=400&fit=crop&q=80', +}; + +// Tool images - code/dev themed +const toolImages = [ + 'https://images.unsplash.com/photo-1461749280684-dccba630e2f6?w=600&h=400&fit=crop', + 'https://images.unsplash.com/photo-1555066931-4365d14bab8c?w=600&h=400&fit=crop', + 'https://images.unsplash.com/photo-1517694712202-14dd9538aa97?w=600&h=400&fit=crop', + 'https://images.unsplash.com/photo-1542831371-29b0f74f9713?w=600&h=400&fit=crop', + 'https://images.unsplash.com/photo-1607799279861-4dd421887fb3?w=600&h=400&fit=crop', + 'https://images.unsplash.com/photo-1629654297299-c8506221ca97?w=600&h=400&fit=crop', + 'https://images.unsplash.com/photo-1618477388954-7852f32655ec?w=600&h=400&fit=crop', + 'https://images.unsplash.com/photo-1563986768609-322da13575f2?w=600&h=400&fit=crop', +]; + +// RAM images +const ramImages = [ + 'https://images.unsplash.com/photo-1562976540-1502c2145186?w=600&h=400&fit=crop', + 'https://images.unsplash.com/photo-1592664474505-51c549ad15c5?w=600&h=400&fit=crop&q=75', + 'https://images.unsplash.com/photo-1555617981-dac3880eac6e?w=600&h=400&fit=crop&q=75', + 'https://images.unsplash.com/photo-1562976540-1502c2145186?w=600&h=400&fit=crop&q=90', +]; + +// Parse product data to find titles and their image lines +const lines = data.split('\n'); +let currentTitle = ''; +let toolIdx = 0; +let ramIdx = 0; + +for (let i = 0; i < lines.length; i++) { + const titleMatch = lines[i].match(/"title":\s*"([^"]+)"/); + if (titleMatch) { + currentTitle = titleMatch[1]; + } + + const imageMatch = lines[i].match(/"image":\s*"https:\/\/logo\.clearbit\.com\/[^"]+"/); + if (imageMatch && currentTitle) { + let newUrl; + if (imageMap[currentTitle]) { + newUrl = imageMap[currentTitle]; + } else { + // Check if category is tools or RAM by context + // Look backwards for category + let cat = ''; + for (let j = i; j > Math.max(0, i - 20); j--) { + const catMatch = lines[j].match(/"category":\s*"([^"]+)"/); + if (catMatch) { + cat = catMatch[1]; + break; + } + } + if (cat === 'TOOLS') { + newUrl = toolImages[toolIdx % toolImages.length]; + toolIdx++; + } else if (cat === 'MEMORY (RAM)') { + newUrl = ramImages[ramIdx % ramImages.length]; + ramIdx++; + } else { + newUrl = 'https://images.unsplash.com/photo-1518770660439-4636190af475?w=600&h=400&fit=crop'; + } + } + lines[i] = lines[i].replace(/"image":\s*"[^"]+"/, `"image": "${newUrl}"`); + } +} + +data = lines.join('\n'); +fs.writeFileSync('src/data.js', data); +console.log('Done! Replaced all product images.'); diff --git a/teams/double-door-refrigerator/src/App.css b/teams/double-door-refrigerator/src/App.css new file mode 100644 index 0000000..74b5e05 --- /dev/null +++ b/teams/double-door-refrigerator/src/App.css @@ -0,0 +1,38 @@ +.App { + text-align: center; +} + +.App-logo { + height: 40vmin; + pointer-events: none; +} + +@media (prefers-reduced-motion: no-preference) { + .App-logo { + animation: App-logo-spin infinite 20s linear; + } +} + +.App-header { + background-color: #282c34; + min-height: 100vh; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + font-size: calc(10px + 2vmin); + color: white; +} + +.App-link { + color: #61dafb; +} + +@keyframes App-logo-spin { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} diff --git a/teams/double-door-refrigerator/src/App.js b/teams/double-door-refrigerator/src/App.js new file mode 100644 index 0000000..9797243 --- /dev/null +++ b/teams/double-door-refrigerator/src/App.js @@ -0,0 +1,1171 @@ +import React, { useState, useEffect } from 'react'; +import { productsData, generateAISummary } from './data'; +import './index.css'; + +// SVG Icons to replace lucide-react +const Icons = { + Globe: () => , + User: () => , + Brain: () => , + ChevronDown: () => , + Check: () => , + Plus: () => , + Heart: ({ fill }) => , + X: () => , + Sparkles: () => , + ArrowLeft: () => , + Moon: () => , + Sun: () => +}; + +const Header = ({ setShowAuth, navigateTo, wishlist, setWishlist, theme, toggleTheme }) => { + const [dropdownOpen, setDropdownOpen] = useState(false); + + return ( +
+
navigateTo('home')} className="header-logo" style={{cursor: 'pointer'}}>CompareX
+ +
+
+ {theme === 'dark' ? : } +
+
navigateTo('wishlist')} + > + 0 ? "currentColor" : "none"} /> + {wishlist?.length > 0 && {wishlist.length}} +
+
+
setShowAuth(true)}>
+
+
+ ); +}; + +const Footer = ({ navigateTo, setShowChat }) => ( + +); + +const ImagePlaceholder = () => ( +
+ Image Placeholder +
+); + +const ProductCard = ({ product, compareList, setCompareList, wishlist, setWishlist, navigateTo }) => { + const isComparing = !!compareList.find(p => p.id === product.id); + const inWishlist = !!wishlist.find(p => p.id === product.id); + + const toggleCompare = () => { + if (isComparing) { + setCompareList(compareList.filter(p => p.id !== product.id)); + } else { + if (compareList.length < 3) { + setCompareList([...compareList, product]); + } else { + alert("You can only compare up to 3 items side-by-side."); + } + } + }; + + const toggleWishlist = () => { + if (inWishlist) { + setWishlist(wishlist.filter(p => p.id !== product.id)); + } else { + setWishlist([...wishlist, product]); + } + }; + + return ( +
+
navigateTo('product', product.id)}> +
+ {product.image ? ( + product.category === 'TOOLS' ? ( +
+ {product.title} { e.target.style.display='none'; e.target.parentElement.innerHTML='' + product.title + ''; }} /> +
+ ) : ( +
+ {product.title} +
+ ) + ) : ( + + )} +
+
+ {product.isNew && New product / } +

{product.title}

+

{product.subtitle}

+ {product.scores && product.scores.Overall && ( +
+
+ {product.scores.Overall} +
+ CompareXscore +
+ )} +
+
+
+ + +
+
+ ); +}; + +const WaveDivider = () => ( +
+ + + +
+); + +const Home = ({ compareList, setCompareList, wishlist, setWishlist, navigateTo }) => { + const topProducts = [ + productsData.find(p => p.id === 101), + productsData.find(p => p.id === 201), + productsData.find(p => p.id === 301), + productsData.find(p => p.id === 401), + ].filter(Boolean); + + const [searchTerm, setSearchTerm] = useState(''); + const [showResults, setShowResults] = useState(false); + + const searchResults = productsData.filter(p => p.title.toLowerCase().includes(searchTerm.toLowerCase())); + + const handleSearchChange = (e) => { + setSearchTerm(e.target.value); + setShowResults(true); + }; + + const handleSelectProduct = (id) => { + setSearchTerm(''); + setShowResults(false); + navigateTo('product', id); + }; + + return ( +
+
+
+

Compare Everything

+

Compare Hardware, Software, Tools, and much more

+
+
+ setShowResults(true)} + /> + +
+ {showResults && searchTerm.trim() !== '' && ( +
+ {searchResults.length > 0 ? ( + searchResults.map(p => ( +
handleSelectProduct(p.id)} + style={{ padding: '0.75rem 1rem', borderBottom: '1px solid rgba(255,255,255,0.05)', cursor: 'pointer', display: 'flex', alignItems: 'center', gap: '1rem', color: 'var(--text-main)', transition: 'all 0.2s' }} + onMouseEnter={(e) => { e.currentTarget.style.backgroundColor = 'rgba(0,240,255,0.05)'; e.currentTarget.style.color = '#00F0FF'; }} + onMouseLeave={(e) => { e.currentTarget.style.backgroundColor = 'transparent'; e.currentTarget.style.color = 'var(--text-main)'; }} + > +
+ {p.title} +
+
+
{p.title}
+
{p.category}
+
+
+ )) + ) : ( +
No products found
+ )} +
+ )} +
+
+ +
+ +
+

Featured Products

+
+ {topProducts.map(product => ( + + ))} +
+
+ +
+
+

94k products in 106 categories.
A single objective.

+

We have been working for more than a decade to become your reference guide when it comes to comparisons. We are an impartial team of technology enthusiasts: our sole mission is to help you make informed decisions.

+
+ +
navigateTo('home')}>How we work →
+
+
+
+
+ ); +}; + +const CategoryPage = ({ categoryName, compareList, setCompareList, wishlist, setWishlist, navigateTo }) => { + const products = productsData.filter(p => p.category === categoryName); + + return ( +
+
+
+

{categoryName}

+

Browse top {categoryName} and find what works for you.

+
+ +
+ +
+
+ {products.map(product => ( + + ))} +
+
+
+ ); +} + +const Compare = ({ compareList, setCompareList, navigateTo }) => { + if (compareList.length === 0) { + return ( +
+
+
+

Nothing to compare

+

Go back to the home page and add some items.

+ +
+ +
+
+ ); + } + + return ( +
+
+
+

Side-by-side Comparison

+ +
+ +
+ +
+
+ {compareList.map(product => ( +
+ + {product.image ? ( + product.category === 'TOOLS' ? ( +
+ {product.title} { e.target.style.display='none'; }} /> +
+ ) : ( +
+ {product.title} +
+ ) + ) : ( +
+ No image +
+ )} +

{product.title}

+

{product.category}

+ +

Scores

+ {product.scores && ( +
+
+ Overall + {product.scores.Overall} +
+ {Object.entries(product.scores).filter(([k]) => k !== 'Overall').map(([key, value]) => ( +
+ {key} + {value} +
+ ))} +
+ )} + + {product.category === 'TOOLS' && product.specifications?.Description && ( +
+

About

+

{product.specifications.Description}

+ +

Primary Use Case

+

{product.specifications.PrimaryUseCase}

+
+ )} + + {product.category === 'TOOLS' && ( +
+

Pricing & Plans

+ {product.specifications?.FreeTier ? ( +
+
Free: {product.specifications.FreeTier}
+
Pro: {product.specifications.ProTier}
+
Enterprise: {product.specifications.EnterpriseTier}
+
+ ) : ( +

Open Source & Free
License: {product.specifications?.License || 'Open Source'}

+ )} +
+ )} + +

{product.category === 'TOOLS' ? 'Tool Details' : 'Specifications'}

+
+ {Object.entries(product.specifications || product.features).filter(([key]) => !['Description', 'PrimaryUseCase', 'FreeTier', 'ProTier', 'EnterpriseTier'].includes(key)).map(([key, value]) => ( + +
{key}
+
{value}
+
+ ))} +
+ + {product.benchmarks && ( + <> +

{product.category === 'TOOLS' ? 'Community Metrics' : 'User Benchmarks'}

+
+ {Object.entries(product.benchmarks).map(([key, value]) => ( + +
{key}
+
{value}
+
+ ))} +
+ + )} +
+ ))} +
+
+
+ ); +}; + +const WishlistPage = ({ wishlist, setWishlist, navigateTo, compareList, setCompareList }) => { + return ( +
+
+
+

Your Wishlist

+

{wishlist.length} items saved

+
+ +
+ +
+ {wishlist.length === 0 ? ( +
+

Your wishlist is currently empty.

+ +
+ ) : ( +
+ {wishlist.map(product => ( + + ))} +
+ )} +
+
+ ); +}; + +const ProductDetail = ({ productId, navigateTo }) => { + const product = productsData.find(p => p.id === productId); + + if (!product) return
Product Not Found
; + + const avgRating = product.ratingStats?.avg || "0.0"; + const ratingCounts = product.ratingStats || {total: 0, 5: 0, 4: 0, 3: 0, 2: 0, 1: 0}; + + return ( +
+
+
+
navigateTo('category', product.category)} onMouseEnter={(e) => { e.currentTarget.style.transform = 'scale(1.1)'; e.currentTarget.style.color = 'var(--primary)'; }} onMouseLeave={(e) => { e.currentTarget.style.transform = 'scale(1)'; e.currentTarget.style.color = 'var(--text-muted)'; }}> + +
+
+ +
+ +
+ {/* Product Header Card */} +
+
+ {product.image ? ( + product.category === 'TOOLS' ? ( +
+ {product.title} { e.target.style.display='none'; }} /> +
+ ) : ( +
+ {product.title} +
+ ) + ) : ( +
+ Image Placeholder +
+ )} +
+
+

{product.title}

+

+ {product.subtitle}. {product.category === 'TOOLS' ? `This software tool is preferred by developers across the globe. CompareX aggregate data confirms its position as a leading choice for open-source development.` : `This ${product.category.toLowerCase()} is highly documented emphasizing pure performance. CompareX aggregate data confirms it stands out for long-term usage and robust feature inclusion.`} +

+
+
+ + {/* About Feature */} + {product.category === 'TOOLS' && product.specifications?.Description && ( +
+

About this Tool

+
+
+

Description

+

{product.specifications.Description}

+
+
+

Primary Use Case

+

{product.specifications.PrimaryUseCase}

+
+
+
+ )} + + {/* Pricing & Plans Section for TOOLS */} + {product.category === 'TOOLS' && ( +
+

Pricing & Plans

+ {product.specifications?.FreeTier ? ( +
+
+

Free Tier

+

{product.specifications.FreeTier}

+
+
+

Pro Tier

+

{product.specifications.ProTier}

+
+
+

Enterprise Tier

+

{product.specifications.EnterpriseTier}

+
+
+ ) : ( +
+

Open Source & Free

+

This tool does not have paid subscription tiers. It is free to use under its respective license: {product.specifications?.License || 'Open Source'}.

+
+ )} +
+ )} + + {/* Specifications */} + {product.specifications && ( +
+

{product.category === 'TOOLS' ? 'Tool Details' : 'Specifications'}

+
+ {Object.entries(product.specifications).filter(([key]) => !['Description', 'PrimaryUseCase', 'FreeTier', 'ProTier', 'EnterpriseTier'].includes(key)).map(([key, value]) => ( +
+
{key}
+
{value}
+
+ ))} +
+
+ )} + + {/* CompareXscore */} + {product.scores && ( +
+

CompareXscore

+
+
+
+ {product.scores.Overall} + out of 100 +
+
Overall Score
+
+ +
+ {Object.entries(product.scores).filter(([k]) => k !== 'Overall').map(([key, value]) => ( +
+
+ {key} + {value}/100 +
+
+
+
+
+ ))} +
+
+
+ )} + + {/* User Benchmarks */} + {product.benchmarks && ( +
+

{product.category === 'TOOLS' ? 'Community Metrics' : 'User Benchmarks'}

+

{product.category === 'TOOLS' ? 'Aggregated community metrics and usage statistics derived from open source development data.' : 'Aggregated real-life benchmarks and metrics calculated using community hardware reporting.'}

+
+ {Object.entries(product.benchmarks).map(([key, value]) => ( +
+
{key}
+
{value}
+
+ ))} +
+
+ )} + + {/* Buy Links */} + {product.prices && ( +
+

{product.category === 'TOOLS' ? 'Official Links' : 'Where to buy'}

+
+ {Object.entries(product.prices).filter(([store]) => product.category !== 'TOOLS' || store === 'official').map(([store, details]) => ( + + {store} +
+ {details.price} + +
+
+ ))} +
+
+ )} + + {/* Ratings Summary */} +
+

User Ratings Summary

+
+
+
{avgRating}
+
{'★'.repeat(Math.round(avgRating))}{'☆'.repeat(5-Math.round(avgRating))}
+
Based on {ratingCounts.total.toLocaleString()} ratings
+
+
+ {[5, 4, 3, 2, 1].map(stars => { + const count = ratingCounts[stars]; + const pct = ratingCounts.total > 0 ? (count / ratingCounts.total) * 100 : 0; + return ( +
+
{stars} Stars
+
+
+
+
{count.toLocaleString()}
+
+ ); + })} +
+
+
+ + {/* AI Summary */} +
+
AI Review Summary
+

{generateAISummary(product)}

+
+ + {/* Latest Reviews */} +
+

Latest Reviews

+
+ {product.reviews?.slice(0, 4).map((r, i) => ( +
+
+ {r.user} + {'★'.repeat(r.rating)}{'★'.repeat(5-r.rating)} +
+

{r.comment}

+
+ ))} +
+
+
+
+ ); +}; + +const AboutPage = () => ( +
+
+
+

About CompareX

+

Your reference guide for technology comparisons.

+
+ +
+
+
+

Our Mission

+

+ We are an impartial team of technology enthusiasts dedicated to helping you make informed decisions. We analyze everything from hardware to software tools, ensuring you get unbiased, data-backed insights. Every rating is derived from aggregated community benchmarks and deep technical evaluations, giving you the clearest picture of what a product really offers. +

+
+
+

The Team

+

+ CompareX was built by engineers, gamers, and reviewers who were tired of fragmented information. We've aggregated data from across the web—from open-source repositories to in-depth hardware forums—to establish a unified score you can trust. +

+
+
+
+); + +const EditorialPage = () => ( +
+
+
+

Editorial Guidelines

+

How we test, rate, and review.

+
+ +
+
+
+

1. Unbiased Aggregation

+

+ We do not accept payment to artificially inflate ratings or manipulate review statuses. Our CompareXscore is generated using a combination of user-submitted benchmarks, GitHub activity, and aggregated forum sentiment. +

+
+
+

2. Transparent Sourcing

+

+ Whether we evaluate a graphics card's 3DMark score or a framework's npm package downloads, our metrics are presented openly. We link directly to official documentation, community repos, and certified retailers so you can verify our claims. +

+
+
+

3. AI-Assisted, Human-Verified

+

+ We use our proprietary AI models to parse thousands of reviews and generate concise summaries to save you time. However, every product page structure and definitive benchmark score is verified by a human expert before publication. +

+
+
+
+); + +const App = () => { + const [currentPage, setCurrentPage] = useState('home'); + const [currentParam, setCurrentParam] = useState(null); + + const [compareList, setCompareList] = useState([]); + const [wishlist, setWishlist] = useState([]); + const [showAuth, setShowAuth] = useState(false); + const [showChat, setShowChat] = useState(false); + const [chatInput, setChatInput] = useState(''); + const [chatMessages, setChatMessages] = useState([ + { role: 'ai', text: 'Hi! I am the CompareX AI. What kind of tool or hardware are you looking for today?' } + ]); + const [isAiLoading, setIsAiLoading] = useState(false); + const [user, setUser] = useState(null); + const [theme, setTheme] = useState('dark'); + + // Load from fake backend + useEffect(() => { + const savedUser = localStorage.getItem('versus_user'); + if (savedUser) setUser(JSON.parse(savedUser)); + + const savedWishlist = localStorage.getItem('versus_wishlist'); + if (savedWishlist) setWishlist(JSON.parse(savedWishlist)); + + const savedTheme = localStorage.getItem('comparex_theme') || 'dark'; + setTheme(savedTheme); + if (savedTheme === 'light') { + document.documentElement.classList.add('light'); + } + }, []); + + const toggleTheme = () => { + const newTheme = theme === 'dark' ? 'light' : 'dark'; + setTheme(newTheme); + localStorage.setItem('comparex_theme', newTheme); + if (newTheme === 'light') { + document.documentElement.classList.add('light'); + } else { + document.documentElement.classList.remove('light'); + } + }; + + // Save to fake backend + useEffect(() => { + localStorage.setItem('versus_wishlist', JSON.stringify(wishlist)); + }, [wishlist]); + + const handleLogin = (e) => { + e.preventDefault(); + const newUser = { name: "Test User", email: "user@test.com" }; + setUser(newUser); + localStorage.setItem('versus_user', JSON.stringify(newUser)); + setShowAuth(false); + }; + + const handleLogout = () => { + setUser(null); + localStorage.removeItem('versus_user'); + }; + + const navigateTo = (page, param = null) => { + setCurrentPage(page); + setCurrentParam(param); + window.scrollTo(0,0); + }; + + const handleChatSubmit = async (e) => { + e.preventDefault(); + if (!chatInput.trim()) return; + + const userMsg = chatInput.trim(); + setChatMessages(prev => [...prev, { role: 'user', text: userMsg }]); + setChatInput(''); + setIsAiLoading(true); + + try { + const lowerUserMsg = userMsg.toLowerCase(); + let keywords = lowerUserMsg.split(' ').filter(w => w.length > 2); + + const relevantItems = productsData.filter(p => { + const str = (p.title + " " + p.category).toLowerCase(); + return keywords.some(k => str.includes(k)); + }).slice(0, 5); + + const itemsToPass = relevantItems.length > 0 ? relevantItems : productsData.slice(0, 3); + const availableItems = itemsToPass.map(p => `[PRODUCT_ID: ${p.id}] ${p.title} (${p.category})`).join(', '); + + const prompt = `You are CompareX AI. +Data: ${availableItems} +User: ${userMsg} +Task: Respond nicely. MUST include EXACT string [PRODUCT_ID: id] of recommended items.`; + + const response = await fetch('https://text.pollinations.ai/' + encodeURIComponent(prompt)); + + if (!response.ok) { + throw new Error("Failed to contact API"); + } + + let responseText = await response.text(); + + // If the API somehow still returns the deprecation notice instead of the completion, trigger our local fallback. + if (responseText.includes("Pollinations legacy text API is being deprecated")) { + throw new Error("API returned deprecation notice"); + } + + const match = responseText.match(/\[PRODUCT_ID:\s*(\d+)\]/i); + let productId = null; + let cleanText = responseText; + if (match) { + productId = parseInt(match[1]); + cleanText = responseText.replace(match[0], '').trim(); + } + + setChatMessages(prev => [...prev, { + role: 'ai', + text: cleanText, + productId: productId + }]); + + } catch (error) { + // Local AI heuristic simulation + const lowerMsg = userMsg.toLowerCase(); + let foundProduct = null; + let text = ""; + + const categorySynonyms = { + 'GRAPHICS CARDS': ['gpu', 'graphics', 'video card', 'rtx', 'rx', 'nvidia', 'amd', 'geforce', 'radeon'], + 'CPUs': ['cpu', 'processor', 'intel', 'ryzen', 'core i', 'chip'], + 'SSD': ['ssd', 'storage', 'drive', 'nvme', 'm.2', 'hard drive', 'samsung 9', 'crucial'], + 'TOOLS': ['tool', 'software', 'app', 'framework', 'library', 'code', 'dev', 'ide'] + }; + + let matchedCategory = null; + + // 1. Direct title matching + for (const p of productsData) { + if (lowerMsg.includes(p.title.toLowerCase())) { + foundProduct = p; + break; + } + } + + // 2. Category matching via synonyms + if (!foundProduct) { + for (const [cat, synonyms] of Object.entries(categorySynonyms)) { + // We use word boundaries or just inclusion for simplicity + if (synonyms.some(syn => lowerMsg.includes(syn))) { + matchedCategory = cat; + break; + } + } + + if (matchedCategory) { + const categoryProducts = productsData.filter(p => p.category === matchedCategory); + // Pick the first featured one + foundProduct = categoryProducts[0]; + } + } + + if (foundProduct) { + text = `Based on your request, I highly recommend the **${foundProduct.title}**. It's an excellent choice if you're looking into ${foundProduct.category.toLowerCase()}!`; + setChatMessages(prev => [...prev, { role: 'ai', text: text, productId: foundProduct.id }]); + } else { + const responses = [ + "That sounds interesting! Could you specify if you're looking for a Tool, SSD, GPU, or CPU?", + "I'd love to help! Tell me which specific task or hardware category you're focusing on.", + "I have data on a lot of great tech. What category (like CPUs, Graphics Cards, or Tools) can I guide you towards?" + ]; + text = responses[Math.floor(Math.random() * responses.length)]; + setChatMessages(prev => [...prev, { role: 'ai', text: text }]); + } + } + + setIsAiLoading(false); + }; + + return ( +
+
+ +
+ {currentPage === 'home' && + + } + {currentPage === 'category' && + + } + {currentPage === 'compare' && + + } + {currentPage === 'product' && + + } + {currentPage === 'wishlist' && + + } + {currentPage === 'about' && } + {currentPage === 'editorial' && } +
+ +
+ ); +}; + +export default App; diff --git a/teams/double-door-refrigerator/src/App.test.js b/teams/double-door-refrigerator/src/App.test.js new file mode 100644 index 0000000..1f03afe --- /dev/null +++ b/teams/double-door-refrigerator/src/App.test.js @@ -0,0 +1,8 @@ +import { render, screen } from '@testing-library/react'; +import App from './App'; + +test('renders learn react link', () => { + render(); + const linkElement = screen.getByText(/learn react/i); + expect(linkElement).toBeInTheDocument(); +}); diff --git a/teams/double-door-refrigerator/src/data.js b/teams/double-door-refrigerator/src/data.js new file mode 100644 index 0000000..f40c803 --- /dev/null +++ b/teams/double-door-refrigerator/src/data.js @@ -0,0 +1,7371 @@ +/* Auto-generated data.js with enriched reviews, stats, and prices */ +export const productsData = [ + { + "id": 101, + "title": "Samsung 990 Pro", + "subtitle": "Leading PCIe 4.0 NVMe", + "category": "SSD", + "isNew": true, + "features": { + "Capacity": "2TB", + "Speed": "7450 MB/s" + }, + "specifications": { + "Capacity": "2TB", + "Read Speed": "7450 MB/s", + "Write Speed": "6900 MB/s", + "Interface": "PCIe 4.0 x4", + "FormFactor": "M.2 2280", + "Endurance": "1200 TBW" + }, + "scores": { + "Speed": 98, + "Reliability": 96, + "Value": 85, + "Thermal": 92, + "Overall": 93 + }, + "prices": { + "amazon": { + "price": "$159", + "link": "https://www.amazon.com/s?k=Samsung%20990%20Pro%202TB" + }, + "flipkart": { + "price": "₹14,499", + "link": "https://www.flipkart.com/search?q=Samsung%20990%20Pro%202TB" + }, + "official": { + "price": "$169", + "link": "https://www.google.com/search?q=Samsung%20990%20Pro+official+site" + } + }, + "image": "https://m.media-amazon.com/images/I/71XHEQZZW+L.jpg", + "reviews": [ + { + "user": "User17362", + "rating": 4, + "comment": "Very excellent choice. The boot times is definitely a plus. However, the cooling could be a bit better. Overall very happy." + }, + { + "user": "User84568", + "rating": 3, + "comment": "Good enough for the price, but fell short on cooling. Maybe look around before committing." + }, + { + "user": "User59164", + "rating": 4, + "comment": "Very great choice. The cooling is definitely a plus. However, the file transfer times could be a bit better. Overall very happy." + }, + { + "user": "User83189", + "rating": 5, + "comment": "Incredible product! The Storage IO is top tier. I've also noticed great improvements in speed. Highly recommend." + }, + { + "user": "User62649", + "rating": 5, + "comment": "Solid product! The Storage IO is top tier. I've also noticed great improvements in speed. Highly recommend." + } + ], + "benchmarks": { + "CDM Seq Read": "7311 MB/s", + "CDM Seq Write": "6623 MB/s", + "Random 4K Read": "1010K IOPS", + "Avg Load Temp": "76°C" + }, + "ratingStats": { + "1": 494, + "2": 70, + "3": 212, + "4": 708, + "5": 5596, + "total": 7080, + "avg": "4.5" + } + }, + { + "id": 102, + "title": "WD Black SN850X", + "subtitle": "High performance gaming SSD", + "category": "SSD", + "isNew": false, + "features": { + "Capacity": "2TB", + "Speed": "7300 MB/s" + }, + "specifications": { + "Capacity": "2TB", + "Read Speed": "7300 MB/s", + "Write Speed": "6600 MB/s", + "Interface": "PCIe 4.0 x4", + "FormFactor": "M.2 2280", + "Endurance": "1200 TBW" + }, + "scores": { + "Speed": 96, + "Reliability": 93, + "Value": 89, + "Thermal": 88, + "Overall": 92 + }, + "prices": { + "amazon": { + "price": "$149", + "link": "https://www.amazon.com/s?k=WD%20Black%20SN850X%202TB" + }, + "flipkart": { + "price": "₹13,999", + "link": "https://www.flipkart.com/search?q=WD%20Black%20SN850X%202TB" + }, + "official": { + "price": "$159", + "link": "https://www.google.com/search?q=WD%20Black%20SN850X+official+site" + } + }, + "image": "https://www.sandisk.com/content/dam/sandisk/en-us/assets/products/internal-storage/wd-black-sn850x-nvme-ssd/gallery/wd-black-sn850x-nvme-ssd-heatsink-front.png.thumb.1280.1280.png", + "reviews": [ + { + "user": "User57949", + "rating": 5, + "comment": "Excellent product! The speed is top tier. I've also noticed great improvements in file transfer times. Highly recommend." + }, + { + "user": "User47346", + "rating": 2, + "comment": "Good enough for the price, but fell short on Storage IO. Maybe look around before committing." + }, + { + "user": "User62749", + "rating": 4, + "comment": "Very fantastic choice. The cooling is definitely a plus. However, the Storage IO could be a bit better. Overall very happy." + }, + { + "user": "User82094", + "rating": 4, + "comment": "Very great choice. The cooling is definitely a plus. However, the Storage IO could be a bit better. Overall very happy." + } + ], + "benchmarks": { + "CDM Seq Read": "7049 MB/s", + "CDM Seq Write": "6971 MB/s", + "Random 4K Read": "1093K IOPS", + "Avg Load Temp": "63°C" + }, + "ratingStats": { + "1": 275, + "2": 35, + "3": 105, + "4": 350, + "5": 2740, + "total": 3505, + "avg": "4.5" + } + }, + { + "id": 103, + "title": "Crucial T700", + "subtitle": "Next-gen PCIe 5.0 speed", + "category": "SSD", + "isNew": true, + "features": { + "Capacity": "2TB", + "Speed": "12400 MB/s" + }, + "specifications": { + "Capacity": "2TB", + "Read Speed": "12400 MB/s", + "Write Speed": "11800 MB/s", + "Interface": "PCIe 5.0 x4", + "FormFactor": "M.2 2280", + "Endurance": "1200 TBW" + }, + "scores": { + "Speed": 100, + "Reliability": 90, + "Value": 75, + "Thermal": 70, + "Overall": 84 + }, + "prices": { + "amazon": { + "price": "$269", + "link": "https://www.amazon.com/s?k=Crucial%20T700%202TB" + }, + "flipkart": { + "price": "₹25,999", + "link": "https://www.flipkart.com/search?q=Crucial%20T700%202TB" + }, + "official": { + "price": "$289", + "link": "https://www.google.com/search?q=Crucial%20T700+official+site" + } + }, + "image": "https://www.primeabgb.com/wp-content/uploads/2025/08/Crucial-T700-1TB-PCIe-5.0-x4-M.2-Internal-SSD-CT1000T700SSD3.jpg", + "reviews": [ + { + "user": "User88150", + "rating": 4, + "comment": "Very brilliant choice. The boot times is definitely a plus. However, the file transfer times could be a bit better. Overall very happy." + }, + { + "user": "User59164", + "rating": 4, + "comment": "Very solid choice. The cooling is definitely a plus. However, the cooling could be a bit better. Overall very happy." + }, + { + "user": "User97658", + "rating": 4, + "comment": "Very fantastic choice. The cooling is definitely a plus. However, the boot times could be a bit better. Overall very happy." + }, + { + "user": "User92388", + "rating": 5, + "comment": "Fantastic product! The speed is top tier. I've also noticed great improvements in file transfer times. Highly recommend." + } + ], + "benchmarks": { + "CDM Seq Read": "6622 MB/s", + "CDM Seq Write": "6476 MB/s", + "Random 4K Read": "964K IOPS", + "Avg Load Temp": "67°C" + }, + "ratingStats": { + "1": 864, + "2": 59, + "3": 177, + "4": 590, + "5": 4219, + "total": 5909, + "avg": "4.2" + } + }, + { + "id": 104, + "title": "Kingston KC3000", + "subtitle": "Reliable high-speed storage", + "category": "SSD", + "isNew": false, + "features": { + "Capacity": "1TB", + "Speed": "7000 MB/s" + }, + "specifications": { + "Capacity": "1TB", + "Read Speed": "7000 MB/s", + "Write Speed": "6000 MB/s", + "Interface": "PCIe 4.0 x4", + "FormFactor": "M.2 2280", + "Endurance": "800 TBW" + }, + "scores": { + "Speed": 92, + "Reliability": 94, + "Value": 95, + "Thermal": 91, + "Overall": 93 + }, + "prices": { + "amazon": { + "price": "$85", + "link": "https://www.amazon.com/s?k=Kingston%20KC3000%201TB" + }, + "flipkart": { + "price": "₹7,999", + "link": "https://www.flipkart.com/search?q=Kingston%20KC3000%201TB" + }, + "official": { + "price": "$95", + "link": "https://www.google.com/search?q=Kingston%20KC3000+official+site" + } + }, + "image": "https://www.primeabgb.com/wp-content/uploads/2025/08/Kingston-KC3000-M.2-2280-512GB-PCIe-4.0-x4-NVMe-3D-TLC-Internal-SSD-SKC3000S512G.jpg", + "reviews": [ + { + "user": "User22554", + "rating": 5, + "comment": "Incredible product! The cooling is top tier. I've also noticed great improvements in file transfer times. Highly recommend." + }, + { + "user": "User97561", + "rating": 3, + "comment": "Decent for the price, but fell short on cooling. Maybe look around before committing." + }, + { + "user": "User12855", + "rating": 5, + "comment": "Incredible product! The speed is top tier. I've also noticed great improvements in speed. Highly recommend." + }, + { + "user": "User64851", + "rating": 5, + "comment": "Solid product! The Storage IO is top tier. I've also noticed great improvements in cooling. Highly recommend." + }, + { + "user": "User66869", + "rating": 4, + "comment": "Very great choice. The speed is definitely a plus. However, the file transfer times could be a bit better. Overall very happy." + } + ], + "benchmarks": { + "CDM Seq Read": "8210 MB/s", + "CDM Seq Write": "6951 MB/s", + "Random 4K Read": "995K IOPS", + "Avg Load Temp": "75°C" + }, + "ratingStats": { + "1": 396, + "2": 56, + "3": 169, + "4": 566, + "5": 4476, + "total": 5663, + "avg": "4.5" + } + }, + { + "id": 105, + "title": "Sabrent Rocket 4 Plus", + "subtitle": "Enthusiast level performance", + "category": "SSD", + "isNew": false, + "features": { + "Capacity": "4TB", + "Speed": "7100 MB/s" + }, + "specifications": { + "Capacity": "4TB", + "Read Speed": "7100 MB/s", + "Write Speed": "6600 MB/s", + "Interface": "PCIe 4.0 x4", + "FormFactor": "M.2 2280", + "Endurance": "2800 TBW" + }, + "scores": { + "Speed": 94, + "Reliability": 95, + "Value": 82, + "Thermal": 85, + "Overall": 89 + }, + "prices": { + "amazon": { + "price": "$399", + "link": "https://www.amazon.com/s?k=Sabrent%20Rocket%204%20Plus%204TB" + }, + "flipkart": { + "price": "₹38,000", + "link": "https://www.flipkart.com/search?q=Sabrent%20Rocket%204%20Plus%204TB" + }, + "official": { + "price": "$420", + "link": "https://www.google.com/search?q=Sabrent%20Rocket%204%20Plus+official+site" + } + }, + "image": "https://m.media-amazon.com/images/I/71VyFwKPVFL.jpg", + "reviews": [ + { + "user": "User12868", + "rating": 4, + "comment": "Very solid choice. The file transfer times is definitely a plus. However, the speed could be a bit better. Overall very happy." + }, + { + "user": "User79425", + "rating": 4, + "comment": "Very fantastic choice. The file transfer times is definitely a plus. However, the cooling could be a bit better. Overall very happy." + }, + { + "user": "User84523", + "rating": 5, + "comment": "Incredible product! The speed is top tier. I've also noticed great improvements in cooling. Highly recommend." + }, + { + "user": "User64645", + "rating": 5, + "comment": "Great product! The speed is top tier. I've also noticed great improvements in cooling. Highly recommend." + }, + { + "user": "User16809", + "rating": 3, + "comment": "Okay for the price, but fell short on Storage IO. Maybe look around before committing." + } + ], + "benchmarks": { + "CDM Seq Read": "7896 MB/s", + "CDM Seq Write": "6865 MB/s", + "Random 4K Read": "1037K IOPS", + "Avg Load Temp": "69°C" + }, + "ratingStats": { + "1": 542, + "2": 52, + "3": 156, + "4": 521, + "5": 3948, + "total": 5219, + "avg": "4.4" + } + }, + { + "id": 106, + "title": "TeamGroup MP34", + "subtitle": "Affordable NVMe option", + "category": "SSD", + "isNew": false, + "features": { + "Capacity": "1TB", + "Speed": "3400 MB/s" + }, + "specifications": { + "Capacity": "1TB", + "Read Speed": "3400 MB/s", + "Write Speed": "2900 MB/s", + "Interface": "PCIe 3.0 x4", + "FormFactor": "M.2 2280", + "Endurance": "1660 TBW" + }, + "scores": { + "Speed": 75, + "Reliability": 90, + "Value": 98, + "Thermal": 95, + "Overall": 90 + }, + "prices": { + "amazon": { + "price": "$49", + "link": "https://www.amazon.com/s?k=TeamGroup%20MP34%201TB" + }, + "flipkart": { + "price": "₹4,500", + "link": "https://www.flipkart.com/search?q=TeamGroup%20MP34%201TB" + }, + "official": { + "price": "$55", + "link": "https://www.google.com/search?q=TeamGroup%20MP34+official+site" + } + }, + "image": "https://m.media-amazon.com/images/I/71ki82NZx+L.jpg", + "reviews": [ + { + "user": "User85401", + "rating": 5, + "comment": "Fantastic product! The speed is top tier. I've also noticed great improvements in Storage IO. Highly recommend." + }, + { + "user": "User61246", + "rating": 3, + "comment": "Good enough for the price, but fell short on file transfer times. Maybe look around before committing." + }, + { + "user": "User20522", + "rating": 5, + "comment": "Brilliant product! The cooling is top tier. I've also noticed great improvements in speed. Highly recommend." + }, + { + "user": "User34846", + "rating": 5, + "comment": "Great product! The Storage IO is top tier. I've also noticed great improvements in speed. Highly recommend." + }, + { + "user": "User15854", + "rating": 4, + "comment": "Very outstanding choice. The Storage IO is definitely a plus. However, the boot times could be a bit better. Overall very happy." + } + ], + "benchmarks": { + "CDM Seq Read": "7422 MB/s", + "CDM Seq Write": "6303 MB/s", + "Random 4K Read": "994K IOPS", + "Avg Load Temp": "69°C" + }, + "ratingStats": { + "1": 329, + "2": 34, + "3": 103, + "4": 344, + "5": 2636, + "total": 3446, + "avg": "4.4" + } + }, + { + "id": 107, + "title": "Crucial MX500", + "subtitle": "Classic SATA SSD", + "category": "SSD", + "isNew": false, + "features": { + "Capacity": "1TB", + "Speed": "560 MB/s" + }, + "specifications": { + "Capacity": "1TB", + "Read Speed": "560 MB/s", + "Write Speed": "510 MB/s", + "Interface": "SATA III", + "FormFactor": "2.5 inch", + "Endurance": "360 TBW" + }, + "scores": { + "Speed": 50, + "Reliability": 98, + "Value": 95, + "Thermal": 99, + "Overall": 86 + }, + "prices": { + "amazon": { + "price": "$55", + "link": "https://www.amazon.com/s?k=Crucial%20MX500%201TB" + }, + "flipkart": { + "price": "₹4,999", + "link": "https://www.flipkart.com/search?q=Crucial%20MX500%201TB" + }, + "official": { + "price": "$60", + "link": "https://www.google.com/search?q=Crucial%20MX500+official+site" + } + }, + "image": "https://rukminim2.flixcart.com/image/480/640/k12go7k0/internal-hard-drive/2/u/e/crucial-ct1000mx500ssd4-original-imafkpqyxdpvzatn.jpeg?q=90", + "reviews": [ + { + "user": "User72634", + "rating": 4, + "comment": "Very excellent choice. The boot times is definitely a plus. However, the file transfer times could be a bit better. Overall very happy." + }, + { + "user": "User39235", + "rating": 5, + "comment": "Great product! The file transfer times is top tier. I've also noticed great improvements in speed. Highly recommend." + }, + { + "user": "User78722", + "rating": 3, + "comment": "Average for the price, but fell short on cooling. Maybe look around before committing." + }, + { + "user": "User55260", + "rating": 4, + "comment": "Very outstanding choice. The cooling is definitely a plus. However, the speed could be a bit better. Overall very happy." + } + ], + "benchmarks": { + "CDM Seq Read": "7495 MB/s", + "CDM Seq Write": "6059 MB/s", + "Random 4K Read": "988K IOPS", + "Avg Load Temp": "63°C" + }, + "ratingStats": { + "1": 441, + "2": 33, + "3": 101, + "4": 339, + "5": 2483, + "total": 3397, + "avg": "4.3" + } + }, + { + "id": 108, + "title": "Corsair MP600 Pro", + "subtitle": "Heatsink equipped NVMe", + "category": "SSD", + "isNew": false, + "features": { + "Capacity": "2TB", + "Speed": "7100 MB/s" + }, + "specifications": { + "Capacity": "2TB", + "Read Speed": "7100 MB/s", + "Write Speed": "6800 MB/s", + "Interface": "PCIe 4.0 x4", + "FormFactor": "M.2 2280 w/ Heatsink", + "Endurance": "1400 TBW" + }, + "scores": { + "Speed": 94, + "Reliability": 96, + "Value": 85, + "Thermal": 98, + "Overall": 93 + }, + "prices": { + "amazon": { + "price": "$155", + "link": "https://www.amazon.com/s?k=Corsair%20MP600%20Pro%202TB" + }, + "flipkart": { + "price": "₹14,800", + "link": "https://www.flipkart.com/search?q=Corsair%20MP600%20Pro%202TB" + }, + "official": { + "price": "$165", + "link": "https://www.google.com/search?q=Corsair%20MP600%20Pro+official+site" + } + }, + "image": "https://www.pcstudio.in/wp-content/uploads/2025/01/Corsair-Mp600-Pro-Nh-2Tb-Gen4-NVMe-M2-Internal-Ssd-1-1.webp", + "reviews": [ + { + "user": "User68688", + "rating": 3, + "comment": "Decent for the price, but fell short on file transfer times. Maybe look around before committing." + }, + { + "user": "User70863", + "rating": 2, + "comment": "Okay for the price, but fell short on cooling. Maybe look around before committing." + }, + { + "user": "User55147", + "rating": 4, + "comment": "Very excellent choice. The cooling is definitely a plus. However, the file transfer times could be a bit better. Overall very happy." + }, + { + "user": "User95750", + "rating": 4, + "comment": "Very outstanding choice. The speed is definitely a plus. However, the boot times could be a bit better. Overall very happy." + }, + { + "user": "User74348", + "rating": 5, + "comment": "Outstanding product! The cooling is top tier. I've also noticed great improvements in speed. Highly recommend." + } + ], + "benchmarks": { + "CDM Seq Read": "6920 MB/s", + "CDM Seq Write": "7336 MB/s", + "Random 4K Read": "1123K IOPS", + "Avg Load Temp": "70°C" + }, + "ratingStats": { + "1": 472, + "2": 67, + "3": 203, + "4": 677, + "5": 5352, + "total": 6771, + "avg": "4.5" + } + }, + { + "id": 201, + "title": "NVIDIA RTX 4090", + "subtitle": "The ultimate GPU", + "category": "GRAPHICS CARDS", + "isNew": false, + "features": { + "VRAM": "24GB GDDR6X", + "Power": "450W" + }, + "specifications": { + "Architecture": "Ada Lovelace", + "CudaCores": "16384", + "VRAM": "24GB GDDR6X", + "Boost Clock": "2.52 GHz", + "Power": "450W", + "Bandwidth": "1008 GB/s" + }, + "scores": { + "Gaming": 100, + "RayTracing": 100, + "Value": 60, + "Efficiency": 90, + "Overall": 88 + }, + "prices": { + "amazon": { + "price": "$1599", + "link": "https://www.amazon.com/s?k=NVIDIA%20RTX%204090" + }, + "flipkart": { + "price": "₹1,55,000", + "link": "https://www.flipkart.com/search?q=NVIDIA%20RTX%204090" + }, + "official": { + "price": "$1599", + "link": "https://www.google.com/search?q=NVIDIA%20RTX%204090+official+site" + } + }, + "image": "/images/rtx4090.jpg", + "reviews": [ + { + "user": "User91875", + "rating": 3, + "comment": "Okay for the price, but fell short on driver stability. Maybe look around before committing." + }, + { + "user": "User56447", + "rating": 5, + "comment": "Brilliant product! The ray tracing is top tier. I've also noticed great improvements in 4K capability. Highly recommend." + }, + { + "user": "User85046", + "rating": 4, + "comment": "Very incredible choice. The driver stability is definitely a plus. However, the ray tracing could be a bit better. Overall very happy." + }, + { + "user": "User75745", + "rating": 4, + "comment": "Very excellent choice. The 1440p performance is definitely a plus. However, the ray tracing could be a bit better. Overall very happy." + }, + { + "user": "User54435", + "rating": 4, + "comment": "Very brilliant choice. The driver stability is definitely a plus. However, the 4K capability could be a bit better. Overall very happy." + }, + { + "user": "User93844", + "rating": 5, + "comment": "Fantastic product! The driver stability is top tier. I've also noticed great improvements in frame rates. Highly recommend." + } + ], + "benchmarks": { + "3DMark TimeSpy": "26778 pts", + "Port Royal": "14585 pts", + "Cyberpunk 4K FPS": "92 fps", + "Alan Wake 2 1440p": "114 fps" + }, + "ratingStats": { + "1": 834, + "2": 74, + "3": 223, + "4": 743, + "5": 5561, + "total": 7435, + "avg": "4.4" + } + }, + { + "id": 202, + "title": "AMD Radeon RX 7900 XTX", + "subtitle": "Flagship AMD performance", + "category": "GRAPHICS CARDS", + "isNew": false, + "features": { + "VRAM": "24GB GDDR6", + "Power": "355W" + }, + "specifications": { + "Architecture": "RDNA 3", + "StreamProcessors": "6144", + "VRAM": "24GB GDDR6", + "Boost Clock": "2.50 GHz", + "Power": "355W", + "Bandwidth": "960 GB/s" + }, + "scores": { + "Gaming": 96, + "RayTracing": 82, + "Value": 85, + "Efficiency": 88, + "Overall": 88 + }, + "prices": { + "amazon": { + "price": "$950", + "link": "https://www.amazon.com/s?k=AMD%20Radeon%20RX%207900%20XTX" + }, + "flipkart": { + "price": "₹95,000", + "link": "https://www.flipkart.com/search?q=AMD%20Radeon%20RX%207900%20XTX" + }, + "official": { + "price": "$999", + "link": "https://www.google.com/search?q=AMD%20Radeon%20RX%207900%20XTX+official+site" + } + }, + "image": "https://m.media-amazon.com/images/I/81il2WdPPJL.jpg", + "reviews": [ + { + "user": "User81330", + "rating": 5, + "comment": "Solid product! The 4K capability is top tier. I've also noticed great improvements in 4K capability. Highly recommend." + }, + { + "user": "User59815", + "rating": 4, + "comment": "Very excellent choice. The driver stability is definitely a plus. However, the 4K capability could be a bit better. Overall very happy." + }, + { + "user": "User19580", + "rating": 4, + "comment": "Very incredible choice. The frame rates is definitely a plus. However, the 4K capability could be a bit better. Overall very happy." + }, + { + "user": "User28066", + "rating": 5, + "comment": "Excellent product! The driver stability is top tier. I've also noticed great improvements in driver stability. Highly recommend." + } + ], + "benchmarks": { + "3DMark TimeSpy": "24759 pts", + "Port Royal": "14613 pts", + "Cyberpunk 4K FPS": "91 fps", + "Alan Wake 2 1440p": "120 fps" + }, + "ratingStats": { + "1": 752, + "2": 66, + "3": 200, + "4": 668, + "5": 5001, + "total": 6687, + "avg": "4.4" + } + }, + { + "id": 203, + "title": "NVIDIA RTX 4080 Super", + "subtitle": "High-end 4K gaming", + "category": "GRAPHICS CARDS", + "isNew": true, + "features": { + "VRAM": "16GB GDDR6X", + "Power": "320W" + }, + "specifications": { + "Architecture": "Ada Lovelace", + "CudaCores": "10240", + "VRAM": "16GB GDDR6X", + "Boost Clock": "2.55 GHz", + "Power": "320W", + "Bandwidth": "736 GB/s" + }, + "scores": { + "Gaming": 94, + "RayTracing": 95, + "Value": 82, + "Efficiency": 94, + "Overall": 91 + }, + "prices": { + "amazon": { + "price": "$999", + "link": "https://www.amazon.com/s?k=NVIDIA%20RTX%204080%20Super" + }, + "flipkart": { + "price": "₹99,999", + "link": "https://www.flipkart.com/search?q=NVIDIA%20RTX%204080%20Super" + }, + "official": { + "price": "$999", + "link": "https://www.google.com/search?q=NVIDIA%20RTX%204080%20Super+official+site" + } + }, + "image": "https://m.media-amazon.com/images/I/71-r9mRIZBL._AC_UF1000,1000_QL80_.jpg", + "reviews": [ + { + "user": "User27910", + "rating": 4, + "comment": "Very incredible choice. The driver stability is definitely a plus. However, the 1440p performance could be a bit better. Overall very happy." + }, + { + "user": "User73605", + "rating": 5, + "comment": "Incredible product! The 4K capability is top tier. I've also noticed great improvements in frame rates. Highly recommend." + }, + { + "user": "User36160", + "rating": 2, + "comment": "Acceptable for the price, but fell short on 1440p performance. Maybe look around before committing." + }, + { + "user": "User44224", + "rating": 4, + "comment": "Very excellent choice. The 1440p performance is definitely a plus. However, the 1440p performance could be a bit better. Overall very happy." + } + ], + "benchmarks": { + "3DMark TimeSpy": "26123 pts", + "Port Royal": "14463 pts", + "Cyberpunk 4K FPS": "87 fps", + "Alan Wake 2 1440p": "117 fps" + }, + "ratingStats": { + "1": 492, + "2": 56, + "3": 169, + "4": 566, + "5": 4380, + "total": 5663, + "avg": "4.5" + } + }, + { + "id": 204, + "title": "AMD Radeon RX 7800 XT", + "subtitle": "1440p sweet spot", + "category": "GRAPHICS CARDS", + "isNew": true, + "features": { + "VRAM": "16GB GDDR6", + "Power": "263W" + }, + "specifications": { + "Architecture": "RDNA 3", + "StreamProcessors": "3840", + "VRAM": "16GB GDDR6", + "Boost Clock": "2.43 GHz", + "Power": "263W", + "Bandwidth": "624 GB/s" + }, + "scores": { + "Gaming": 86, + "RayTracing": 70, + "Value": 95, + "Efficiency": 85, + "Overall": 84 + }, + "prices": { + "amazon": { + "price": "$499", + "link": "https://www.amazon.com/s?k=AMD%20Radeon%20RX%207800%20XT" + }, + "flipkart": { + "price": "₹47,000", + "link": "https://www.flipkart.com/search?q=AMD%20Radeon%20RX%207800%20XT" + }, + "official": { + "price": "$499", + "link": "https://www.google.com/search?q=AMD%20Radeon%20RX%207800%20XT+official+site" + } + }, + "image": "https://static.gigabyte.com/StaticFile/Image/Global/369cb90b3cf9ca4b7b00802e3a1ce7b8/Product/36215/png/1000", + "reviews": [ + { + "user": "User79108", + "rating": 5, + "comment": "Fantastic product! The frame rates is top tier. I've also noticed great improvements in driver stability. Highly recommend." + }, + { + "user": "User15288", + "rating": 5, + "comment": "Brilliant product! The frame rates is top tier. I've also noticed great improvements in 1440p performance. Highly recommend." + }, + { + "user": "User38993", + "rating": 4, + "comment": "Very solid choice. The 4K capability is definitely a plus. However, the frame rates could be a bit better. Overall very happy." + }, + { + "user": "User83531", + "rating": 3, + "comment": "Average for the price, but fell short on ray tracing. Maybe look around before committing." + }, + { + "user": "User97000", + "rating": 4, + "comment": "Very great choice. The ray tracing is definitely a plus. However, the 1440p performance could be a bit better. Overall very happy." + } + ], + "benchmarks": { + "3DMark TimeSpy": "24904 pts", + "Port Royal": "15918 pts", + "Cyberpunk 4K FPS": "83 fps", + "Alan Wake 2 1440p": "110 fps" + }, + "ratingStats": { + "1": 1403, + "2": 95, + "3": 287, + "4": 958, + "5": 6846, + "total": 9589, + "avg": "4.2" + } + }, + { + "id": 205, + "title": "NVIDIA RTX 4070 Ti Super", + "subtitle": "Premium 1440p / Entry 4K", + "category": "GRAPHICS CARDS", + "isNew": true, + "features": { + "VRAM": "16GB GDDR6X", + "Power": "285W" + }, + "specifications": { + "Architecture": "Ada Lovelace", + "CudaCores": "8448", + "VRAM": "16GB GDDR6X", + "Boost Clock": "2.61 GHz", + "Power": "285W", + "Bandwidth": "672 GB/s" + }, + "scores": { + "Gaming": 89, + "RayTracing": 90, + "Value": 88, + "Efficiency": 92, + "Overall": 90 + }, + "prices": { + "amazon": { + "price": "$799", + "link": "https://www.amazon.com/s?k=NVIDIA%20RTX%204070%20Ti%20Super" + }, + "flipkart": { + "price": "₹75,000", + "link": "https://www.flipkart.com/search?q=NVIDIA%20RTX%204070%20Ti%20Super" + }, + "official": { + "price": "$799", + "link": "https://www.google.com/search?q=NVIDIA%20RTX%204070%20Ti%20Super+official+site" + } + }, + "image": "https://storage-asset.msi.com/global/picture/product/product_17046991811c9eb5d51a82095c16a47e5200365e92.webp", + "reviews": [ + { + "user": "User16847", + "rating": 4, + "comment": "Very great choice. The ray tracing is definitely a plus. However, the 1440p performance could be a bit better. Overall very happy." + }, + { + "user": "User45394", + "rating": 5, + "comment": "Incredible product! The 4K capability is top tier. I've also noticed great improvements in driver stability. Highly recommend." + }, + { + "user": "User23141", + "rating": 4, + "comment": "Very outstanding choice. The 4K capability is definitely a plus. However, the 4K capability could be a bit better. Overall very happy." + }, + { + "user": "User65967", + "rating": 5, + "comment": "Incredible product! The 1440p performance is top tier. I've also noticed great improvements in 1440p performance. Highly recommend." + } + ], + "benchmarks": { + "3DMark TimeSpy": "28342 pts", + "Port Royal": "16080 pts", + "Cyberpunk 4K FPS": "85 fps", + "Alan Wake 2 1440p": "109 fps" + }, + "ratingStats": { + "1": 860, + "2": 90, + "3": 270, + "4": 902, + "5": 6904, + "total": 9026, + "avg": "4.4" + } + }, + { + "id": 206, + "title": "AMD Radeon RX 7600", + "subtitle": "Budget 1080p gaming", + "category": "GRAPHICS CARDS", + "isNew": false, + "features": { + "VRAM": "8GB GDDR6", + "Power": "165W" + }, + "specifications": { + "Architecture": "RDNA 3", + "StreamProcessors": "2048", + "VRAM": "8GB GDDR6", + "Boost Clock": "2.65 GHz", + "Power": "165W", + "Bandwidth": "288 GB/s" + }, + "scores": { + "Gaming": 75, + "RayTracing": 50, + "Value": 92, + "Efficiency": 89, + "Overall": 77 + }, + "prices": { + "amazon": { + "price": "$259", + "link": "https://www.amazon.com/s?k=AMD%20Radeon%20RX%207600" + }, + "flipkart": { + "price": "₹24,900", + "link": "https://www.flipkart.com/search?q=AMD%20Radeon%20RX%207600" + }, + "official": { + "price": "$269", + "link": "https://www.google.com/search?q=AMD%20Radeon%20RX%207600+official+site" + } + }, + "image": "https://m.media-amazon.com/images/I/71+Lh5QLfyL.jpg", + "reviews": [ + { + "user": "User49658", + "rating": 3, + "comment": "Decent for the price, but fell short on ray tracing. Maybe look around before committing." + }, + { + "user": "User55122", + "rating": 5, + "comment": "Fantastic product! The 1440p performance is top tier. I've also noticed great improvements in driver stability. Highly recommend." + }, + { + "user": "User42974", + "rating": 2, + "comment": "Acceptable for the price, but fell short on driver stability. Maybe look around before committing." + }, + { + "user": "User56312", + "rating": 4, + "comment": "Very brilliant choice. The driver stability is definitely a plus. However, the 4K capability could be a bit better. Overall very happy." + }, + { + "user": "User76764", + "rating": 4, + "comment": "Very solid choice. The 1440p performance is definitely a plus. However, the frame rates could be a bit better. Overall very happy." + }, + { + "user": "User44021", + "rating": 3, + "comment": "Okay for the price, but fell short on ray tracing. Maybe look around before committing." + } + ], + "benchmarks": { + "3DMark TimeSpy": "20987 pts", + "Port Royal": "14803 pts", + "Cyberpunk 4K FPS": "80 fps", + "Alan Wake 2 1440p": "108 fps" + }, + "ratingStats": { + "1": 1649, + "2": 80, + "3": 240, + "4": 802, + "5": 5249, + "total": 8020, + "avg": "4.0" + } + }, + { + "id": 207, + "title": "NVIDIA RTX 3060", + "subtitle": "Most popular mainstream GPU", + "category": "GRAPHICS CARDS", + "isNew": false, + "features": { + "VRAM": "12GB GDDR6", + "Power": "170W" + }, + "specifications": { + "Architecture": "Ampere", + "CudaCores": "3584", + "VRAM": "12GB GDDR6", + "Boost Clock": "1.78 GHz", + "Power": "170W", + "Bandwidth": "360 GB/s" + }, + "scores": { + "Gaming": 72, + "RayTracing": 65, + "Value": 90, + "Efficiency": 85, + "Overall": 78 + }, + "prices": { + "amazon": { + "price": "$280", + "link": "https://www.amazon.com/s?k=NVIDIA%20RTX%203060" + }, + "flipkart": { + "price": "₹26,000", + "link": "https://www.flipkart.com/search?q=NVIDIA%20RTX%203060" + }, + "official": { + "price": "$329", + "link": "https://www.google.com/search?q=NVIDIA%20RTX%203060+official+site" + } + }, + "image": "https://m.media-amazon.com/images/I/71tduSp8ooL.jpg", + "reviews": [ + { + "user": "User22812", + "rating": 5, + "comment": "Solid product! The 4K capability is top tier. I've also noticed great improvements in 4K capability. Highly recommend." + }, + { + "user": "User54012", + "rating": 4, + "comment": "Very outstanding choice. The frame rates is definitely a plus. However, the 4K capability could be a bit better. Overall very happy." + }, + { + "user": "User96124", + "rating": 4, + "comment": "Very brilliant choice. The frame rates is definitely a plus. However, the ray tracing could be a bit better. Overall very happy." + }, + { + "user": "User80474", + "rating": 5, + "comment": "Great product! The driver stability is top tier. I've also noticed great improvements in ray tracing. Highly recommend." + } + ], + "benchmarks": { + "3DMark TimeSpy": "22734 pts", + "Port Royal": "12818 pts", + "Cyberpunk 4K FPS": "74 fps", + "Alan Wake 2 1440p": "101 fps" + }, + "ratingStats": { + "1": 1227, + "2": 62, + "3": 186, + "4": 622, + "5": 4123, + "total": 6220, + "avg": "4.0" + } + }, + { + "id": 208, + "title": "Intel Arc A770", + "subtitle": "Intel's flagship entry", + "category": "GRAPHICS CARDS", + "isNew": false, + "features": { + "VRAM": "16GB GDDR6", + "Power": "225W" + }, + "specifications": { + "Architecture": "Alchemist", + "XeCores": "32", + "VRAM": "16GB GDDR6", + "Boost Clock": "2.10 GHz", + "Power": "225W", + "Bandwidth": "512 GB/s" + }, + "scores": { + "Gaming": 76, + "RayTracing": 78, + "Value": 89, + "Efficiency": 75, + "Overall": 80 + }, + "prices": { + "amazon": { + "price": "$290", + "link": "https://www.amazon.com/s?k=Intel%20Arc%20A770" + }, + "flipkart": { + "price": "₹28,500", + "link": "https://www.flipkart.com/search?q=Intel%20Arc%20A770" + }, + "official": { + "price": "$349", + "link": "https://www.google.com/search?q=Intel%20Arc%20A770+official+site" + } + }, + "image": "https://m.media-amazon.com/images/I/71Dqh5iF+AL.jpg", + "reviews": [ + { + "user": "User28512", + "rating": 5, + "comment": "Fantastic product! The 1440p performance is top tier. I've also noticed great improvements in 4K capability. Highly recommend." + }, + { + "user": "User95258", + "rating": 4, + "comment": "Very incredible choice. The ray tracing is definitely a plus. However, the ray tracing could be a bit better. Overall very happy." + }, + { + "user": "User27477", + "rating": 4, + "comment": "Very incredible choice. The ray tracing is definitely a plus. However, the frame rates could be a bit better. Overall very happy." + }, + { + "user": "User58169", + "rating": 5, + "comment": "Brilliant product! The 1440p performance is top tier. I've also noticed great improvements in driver stability. Highly recommend." + } + ], + "benchmarks": { + "3DMark TimeSpy": "21552 pts", + "Port Royal": "13003 pts", + "Cyberpunk 4K FPS": "74 fps", + "Alan Wake 2 1440p": "105 fps" + }, + "ratingStats": { + "1": 1387, + "2": 77, + "3": 231, + "4": 770, + "5": 5237, + "total": 7702, + "avg": "4.1" + } + }, + { + "id": 301, + "title": "AMD Ryzen 7 7800X3D", + "subtitle": "Best gaming CPU", + "category": "CPUs", + "isNew": false, + "features": { + "Cores": "8C/16T", + "Boost": "5.0 GHz" + }, + "specifications": { + "Cores": "8", + "Threads": "16", + "Base Clock": "4.2 GHz", + "Boost Clock": "5.0 GHz", + "L3 Cache": "96MB (3D V-Cache)", + "TDP": "120W" + }, + "scores": { + "Gaming": 100, + "Productivity": 82, + "Value": 95, + "Efficiency": 98, + "Overall": 94 + }, + "prices": { + "amazon": { + "price": "$369", + "link": "https://www.amazon.com/s?k=AMD%20Ryzen%207%207800X3D" + }, + "flipkart": { + "price": "₹35,000", + "link": "https://www.flipkart.com/search?q=AMD%20Ryzen%207%207800X3D" + }, + "official": { + "price": "$449", + "link": "https://www.google.com/search?q=AMD%20Ryzen%207%207800X3D+official+site" + } + }, + "image": "https://images-na.ssl-images-amazon.com/images/P/B0BTZB7F88.01.LZZZZZZZ.jpg", + "reviews": [ + { + "user": "User29168", + "rating": 4, + "comment": "Very outstanding choice. The temperatures is definitely a plus. However, the power efficiency could be a bit better. Overall very happy." + }, + { + "user": "User68184", + "rating": 5, + "comment": "Great product! The temperatures is top tier. I've also noticed great improvements in multitasking. Highly recommend." + }, + { + "user": "User50149", + "rating": 4, + "comment": "Very great choice. The multitasking is definitely a plus. However, the render times could be a bit better. Overall very happy." + }, + { + "user": "User45992", + "rating": 2, + "comment": "Good enough for the price, but fell short on temperatures. Maybe look around before committing." + }, + { + "user": "User51523", + "rating": 3, + "comment": "Decent for the price, but fell short on temperatures. Maybe look around before committing." + } + ], + "benchmarks": { + "Cinebench R23 Multi": "38554 pts", + "Cinebench R23 Single": "2112 pts", + "Blender Classroom": "5.1 mins", + "Avg Load Temp": "93°C" + }, + "ratingStats": { + "1": 568, + "2": 92, + "3": 278, + "4": 926, + "5": 7405, + "total": 9269, + "avg": "4.6" + } + }, + { + "id": 302, + "title": "Intel Core i9-14900K", + "subtitle": "Ultimate hybrid performance", + "category": "CPUs", + "isNew": true, + "features": { + "Cores": "24C/32T", + "Boost": "6.0 GHz" + }, + "specifications": { + "Cores": "24 (8P+16E)", + "Threads": "32", + "Base Clock": "3.2 GHz", + "Boost Clock": "6.0 GHz", + "L3 Cache": "36MB", + "TDP": "125W (253W Max)" + }, + "scores": { + "Gaming": 98, + "Productivity": 100, + "Value": 75, + "Efficiency": 70, + "Overall": 86 + }, + "prices": { + "amazon": { + "price": "$549", + "link": "https://www.amazon.com/s?k=Intel%20Core%20i9-14900K" + }, + "flipkart": { + "price": "₹53,000", + "link": "https://www.flipkart.com/search?q=Intel%20Core%20i9-14900K" + }, + "official": { + "price": "$589", + "link": "https://www.google.com/search?q=Intel%20Core%20i9-14900K+official+site" + } + }, + "image": "https://m.media-amazon.com/images/I/61aQ0AzVAML._AC_UF1000,1000_QL80_.jpg", + "reviews": [ + { + "user": "User21966", + "rating": 4, + "comment": "Very brilliant choice. The multitasking is definitely a plus. However, the gaming performance could be a bit better. Overall very happy." + }, + { + "user": "User77655", + "rating": 5, + "comment": "Incredible product! The temperatures is top tier. I've also noticed great improvements in multitasking. Highly recommend." + }, + { + "user": "User91115", + "rating": 4, + "comment": "Very outstanding choice. The gaming performance is definitely a plus. However, the multitasking could be a bit better. Overall very happy." + }, + { + "user": "User48191", + "rating": 5, + "comment": "Solid product! The temperatures is top tier. I've also noticed great improvements in temperatures. Highly recommend." + }, + { + "user": "User63267", + "rating": 5, + "comment": "Fantastic product! The power efficiency is top tier. I've also noticed great improvements in render times. Highly recommend." + }, + { + "user": "User65912", + "rating": 5, + "comment": "Excellent product! The gaming performance is top tier. I've also noticed great improvements in multitasking. Highly recommend." + } + ], + "benchmarks": { + "Cinebench R23 Multi": "34462 pts", + "Cinebench R23 Single": "2297 pts", + "Blender Classroom": "4.3 mins", + "Avg Load Temp": "78°C" + }, + "ratingStats": { + "1": 595, + "2": 45, + "3": 137, + "4": 459, + "5": 3358, + "total": 4594, + "avg": "4.3" + } + }, + { + "id": 303, + "title": "AMD Ryzen 9 7950X", + "subtitle": "Top tier productivity", + "category": "CPUs", + "isNew": false, + "features": { + "Cores": "16C/32T", + "Boost": "5.7 GHz" + }, + "specifications": { + "Cores": "16", + "Threads": "32", + "Base Clock": "4.5 GHz", + "Boost Clock": "5.7 GHz", + "L3 Cache": "64MB", + "TDP": "170W" + }, + "scores": { + "Gaming": 90, + "Productivity": 99, + "Value": 85, + "Efficiency": 88, + "Overall": 91 + }, + "prices": { + "amazon": { + "price": "$530", + "link": "https://www.amazon.com/s?k=AMD%20Ryzen%209%207950X" + }, + "flipkart": { + "price": "₹51,000", + "link": "https://www.flipkart.com/search?q=AMD%20Ryzen%209%207950X" + }, + "official": { + "price": "$699", + "link": "https://www.google.com/search?q=AMD%20Ryzen%209%207950X+official+site" + } + }, + "image": "https://m.media-amazon.com/images/I/5116zdA9uyL.jpg", + "reviews": [ + { + "user": "User62645", + "rating": 5, + "comment": "Solid product! The render times is top tier. I've also noticed great improvements in power efficiency. Highly recommend." + }, + { + "user": "User67070", + "rating": 5, + "comment": "Incredible product! The temperatures is top tier. I've also noticed great improvements in power efficiency. Highly recommend." + }, + { + "user": "User13573", + "rating": 3, + "comment": "Average for the price, but fell short on power efficiency. Maybe look around before committing." + }, + { + "user": "User24970", + "rating": 5, + "comment": "Brilliant product! The temperatures is top tier. I've also noticed great improvements in temperatures. Highly recommend." + }, + { + "user": "User69229", + "rating": 2, + "comment": "Okay for the price, but fell short on temperatures. Maybe look around before committing." + } + ], + "benchmarks": { + "Cinebench R23 Multi": "37141 pts", + "Cinebench R23 Single": "2241 pts", + "Blender Classroom": "4.8 mins", + "Avg Load Temp": "82°C" + }, + "ratingStats": { + "1": 822, + "2": 94, + "3": 284, + "4": 948, + "5": 7333, + "total": 9481, + "avg": "4.5" + } + }, + { + "id": 304, + "title": "Intel Core i5-13600K", + "subtitle": "Value and performance", + "category": "CPUs", + "isNew": false, + "features": { + "Cores": "14C/20T", + "Boost": "5.1 GHz" + }, + "specifications": { + "Cores": "14 (6P+8E)", + "Threads": "20", + "Base Clock": "3.5 GHz", + "Boost Clock": "5.1 GHz", + "L3 Cache": "24MB", + "TDP": "125W (181W Max)" + }, + "scores": { + "Gaming": 92, + "Productivity": 88, + "Value": 96, + "Efficiency": 85, + "Overall": 90 + }, + "prices": { + "amazon": { + "price": "$280", + "link": "https://www.amazon.com/s?k=Intel%20Core%20i5-13600K" + }, + "flipkart": { + "price": "₹27,500", + "link": "https://www.flipkart.com/search?q=Intel%20Core%20i5-13600K" + }, + "official": { + "price": "$319", + "link": "https://www.google.com/search?q=Intel%20Core%20i5-13600K+official+site" + } + }, + "image": "https://m.media-amazon.com/images/I/61lNEpDfdcL.jpg", + "reviews": [ + { + "user": "User48959", + "rating": 5, + "comment": "Solid product! The multitasking is top tier. I've also noticed great improvements in render times. Highly recommend." + }, + { + "user": "User58644", + "rating": 4, + "comment": "Very brilliant choice. The gaming performance is definitely a plus. However, the multitasking could be a bit better. Overall very happy." + }, + { + "user": "User80159", + "rating": 2, + "comment": "Acceptable for the price, but fell short on temperatures. Maybe look around before committing." + }, + { + "user": "User60669", + "rating": 4, + "comment": "Very great choice. The temperatures is definitely a plus. However, the gaming performance could be a bit better. Overall very happy." + }, + { + "user": "User67787", + "rating": 5, + "comment": "Excellent product! The multitasking is top tier. I've also noticed great improvements in multitasking. Highly recommend." + } + ], + "benchmarks": { + "Cinebench R23 Multi": "34176 pts", + "Cinebench R23 Single": "2327 pts", + "Blender Classroom": "4.3 mins", + "Avg Load Temp": "84°C" + }, + "ratingStats": { + "1": 490, + "2": 51, + "3": 154, + "4": 513, + "5": 3929, + "total": 5137, + "avg": "4.4" + } + }, + { + "id": 305, + "title": "AMD Ryzen 5 7600X", + "subtitle": "Great entry to AM5", + "category": "CPUs", + "isNew": false, + "features": { + "Cores": "6C/12T", + "Boost": "5.3 GHz" + }, + "specifications": { + "Cores": "6", + "Threads": "12", + "Base Clock": "4.7 GHz", + "Boost Clock": "5.3 GHz", + "L3 Cache": "32MB", + "TDP": "105W" + }, + "scores": { + "Gaming": 88, + "Productivity": 78, + "Value": 94, + "Efficiency": 90, + "Overall": 88 + }, + "prices": { + "amazon": { + "price": "$220", + "link": "https://www.amazon.com/s?k=AMD%20Ryzen%205%207600X" + }, + "flipkart": { + "price": "₹21,000", + "link": "https://www.flipkart.com/search?q=AMD%20Ryzen%205%207600X" + }, + "official": { + "price": "$299", + "link": "https://www.google.com/search?q=AMD%20Ryzen%205%207600X+official+site" + } + }, + "image": "https://i0.wp.com/www.amd.com/content/dam/amd/en/images/products/processors/ryzen/2505503-ryzen-5-7600x.jpg?resize=555%2C555&ssl=1", + "reviews": [ + { + "user": "User59426", + "rating": 5, + "comment": "Incredible product! The temperatures is top tier. I've also noticed great improvements in multitasking. Highly recommend." + }, + { + "user": "User57651", + "rating": 4, + "comment": "Very outstanding choice. The power efficiency is definitely a plus. However, the gaming performance could be a bit better. Overall very happy." + }, + { + "user": "User34177", + "rating": 5, + "comment": "Solid product! The render times is top tier. I've also noticed great improvements in gaming performance. Highly recommend." + }, + { + "user": "User22570", + "rating": 5, + "comment": "Outstanding product! The multitasking is top tier. I've also noticed great improvements in multitasking. Highly recommend." + } + ], + "benchmarks": { + "Cinebench R23 Multi": "39011 pts", + "Cinebench R23 Single": "2176 pts", + "Blender Classroom": "4.6 mins", + "Avg Load Temp": "87°C" + }, + "ratingStats": { + "1": 495, + "2": 43, + "3": 131, + "4": 439, + "5": 3285, + "total": 4393, + "avg": "4.4" + } + }, + { + "id": 306, + "title": "Intel Core i7-14700K", + "subtitle": "High-end all rounder", + "category": "CPUs", + "isNew": true, + "features": { + "Cores": "20C/28T", + "Boost": "5.6 GHz" + }, + "specifications": { + "Cores": "20 (8P+12E)", + "Threads": "28", + "Base Clock": "3.4 GHz", + "Boost Clock": "5.6 GHz", + "L3 Cache": "33MB", + "TDP": "125W (253W Max)" + }, + "scores": { + "Gaming": 95, + "Productivity": 94, + "Value": 90, + "Efficiency": 75, + "Overall": 89 + }, + "prices": { + "amazon": { + "price": "$390", + "link": "https://www.amazon.com/s?k=Intel%20Core%20i7-14700K" + }, + "flipkart": { + "price": "₹38,000", + "link": "https://www.flipkart.com/search?q=Intel%20Core%20i7-14700K" + }, + "official": { + "price": "$409", + "link": "https://www.google.com/search?q=Intel%20Core%20i7-14700K+official+site" + } + }, + "image": "https://images-na.ssl-images-amazon.com/images/P/B0CGJ41C9W.01.LZZZZZZZ.jpg", + "reviews": [ + { + "user": "User18872", + "rating": 4, + "comment": "Very brilliant choice. The gaming performance is definitely a plus. However, the multitasking could be a bit better. Overall very happy." + }, + { + "user": "User12420", + "rating": 5, + "comment": "Excellent product! The render times is top tier. I've also noticed great improvements in gaming performance. Highly recommend." + }, + { + "user": "User67041", + "rating": 5, + "comment": "Brilliant product! The temperatures is top tier. I've also noticed great improvements in render times. Highly recommend." + }, + { + "user": "User66640", + "rating": 4, + "comment": "Very fantastic choice. The temperatures is definitely a plus. However, the temperatures could be a bit better. Overall very happy." + } + ], + "benchmarks": { + "Cinebench R23 Multi": "36068 pts", + "Cinebench R23 Single": "2125 pts", + "Blender Classroom": "4.4 mins", + "Avg Load Temp": "90°C" + }, + "ratingStats": { + "1": 913, + "2": 88, + "3": 264, + "4": 880, + "5": 6663, + "total": 8808, + "avg": "4.4" + } + }, + { + "id": 307, + "title": "AMD Ryzen 5 5600X", + "subtitle": "Budget AM4 king", + "category": "CPUs", + "isNew": false, + "features": { + "Cores": "6C/12T", + "Boost": "4.6 GHz" + }, + "specifications": { + "Cores": "6", + "Threads": "12", + "Base Clock": "3.7 GHz", + "Boost Clock": "4.6 GHz", + "L3 Cache": "32MB", + "TDP": "65W" + }, + "scores": { + "Gaming": 80, + "Productivity": 70, + "Value": 98, + "Efficiency": 96, + "Overall": 86 + }, + "prices": { + "amazon": { + "price": "$135", + "link": "https://www.amazon.com/s?k=AMD%20Ryzen%205%205600X" + }, + "flipkart": { + "price": "₹14,500", + "link": "https://www.flipkart.com/search?q=AMD%20Ryzen%205%205600X" + }, + "official": { + "price": "$299", + "link": "https://www.google.com/search?q=AMD%20Ryzen%205%205600X+official+site" + } + }, + "image": "https://m.media-amazon.com/images/I/51ld6RR8IrL.jpg", + "reviews": [ + { + "user": "User21584", + "rating": 5, + "comment": "Great product! The multitasking is top tier. I've also noticed great improvements in render times. Highly recommend." + }, + { + "user": "User37083", + "rating": 5, + "comment": "Outstanding product! The power efficiency is top tier. I've also noticed great improvements in multitasking. Highly recommend." + }, + { + "user": "User22808", + "rating": 5, + "comment": "Solid product! The multitasking is top tier. I've also noticed great improvements in gaming performance. Highly recommend." + }, + { + "user": "User75769", + "rating": 4, + "comment": "Very outstanding choice. The power efficiency is definitely a plus. However, the gaming performance could be a bit better. Overall very happy." + } + ], + "benchmarks": { + "Cinebench R23 Multi": "36508 pts", + "Cinebench R23 Single": "1980 pts", + "Blender Classroom": "5.0 mins", + "Avg Load Temp": "77°C" + }, + "ratingStats": { + "1": 518, + "2": 40, + "3": 120, + "4": 400, + "5": 2926, + "total": 4004, + "avg": "4.3" + } + }, + { + "id": 401, + "title": "CrystalDiskMark", + "subtitle": "Storage benchmark utility", + "category": "TOOLS", + "isNew": false, + "features": { + "Type": "Benchmarking", + "License": "Open Source" + }, + "specifications": { + "Type": "Benchmarking", + "Platform": "Windows", + "Engine": "Microsoft DiskSpd", + "Support": "NVMe, SATA, USB", + "License": "Open Source (MIT)" + }, + "scores": { + "Accuracy": 98, + "Speed": 95, + "EaseOfUse": 92, + "Overall": 95 + }, + "prices": { + "amazon": { + "price": "Free", + "link": "https://crystalmark.info/en/" + }, + "flipkart": { + "price": "Free", + "link": "https://crystalmark.info/en/" + }, + "official": { + "price": "Free", + "link": "https://crystalmark.info/en/" + } + }, + "image": "https://images.dwncdn.net/images/t_app-icon-l/p/f378a182-9b23-11e6-8737-00163ed833e7/3576996781/2094_4-75330576-logo", + "reviews": [ + { + "user": "User51010", + "rating": 5, + "comment": "Incredible product! The speed of scan is top tier. I've also noticed great improvements in UI. Highly recommend." + }, + { + "user": "User91029", + "rating": 4, + "comment": "Very solid choice. The accuracy is definitely a plus. However, the UI could be a bit better. Overall very happy." + }, + { + "user": "User36908", + "rating": 5, + "comment": "Excellent product! The UI is top tier. I've also noticed great improvements in speed of scan. Highly recommend." + }, + { + "user": "User46179", + "rating": 5, + "comment": "Fantastic product! The speed of scan is top tier. I've also noticed great improvements in UI. Highly recommend." + }, + { + "user": "User19465", + "rating": 5, + "comment": "Brilliant product! The accuracy is top tier. I've also noticed great improvements in reliability. Highly recommend." + } + ], + "benchmarks": { + "Value for Money": "93%", + "Feature Richness": "103%", + "Ease of Deployment": "111%", + "Community Support": "101%" + }, + "ratingStats": { + "1": 456, + "2": 86, + "3": 259, + "4": 865, + "5": 6987, + "total": 8653, + "avg": "4.6" + } + }, + { + "id": 402, + "title": "WizTree", + "subtitle": "Extremely fast disk space analyzer", + "category": "TOOLS", + "isNew": false, + "features": { + "Type": "Analytics", + "Speed": "MFT based" + }, + "specifications": { + "Type": "Analytics", + "Platform": "Windows", + "Technology": "Direct MFT Parsing", + "Export": "CSV/HTML", + "License": "Free for Personal" + }, + "scores": { + "Accuracy": 99, + "Speed": 100, + "EaseOfUse": 95, + "Overall": 98 + }, + "prices": { + "amazon": { + "price": "Free", + "link": "https://diskanalyzer.com/" + }, + "flipkart": { + "price": "Free", + "link": "https://diskanalyzer.com/" + }, + "official": { + "price": "Free", + "link": "https://diskanalyzer.com/" + } + }, + "image": "https://custom-images.strikinglycdn.com/res/hrscywv4p/image/upload/c_limit,fl_lossy,h_630,w_1200,f_auto,q_auto/12191439/779410_219922.png", + "reviews": [ + { + "user": "User96650", + "rating": 4, + "comment": "Very great choice. The reliability is definitely a plus. However, the feature set could be a bit better. Overall very happy." + }, + { + "user": "User54728", + "rating": 5, + "comment": "Fantastic product! The speed of scan is top tier. I've also noticed great improvements in feature set. Highly recommend." + }, + { + "user": "User30362", + "rating": 5, + "comment": "Outstanding product! The reliability is top tier. I've also noticed great improvements in reliability. Highly recommend." + }, + { + "user": "User53446", + "rating": 5, + "comment": "Outstanding product! The speed of scan is top tier. I've also noticed great improvements in feature set. Highly recommend." + }, + { + "user": "User70321", + "rating": 3, + "comment": "Decent for the price, but fell short on feature set. Maybe look around before committing." + } + ], + "benchmarks": { + "Value for Money": "105%", + "Feature Richness": "101%", + "Ease of Deployment": "106%", + "Community Support": "107%" + }, + "ratingStats": { + "1": 86, + "2": 30, + "3": 92, + "4": 308, + "5": 2569, + "total": 3085, + "avg": "4.7" + } + }, + { + "id": 403, + "title": "Samsung Magician", + "subtitle": "SSD management software", + "category": "TOOLS", + "isNew": false, + "features": { + "Ecosystem": "Samsung", + "Type": "Optimization" + }, + "specifications": { + "Type": "Optimization", + "Platform": "Windows/Mac", + "Target": "Samsung SSDs", + "Features": "Firmware Update, Secure Erase, Overprovisioning", + "License": "Proprietary Freeware" + }, + "scores": { + "Accuracy": 94, + "Speed": 90, + "EaseOfUse": 98, + "Overall": 94 + }, + "prices": { + "amazon": { + "price": "Free", + "link": "https://semiconductor.samsung.com/consumer-storage/magician/" + }, + "flipkart": { + "price": "Free", + "link": "https://semiconductor.samsung.com/consumer-storage/magician/" + }, + "official": { + "price": "Free", + "link": "https://semiconductor.samsung.com/consumer-storage/magician/" + } + }, + "image": "https://play-lh.googleusercontent.com/AZCOwJR9dXFjVL_YqnEhePpzlEyhsR95CGjkdvwzewGiQCayR29RSEe-cEf3WdKNfGvmbTdhPaRd__VxvW2E-Q=w240-h480-rw", + "reviews": [ + { + "user": "User77249", + "rating": 5, + "comment": "Incredible product! The feature set is top tier. I've also noticed great improvements in feature set. Highly recommend." + }, + { + "user": "User72906", + "rating": 5, + "comment": "Fantastic product! The accuracy is top tier. I've also noticed great improvements in UI. Highly recommend." + }, + { + "user": "User99706", + "rating": 4, + "comment": "Very excellent choice. The speed of scan is definitely a plus. However, the reliability could be a bit better. Overall very happy." + }, + { + "user": "User99856", + "rating": 4, + "comment": "Very brilliant choice. The reliability is definitely a plus. However, the UI could be a bit better. Overall very happy." + }, + { + "user": "User60440", + "rating": 4, + "comment": "Very excellent choice. The reliability is definitely a plus. However, the reliability could be a bit better. Overall very happy." + } + ], + "benchmarks": { + "Value for Money": "98%", + "Feature Richness": "88%", + "Ease of Deployment": "97%", + "Community Support": "97%" + }, + "ratingStats": { + "1": 590, + "2": 96, + "3": 288, + "4": 962, + "5": 7693, + "total": 9629, + "avg": "4.6" + } + }, + { + "id": 404, + "title": "Apple Intelligence", + "subtitle": "Advanced AI features for Apple ecosystem", + "category": "TOOLS", + "isNew": true, + "features": { + "Ecosystem": "Apple", + "Type": "Generative AI" + }, + "specifications": { + "Type": "Generative AI", + "Platform": "iOS/macOS", + "Models": "On-device + Private Cloud", + "Integration": "System-wide", + "Requirements": "A17 Pro or M1+" + }, + "scores": { + "Utility": 92, + "Innovation": 95, + "Privacy": 98, + "Overall": 95 + }, + "prices": { + "amazon": { + "price": "Included", + "link": "https://apple.com" + }, + "flipkart": { + "price": "Included", + "link": "https://apple.com" + }, + "official": { + "price": "Included with Devices", + "link": "https://www.apple.com/apple-intelligence/" + } + }, + "image": "https://cdn.simpleicons.org/apple/white", + "reviews": [ + { + "user": "User29547", + "rating": 4, + "comment": "Very great choice. The speed of scan is definitely a plus. However, the reliability could be a bit better. Overall very happy." + }, + { + "user": "User34468", + "rating": 3, + "comment": "Acceptable for the price, but fell short on accuracy. Maybe look around before committing." + }, + { + "user": "User31356", + "rating": 5, + "comment": "Brilliant product! The feature set is top tier. I've also noticed great improvements in UI. Highly recommend." + }, + { + "user": "User29719", + "rating": 5, + "comment": "Great product! The accuracy is top tier. I've also noticed great improvements in UI. Highly recommend." + }, + { + "user": "User95162", + "rating": 5, + "comment": "Excellent product! The reliability is top tier. I've also noticed great improvements in speed of scan. Highly recommend." + } + ], + "benchmarks": { + "Value for Money": "104%", + "Feature Richness": "90%", + "Ease of Deployment": "111%", + "Community Support": "104%" + }, + "ratingStats": { + "1": 134, + "2": 24, + "3": 74, + "4": 249, + "5": 2017, + "total": 2498, + "avg": "4.6" + } + }, + { + "id": 405, + "title": "Galaxy AI", + "subtitle": "Samsung's integrated mobile AI", + "category": "TOOLS", + "isNew": true, + "features": { + "Ecosystem": "Android/Samsung", + "Type": "Generative AI" + }, + "specifications": { + "Type": "Generative AI", + "Platform": "Android (OneUI)", + "Models": "Google Gemini Pro / Nano", + "Features": "Live Translate, Circle to Search", + "Devices": "S23/S24 series" + }, + "scores": { + "Utility": 95, + "Innovation": 90, + "Integration": 94, + "Overall": 93 + }, + "prices": { + "amazon": { + "price": "Included", + "link": "https://samsung.com" + }, + "flipkart": { + "price": "Included", + "link": "https://samsung.com" + }, + "official": { + "price": "Free until 2025", + "link": "https://www.samsung.com/global/galaxy/galaxy-ai/" + } + }, + "image": "https://gadgetguideonline.com/s24/wp-content/uploads/2024/10/galaxy_AI_250.jpg", + "reviews": [ + { + "user": "User88908", + "rating": 5, + "comment": "Brilliant product! The accuracy is top tier. I've also noticed great improvements in reliability. Highly recommend." + }, + { + "user": "User88804", + "rating": 4, + "comment": "Very fantastic choice. The feature set is definitely a plus. However, the UI could be a bit better. Overall very happy." + }, + { + "user": "User56414", + "rating": 3, + "comment": "Good enough for the price, but fell short on reliability. Maybe look around before committing." + }, + { + "user": "User67211", + "rating": 4, + "comment": "Very great choice. The accuracy is definitely a plus. However, the UI could be a bit better. Overall very happy." + }, + { + "user": "User16591", + "rating": 5, + "comment": "Outstanding product! The speed of scan is top tier. I've also noticed great improvements in accuracy. Highly recommend." + } + ], + "benchmarks": { + "Value for Money": "92%", + "Feature Richness": "93%", + "Ease of Deployment": "105%", + "Community Support": "89%" + }, + "ratingStats": { + "1": 160, + "2": 22, + "3": 67, + "4": 225, + "5": 1785, + "total": 2259, + "avg": "4.5" + } + }, + { + "id": 406, + "title": "HWMonitor", + "subtitle": "Hardware sensor monitoring tool", + "category": "TOOLS", + "isNew": false, + "features": { + "Type": "Diagnostics", + "Sensors": "Temps, Voltages, Fans" + }, + "specifications": { + "Type": "Diagnostics", + "Platform": "Windows", + "Sensors": "Thermal, Voltage, Fan Speed, Power", + "Export": "TXT Logs", + "License": "Freemium" + }, + "scores": { + "Accuracy": 90, + "Detail": 94, + "EaseOfUse": 85, + "Overall": 90 + }, + "prices": { + "amazon": { + "price": "Free", + "link": "https://cpuid.com" + }, + "flipkart": { + "price": "Free", + "link": "https://cpuid.com" + }, + "official": { + "price": "Free / €20 Pro", + "link": "https://www.cpuid.com/softwares/hwmonitor.html" + } + }, + "image": "/logo-hwmonitor.png", + "reviews": [ + { + "user": "User50698", + "rating": 4, + "comment": "Very excellent choice. The speed of scan is definitely a plus. However, the feature set could be a bit better. Overall very happy." + }, + { + "user": "User72894", + "rating": 5, + "comment": "Outstanding product! The feature set is top tier. I've also noticed great improvements in speed of scan. Highly recommend." + }, + { + "user": "User57986", + "rating": 5, + "comment": "Great product! The accuracy is top tier. I've also noticed great improvements in UI. Highly recommend." + }, + { + "user": "User28497", + "rating": 4, + "comment": "Very outstanding choice. The accuracy is definitely a plus. However, the UI could be a bit better. Overall very happy." + }, + { + "user": "User88953", + "rating": 4, + "comment": "Very outstanding choice. The UI is definitely a plus. However, the accuracy could be a bit better. Overall very happy." + } + ], + "benchmarks": { + "Value for Money": "96%", + "Feature Richness": "99%", + "Ease of Deployment": "103%", + "Community Support": "100%" + }, + "ratingStats": { + "1": 287, + "2": 29, + "3": 89, + "4": 299, + "5": 2291, + "total": 2995, + "avg": "4.4" + } + }, + { + "id": 407, + "title": "Cinebench R24", + "subtitle": "CPU/GPU rendering benchmark", + "category": "TOOLS", + "isNew": false, + "features": { + "Engine": "Redshift", + "Focus": "Stress Testing" + }, + "specifications": { + "Type": "Benchmarking", + "Platform": "Windows/Mac", + "Engine": "Redshift 3D", + "Support": "x86, ARM, GPUs", + "License": "Free" + }, + "scores": { + "Accuracy": 98, + "Detail": 92, + "EaseOfUse": 96, + "Overall": 95 + }, + "prices": { + "amazon": { + "price": "Free", + "link": "https://maxon.net" + }, + "flipkart": { + "price": "Free", + "link": "https://maxon.net" + }, + "official": { + "price": "Free", + "link": "https://www.maxon.net/en/cinebench" + } + }, + "image": "https://sc.filehippo.net/images/t_app-icon-l/p/5c5413b8-a6ea-11e6-b63f-00163ed833e7/1828819671/cinebench-logo", + "reviews": [ + { + "user": "User88620", + "rating": 5, + "comment": "Excellent product! The feature set is top tier. I've also noticed great improvements in feature set. Highly recommend." + }, + { + "user": "User53156", + "rating": 5, + "comment": "Solid product! The accuracy is top tier. I've also noticed great improvements in UI. Highly recommend." + }, + { + "user": "User79103", + "rating": 3, + "comment": "Good enough for the price, but fell short on feature set. Maybe look around before committing." + }, + { + "user": "User30168", + "rating": 3, + "comment": "Acceptable for the price, but fell short on UI. Maybe look around before committing." + } + ], + "benchmarks": { + "Value for Money": "96%", + "Feature Richness": "89%", + "Ease of Deployment": "95%", + "Community Support": "93%" + }, + "ratingStats": { + "1": 473, + "2": 89, + "3": 268, + "4": 895, + "5": 7232, + "total": 8957, + "avg": "4.6" + } + }, + { + "id": 408, + "title": "Rufus", + "subtitle": "Create bootable USB drives", + "category": "TOOLS", + "isNew": false, + "features": { + "Type": "System Utility", + "SupportedOS": "Windows/Linux" + }, + "specifications": { + "Type": "Utility", + "Platform": "Windows", + "Output": "Bootable USBs (ISO/DD)", + "Speed": "Extremely Fast", + "Bypass": "Windows 11 TPM checks" + }, + "scores": { + "Utility": 99, + "Reliability": 100, + "EaseOfUse": 98, + "Overall": 99 + }, + "prices": { + "amazon": { + "price": "Free", + "link": "https://rufus.ie" + }, + "flipkart": { + "price": "Free", + "link": "https://rufus.ie" + }, + "official": { + "price": "Free (GPL)", + "link": "https://rufus.ie/en/" + } + }, + "image": "https://raw.githubusercontent.com/pbatard/rufus/master/res/rufus.ico", + "reviews": [ + { + "user": "User85393", + "rating": 2, + "comment": "Good enough for the price, but fell short on UI. Maybe look around before committing." + }, + { + "user": "User40352", + "rating": 4, + "comment": "Very great choice. The reliability is definitely a plus. However, the speed of scan could be a bit better. Overall very happy." + }, + { + "user": "User28810", + "rating": 5, + "comment": "Brilliant product! The feature set is top tier. I've also noticed great improvements in UI. Highly recommend." + }, + { + "user": "User27923", + "rating": 5, + "comment": "Outstanding product! The UI is top tier. I've also noticed great improvements in accuracy. Highly recommend." + }, + { + "user": "User19132", + "rating": 5, + "comment": "Fantastic product! The UI is top tier. I've also noticed great improvements in UI. Highly recommend." + } + ], + "benchmarks": { + "Value for Money": "108%", + "Feature Richness": "96%", + "Ease of Deployment": "100%", + "Community Support": "96%" + }, + "ratingStats": { + "1": 39, + "2": 20, + "3": 60, + "4": 203, + "5": 1709, + "total": 2031, + "avg": "4.7" + } + }, + { + "id": 409, + "title": "Git", + "subtitle": "Distributed version control system", + "category": "TOOLS", + "isNew": false, + "features": { + "Type": "VCS", + "License": "GPL-2.0" + }, + "specifications": { + "Type": "Version Control", + "Platform": "Cross-platform", + "Language": "C", + "Support": "Git", + "License": "Open Source (GPL-2.0)", + "Description": "The most widely used modern version control system in the world.", + "PrimaryUseCase": "Source code management, non-linear workflows.", + "Ecosystem": "GitHub, GitLab, Bitbucket" + }, + "scores": { + "Reliability": 100, + "Speed": 98, + "EaseOfUse": 85, + "Overall": 94 + }, + "prices": { + "amazon": { + "price": "Free", + "link": "https://git-scm.com/" + }, + "flipkart": { + "price": "Free", + "link": "https://git-scm.com/" + }, + "official": { + "price": "Free", + "link": "https://git-scm.com/" + } + }, + "image": "https://cdn.simpleicons.org/git/white", + "reviews": [ + { + "user": "User91429", + "rating": 5, + "comment": "Brilliant product! The accuracy is top tier. I've also noticed great improvements in UI. Highly recommend." + }, + { + "user": "User83077", + "rating": 5, + "comment": "Brilliant product! The reliability is top tier. I've also noticed great improvements in UI. Highly recommend." + }, + { + "user": "User45839", + "rating": 4, + "comment": "Very solid choice. The feature set is definitely a plus. However, the accuracy could be a bit better. Overall very happy." + }, + { + "user": "User16678", + "rating": 4, + "comment": "Very fantastic choice. The feature set is definitely a plus. However, the UI could be a bit better. Overall very happy." + }, + { + "user": "User29376", + "rating": 5, + "comment": "Incredible product! The UI is top tier. I've also noticed great improvements in accuracy. Highly recommend." + }, + { + "user": "User90379", + "rating": 5, + "comment": "Excellent product! The feature set is top tier. I've also noticed great improvements in UI. Highly recommend." + } + ], + "benchmarks": { + "Value for Money": "95%", + "Feature Richness": "96%", + "Ease of Deployment": "109%", + "Community Support": "93%" + }, + "ratingStats": { + "1": 476, + "2": 77, + "3": 232, + "4": 776, + "5": 6205, + "total": 7766, + "avg": "4.6" + } + }, + { + "id": 410, + "title": "Apache Subversion (SVN)", + "subtitle": "Centralized version control", + "category": "TOOLS", + "isNew": false, + "features": { + "Type": "VCS", + "License": "Apache-2.0" + }, + "specifications": { + "Type": "Version Control", + "Platform": "Cross-platform", + "Language": "C", + "Support": "SVN", + "License": "Open Source (Apache-2.0)", + "Description": "Centralized revision control system meant to be a better CVS.", + "PrimaryUseCase": "Legacy enterprise version control, large binary files.", + "Ecosystem": "TortoiseSVN" + }, + "scores": { + "Reliability": 95, + "Speed": 80, + "EaseOfUse": 90, + "Overall": 88 + }, + "prices": { + "amazon": { + "price": "Free", + "link": "https://subversion.apache.org/" + }, + "flipkart": { + "price": "Free", + "link": "https://subversion.apache.org/" + }, + "official": { + "price": "Free", + "link": "https://subversion.apache.org/" + } + }, + "image": "https://cdn.simpleicons.org/subversion", + "reviews": [ + { + "user": "User97470", + "rating": 5, + "comment": "Solid product! The speed of scan is top tier. I've also noticed great improvements in accuracy. Highly recommend." + }, + { + "user": "User32903", + "rating": 5, + "comment": "Brilliant product! The accuracy is top tier. I've also noticed great improvements in reliability. Highly recommend." + }, + { + "user": "User83795", + "rating": 5, + "comment": "Great product! The accuracy is top tier. I've also noticed great improvements in feature set. Highly recommend." + }, + { + "user": "User46377", + "rating": 5, + "comment": "Outstanding product! The feature set is top tier. I've also noticed great improvements in accuracy. Highly recommend." + } + ], + "benchmarks": { + "Value for Money": "98%", + "Feature Richness": "83%", + "Ease of Deployment": "106%", + "Community Support": "97%" + }, + "ratingStats": { + "1": 796, + "2": 71, + "3": 213, + "4": 710, + "5": 5310, + "total": 7100, + "avg": "4.4" + } + }, + { + "id": 411, + "title": "Mercurial", + "subtitle": "Distributed version control", + "category": "TOOLS", + "isNew": false, + "features": { + "Type": "VCS", + "License": "GPL-2.0" + }, + "specifications": { + "Type": "Version Control", + "Platform": "Cross-platform", + "Language": "Python", + "Support": "Mercurial", + "License": "Open Source (GPL-2.0)", + "Description": "Free, distributed source control management tool known for its performance and scale.", + "PrimaryUseCase": "Handling large projects elegantly.", + "Ecosystem": "RhodeCode, Phabricator" + }, + "scores": { + "Reliability": 98, + "Speed": 90, + "EaseOfUse": 92, + "Overall": 93 + }, + "prices": { + "amazon": { + "price": "Free", + "link": "https://www.mercurial-scm.org/" + }, + "flipkart": { + "price": "Free", + "link": "https://www.mercurial-scm.org/" + }, + "official": { + "price": "Free", + "link": "https://www.mercurial-scm.org/" + } + }, + "image": "https://cdn.simpleicons.org/mercurial/white", + "reviews": [ + { + "user": "User13734", + "rating": 5, + "comment": "Outstanding product! The UI is top tier. I've also noticed great improvements in accuracy. Highly recommend." + }, + { + "user": "User24617", + "rating": 5, + "comment": "Solid product! The feature set is top tier. I've also noticed great improvements in accuracy. Highly recommend." + }, + { + "user": "User37514", + "rating": 5, + "comment": "Solid product! The feature set is top tier. I've also noticed great improvements in feature set. Highly recommend." + }, + { + "user": "User30711", + "rating": 5, + "comment": "Great product! The reliability is top tier. I've also noticed great improvements in feature set. Highly recommend." + } + ], + "benchmarks": { + "Value for Money": "101%", + "Feature Richness": "104%", + "Ease of Deployment": "96%", + "Community Support": "95%" + }, + "ratingStats": { + "1": 429, + "2": 61, + "3": 184, + "4": 615, + "5": 4861, + "total": 6150, + "avg": "4.5" + } + }, + { + "id": 412, + "title": "VSCodium", + "subtitle": "Telemetry-free VS Code binary", + "category": "TOOLS", + "isNew": false, + "features": { + "Type": "IDE", + "License": "MIT" + }, + "specifications": { + "Type": "Code Editor", + "Platform": "Cross-platform", + "Engine": "Electron", + "Support": "Multiple", + "License": "Open Source (MIT)", + "Description": "Community-driven, freely-licensed binary distribution of Microsoft VS Code without telemetry.", + "PrimaryUseCase": "General purpose code editing.", + "Ecosystem": "OpenVSX Registry" + }, + "scores": { + "Extensibility": 98, + "Performance": 90, + "Privacy": 100, + "Overall": 96 + }, + "prices": { + "amazon": { + "price": "Free", + "link": "https://vscodium.com/" + }, + "flipkart": { + "price": "Free", + "link": "https://vscodium.com/" + }, + "official": { + "price": "Free", + "link": "https://vscodium.com/" + } + }, + "image": "https://vscodium.com/img/vscodium.png", + "reviews": [ + { + "user": "User79041", + "rating": 4, + "comment": "Very outstanding choice. The UI is definitely a plus. However, the UI could be a bit better. Overall very happy." + }, + { + "user": "User94757", + "rating": 5, + "comment": "Outstanding product! The speed of scan is top tier. I've also noticed great improvements in speed of scan. Highly recommend." + }, + { + "user": "User39413", + "rating": 5, + "comment": "Solid product! The UI is top tier. I've also noticed great improvements in accuracy. Highly recommend." + }, + { + "user": "User65614", + "rating": 4, + "comment": "Very solid choice. The UI is definitely a plus. However, the speed of scan could be a bit better. Overall very happy." + }, + { + "user": "User75024", + "rating": 5, + "comment": "Fantastic product! The accuracy is top tier. I've also noticed great improvements in feature set. Highly recommend." + } + ], + "benchmarks": { + "Value for Money": "102%", + "Feature Richness": "104%", + "Ease of Deployment": "112%", + "Community Support": "98%" + }, + "ratingStats": { + "1": 410, + "2": 92, + "3": 278, + "4": 927, + "5": 7570, + "total": 9277, + "avg": "4.6" + } + }, + { + "id": 413, + "title": "Eclipse IDE", + "subtitle": "Extensible development platform", + "category": "TOOLS", + "isNew": false, + "features": { + "Type": "IDE", + "License": "EPL-2.0" + }, + "specifications": { + "Type": "IDE", + "Platform": "Cross-platform", + "Language": "Java", + "Support": "Multiple", + "License": "Open Source (EPL-2.0)", + "Description": "Famous for Java IDE, but C/C++ and PHP IDEs are also heavily used.", + "PrimaryUseCase": "Enterprise Java development.", + "Ecosystem": "Eclipse Marketplace" + }, + "scores": { + "Extensibility": 95, + "Performance": 80, + "Maturity": 99, + "Overall": 91 + }, + "prices": { + "amazon": { + "price": "Free", + "link": "https://www.eclipse.org/" + }, + "flipkart": { + "price": "Free", + "link": "https://www.eclipse.org/" + }, + "official": { + "price": "Free", + "link": "https://www.eclipse.org/" + } + }, + "image": "https://cdn.simpleicons.org/eclipseide", + "reviews": [ + { + "user": "User31226", + "rating": 5, + "comment": "Incredible product! The UI is top tier. I've also noticed great improvements in feature set. Highly recommend." + }, + { + "user": "User81222", + "rating": 5, + "comment": "Brilliant product! The UI is top tier. I've also noticed great improvements in accuracy. Highly recommend." + }, + { + "user": "User41051", + "rating": 4, + "comment": "Very great choice. The reliability is definitely a plus. However, the reliability could be a bit better. Overall very happy." + }, + { + "user": "User82041", + "rating": 5, + "comment": "Solid product! The accuracy is top tier. I've also noticed great improvements in feature set. Highly recommend." + }, + { + "user": "User75143", + "rating": 5, + "comment": "Fantastic product! The UI is top tier. I've also noticed great improvements in feature set. Highly recommend." + }, + { + "user": "User73648", + "rating": 5, + "comment": "Brilliant product! The accuracy is top tier. I've also noticed great improvements in accuracy. Highly recommend." + } + ], + "benchmarks": { + "Value for Money": "96%", + "Feature Richness": "94%", + "Ease of Deployment": "92%", + "Community Support": "97%" + }, + "ratingStats": { + "1": 211, + "2": 24, + "3": 72, + "4": 242, + "5": 1872, + "total": 2421, + "avg": "4.5" + } + }, + { + "id": 414, + "title": "IntelliJ IDEA Community", + "subtitle": "Capable Java IDE", + "category": "TOOLS", + "isNew": false, + "features": { + "Type": "IDE", + "License": "Apache-2.0" + }, + "specifications": { + "Type": "IDE", + "Platform": "Cross-platform", + "Language": "Java", + "Support": "Java, Kotlin", + "License": "Open Source (Apache-2.0)", + "Description": "The smartest JVM IDE by JetBrains, community edition.", + "PrimaryUseCase": "JVM-based application development.", + "Ecosystem": "JetBrains Marketplace" + }, + "scores": { + "Features": 96, + "Performance": 88, + "EaseOfUse": 92, + "Overall": 92 + }, + "prices": { + "amazon": { + "price": "Free", + "link": "https://www.jetbrains.com/idea/" + }, + "flipkart": { + "price": "Free", + "link": "https://www.jetbrains.com/idea/" + }, + "official": { + "price": "Free", + "link": "https://www.jetbrains.com/idea/" + } + }, + "image": "https://cdn.simpleicons.org/intellijidea", + "reviews": [ + { + "user": "User84848", + "rating": 5, + "comment": "Fantastic product! The UI is top tier. I've also noticed great improvements in speed of scan. Highly recommend." + }, + { + "user": "User97178", + "rating": 5, + "comment": "Fantastic product! The speed of scan is top tier. I've also noticed great improvements in speed of scan. Highly recommend." + }, + { + "user": "User51243", + "rating": 5, + "comment": "Solid product! The reliability is top tier. I've also noticed great improvements in speed of scan. Highly recommend." + }, + { + "user": "User16046", + "rating": 4, + "comment": "Very incredible choice. The speed of scan is definitely a plus. However, the accuracy could be a bit better. Overall very happy." + }, + { + "user": "User48918", + "rating": 5, + "comment": "Brilliant product! The feature set is top tier. I've also noticed great improvements in speed of scan. Highly recommend." + }, + { + "user": "User76311", + "rating": 5, + "comment": "Excellent product! The feature set is top tier. I've also noticed great improvements in reliability. Highly recommend." + } + ], + "benchmarks": { + "Value for Money": "105%", + "Feature Richness": "101%", + "Ease of Deployment": "105%", + "Community Support": "103%" + }, + "ratingStats": { + "1": 523, + "2": 66, + "3": 199, + "4": 666, + "5": 5212, + "total": 6666, + "avg": "4.5" + } + }, + { + "id": 415, + "title": "Apache Maven", + "subtitle": "Software comprehension tool", + "category": "TOOLS", + "isNew": false, + "features": { + "Type": "Build Tool", + "License": "Apache-2.0" + }, + "specifications": { + "Type": "Build Tool", + "Platform": "Cross-platform", + "Language": "Java", + "Support": "POM based", + "License": "Open Source (Apache-2.0)", + "Description": "Declarative build automation primarily used for Java projects.", + "PrimaryUseCase": "Dependency management and standardized builds.", + "Ecosystem": "Maven Central Repository" + }, + "scores": { + "Reliability": 99, + "Features": 90, + "Ecosystem": 98, + "Overall": 96 + }, + "prices": { + "amazon": { + "price": "Free", + "link": "https://maven.apache.org/" + }, + "flipkart": { + "price": "Free", + "link": "https://maven.apache.org/" + }, + "official": { + "price": "Free", + "link": "https://maven.apache.org/" + } + }, + "image": "https://cdn.simpleicons.org/apachemaven/white", + "reviews": [ + { + "user": "User48129", + "rating": 5, + "comment": "Incredible product! The reliability is top tier. I've also noticed great improvements in UI. Highly recommend." + }, + { + "user": "User27118", + "rating": 4, + "comment": "Very brilliant choice. The UI is definitely a plus. However, the accuracy could be a bit better. Overall very happy." + }, + { + "user": "User25212", + "rating": 5, + "comment": "Fantastic product! The accuracy is top tier. I've also noticed great improvements in reliability. Highly recommend." + }, + { + "user": "User52632", + "rating": 2, + "comment": "Decent for the price, but fell short on accuracy. Maybe look around before committing." + }, + { + "user": "User17980", + "rating": 4, + "comment": "Very outstanding choice. The feature set is definitely a plus. However, the accuracy could be a bit better. Overall very happy." + }, + { + "user": "User53728", + "rating": 4, + "comment": "Very brilliant choice. The speed of scan is definitely a plus. However, the speed of scan could be a bit better. Overall very happy." + } + ], + "benchmarks": { + "Value for Money": "108%", + "Feature Richness": "91%", + "Ease of Deployment": "111%", + "Community Support": "102%" + }, + "ratingStats": { + "1": 339, + "2": 76, + "3": 229, + "4": 765, + "5": 6246, + "total": 7655, + "avg": "4.6" + } + }, + { + "id": 416, + "title": "Gradle", + "subtitle": "Accelerates developer productivity", + "category": "TOOLS", + "isNew": false, + "features": { + "Type": "Build Tool", + "License": "Apache-2.0" + }, + "specifications": { + "Type": "Build Tool", + "Platform": "Cross-platform", + "Language": "Java/Kotlin", + "Support": "DSL", + "License": "Open Source (Apache-2.0)", + "Description": "Highly customizable and fast build automation tool.", + "PrimaryUseCase": "Android development and multi-project Java builds.", + "Ecosystem": "Gradle Plugins" + }, + "scores": { + "Performance": 95, + "Flexibility": 98, + "Ecosystem": 92, + "Overall": 95 + }, + "prices": { + "amazon": { + "price": "Free", + "link": "https://gradle.org/" + }, + "flipkart": { + "price": "Free", + "link": "https://gradle.org/" + }, + "official": { + "price": "Free", + "link": "https://gradle.org/" + } + }, + "image": "https://cdn.simpleicons.org/gradle/white", + "reviews": [ + { + "user": "User54666", + "rating": 4, + "comment": "Very brilliant choice. The feature set is definitely a plus. However, the accuracy could be a bit better. Overall very happy." + }, + { + "user": "User51799", + "rating": 4, + "comment": "Very solid choice. The reliability is definitely a plus. However, the accuracy could be a bit better. Overall very happy." + }, + { + "user": "User98198", + "rating": 4, + "comment": "Very incredible choice. The UI is definitely a plus. However, the accuracy could be a bit better. Overall very happy." + }, + { + "user": "User65766", + "rating": 5, + "comment": "Great product! The speed of scan is top tier. I've also noticed great improvements in accuracy. Highly recommend." + }, + { + "user": "User47107", + "rating": 4, + "comment": "Very brilliant choice. The UI is definitely a plus. However, the UI could be a bit better. Overall very happy." + }, + { + "user": "User61777", + "rating": 2, + "comment": "Average for the price, but fell short on speed of scan. Maybe look around before committing." + } + ], + "benchmarks": { + "Value for Money": "107%", + "Feature Richness": "99%", + "Ease of Deployment": "100%", + "Community Support": "103%" + }, + "ratingStats": { + "1": 482, + "2": 91, + "3": 274, + "4": 913, + "5": 7378, + "total": 9138, + "avg": "4.6" + } + }, + { + "id": 417, + "title": "Apache Ant", + "subtitle": "Java based build tool", + "category": "TOOLS", + "isNew": false, + "features": { + "Type": "Build Tool", + "License": "Apache-2.0" + }, + "specifications": { + "Type": "Build Tool", + "Platform": "Cross-platform", + "Language": "Java", + "Support": "XML based", + "License": "Open Source (Apache-2.0)", + "Description": "Extremely flexible, procedural build system using XML.", + "PrimaryUseCase": "Custom build scripts and legacy Java support.", + "Ecosystem": "Apache Foundation" + }, + "scores": { + "Dependability": 99, + "Speed": 90, + "Flexibility": 85, + "Overall": 91 + }, + "prices": { + "amazon": { + "price": "Free", + "link": "https://ant.apache.org/" + }, + "flipkart": { + "price": "Free", + "link": "https://ant.apache.org/" + }, + "official": { + "price": "Free", + "link": "https://ant.apache.org/" + } + }, + "image": "https://cdn.simpleicons.org/apacheant/white", + "reviews": [ + { + "user": "User60969", + "rating": 5, + "comment": "Brilliant product! The speed of scan is top tier. I've also noticed great improvements in UI. Highly recommend." + }, + { + "user": "User98121", + "rating": 4, + "comment": "Very outstanding choice. The feature set is definitely a plus. However, the UI could be a bit better. Overall very happy." + }, + { + "user": "User67128", + "rating": 5, + "comment": "Outstanding product! The UI is top tier. I've also noticed great improvements in feature set. Highly recommend." + }, + { + "user": "User53119", + "rating": 5, + "comment": "Excellent product! The feature set is top tier. I've also noticed great improvements in UI. Highly recommend." + }, + { + "user": "User73796", + "rating": 5, + "comment": "Fantastic product! The reliability is top tier. I've also noticed great improvements in feature set. Highly recommend." + } + ], + "benchmarks": { + "Value for Money": "94%", + "Feature Richness": "99%", + "Ease of Deployment": "102%", + "Community Support": "102%" + }, + "ratingStats": { + "1": 694, + "2": 80, + "3": 240, + "4": 801, + "5": 6196, + "total": 8011, + "avg": "4.5" + } + }, + { + "id": 418, + "title": "Jenkins", + "subtitle": "Leading open source automation server", + "category": "TOOLS", + "isNew": false, + "features": { + "Type": "CI/CD", + "License": "MIT" + }, + "specifications": { + "Type": "CI/CD Server", + "Platform": "Cross-platform", + "Language": "Java", + "Plugins": "1800+", + "License": "Open Source (MIT)", + "Description": "Provides hundreds of plugins to support building, deploying and automating any project.", + "PrimaryUseCase": "Continuous Integration / Continuous Delivery pipelines.", + "Ecosystem": "Jenkins Plugin Index" + }, + "scores": { + "Extensibility": 100, + "Ecosystem": 99, + "EaseOfSetup": 80, + "Overall": 93 + }, + "prices": { + "amazon": { + "price": "Free", + "link": "https://www.jenkins.io/" + }, + "flipkart": { + "price": "Free", + "link": "https://www.jenkins.io/" + }, + "official": { + "price": "Free", + "link": "https://www.jenkins.io/" + } + }, + "image": "https://cdn.simpleicons.org/jenkins/white", + "reviews": [ + { + "user": "User94711", + "rating": 5, + "comment": "Outstanding product! The UI is top tier. I've also noticed great improvements in speed of scan. Highly recommend." + }, + { + "user": "User34050", + "rating": 4, + "comment": "Very outstanding choice. The reliability is definitely a plus. However, the speed of scan could be a bit better. Overall very happy." + }, + { + "user": "User49382", + "rating": 5, + "comment": "Solid product! The feature set is top tier. I've also noticed great improvements in UI. Highly recommend." + }, + { + "user": "User31783", + "rating": 5, + "comment": "Solid product! The reliability is top tier. I've also noticed great improvements in reliability. Highly recommend." + } + ], + "benchmarks": { + "Value for Money": "94%", + "Feature Richness": "91%", + "Ease of Deployment": "99%", + "Community Support": "100%" + }, + "ratingStats": { + "1": 477, + "2": 68, + "3": 205, + "4": 683, + "5": 5403, + "total": 6836, + "avg": "4.5" + } + }, + { + "id": 419, + "title": "GitLab CI/CD", + "subtitle": "Integrated CI/CD platform", + "category": "TOOLS", + "isNew": false, + "features": { + "Type": "CI/CD", + "License": "MIT" + }, + "specifications": { + "Type": "CI/CD", + "Platform": "Cross-platform", + "Integrated": "GitLab", + "Runners": "Go based", + "License": "Open Source (MIT)", + "Description": "Built into GitLab to automatically build, test, secure, and deploy software.", + "PrimaryUseCase": "Seamless code-to-deployment workflows.", + "Ecosystem": "GitLab Registry" + }, + "scores": { + "Integration": 99, + "Features": 95, + "EaseOfUse": 92, + "Overall": 95 + }, + "prices": { + "amazon": { + "price": "Free", + "link": "https://about.gitlab.com/" + }, + "flipkart": { + "price": "Free", + "link": "https://about.gitlab.com/" + }, + "official": { + "price": "Free", + "link": "https://docs.gitlab.com/ee/ci/" + } + }, + "image": "https://cdn.simpleicons.org/gitlab", + "reviews": [ + { + "user": "User34089", + "rating": 4, + "comment": "Very solid choice. The reliability is definitely a plus. However, the accuracy could be a bit better. Overall very happy." + }, + { + "user": "User16841", + "rating": 4, + "comment": "Very fantastic choice. The UI is definitely a plus. However, the reliability could be a bit better. Overall very happy." + }, + { + "user": "User90195", + "rating": 4, + "comment": "Very excellent choice. The accuracy is definitely a plus. However, the feature set could be a bit better. Overall very happy." + }, + { + "user": "User67574", + "rating": 5, + "comment": "Great product! The feature set is top tier. I've also noticed great improvements in UI. Highly recommend." + }, + { + "user": "User73738", + "rating": 4, + "comment": "Very brilliant choice. The accuracy is definitely a plus. However, the feature set could be a bit better. Overall very happy." + }, + { + "user": "User89777", + "rating": 5, + "comment": "Solid product! The feature set is top tier. I've also noticed great improvements in reliability. Highly recommend." + } + ], + "benchmarks": { + "Value for Money": "99%", + "Feature Richness": "103%", + "Ease of Deployment": "103%", + "Community Support": "95%" + }, + "ratingStats": { + "1": 262, + "2": 49, + "3": 148, + "4": 494, + "5": 3995, + "total": 4948, + "avg": "4.6" + } + }, + { + "id": 420, + "title": "Tekton", + "subtitle": "Cloud-native CI/CD framework", + "category": "TOOLS", + "isNew": false, + "features": { + "Type": "CI/CD", + "License": "Apache-2.0" + }, + "specifications": { + "Type": "CI/CD", + "Platform": "Kubernetes", + "Language": "Go", + "Ecosystem": "Tekton Hub", + "License": "Open Source (Apache-2.0)", + "Description": "Kubernetes-native framework for creating continuous integration and delivery systems.", + "PrimaryUseCase": "Serverless CI/CD on Kubernetes." + }, + "scores": { + "Flexibility": 95, + "Scalability": 98, + "Ecosystem": 88, + "Overall": 94 + }, + "prices": { + "amazon": { + "price": "Free", + "link": "https://tekton.dev/" + }, + "flipkart": { + "price": "Free", + "link": "https://tekton.dev/" + }, + "official": { + "price": "Free", + "link": "https://tekton.dev/" + } + }, + "image": "https://cdn.simpleicons.org/tekton/white", + "reviews": [ + { + "user": "User20677", + "rating": 2, + "comment": "Acceptable for the price, but fell short on accuracy. Maybe look around before committing." + }, + { + "user": "User26974", + "rating": 5, + "comment": "Outstanding product! The UI is top tier. I've also noticed great improvements in accuracy. Highly recommend." + }, + { + "user": "User16206", + "rating": 3, + "comment": "Acceptable for the price, but fell short on UI. Maybe look around before committing." + }, + { + "user": "User59679", + "rating": 5, + "comment": "Solid product! The feature set is top tier. I've also noticed great improvements in UI. Highly recommend." + } + ], + "benchmarks": { + "Value for Money": "109%", + "Feature Richness": "90%", + "Ease of Deployment": "99%", + "Community Support": "94%" + }, + "ratingStats": { + "1": 532, + "2": 86, + "3": 260, + "4": 869, + "5": 6943, + "total": 8690, + "avg": "4.6" + } + }, + { + "id": 421, + "title": "Docker Engine", + "subtitle": "Industry standard container runtime", + "category": "TOOLS", + "isNew": false, + "features": { + "Type": "Containerization", + "License": "Apache-2.0" + }, + "specifications": { + "Type": "Container Runtime", + "Platform": "Linux/Mac/Win", + "Core": "containerd", + "Interface": "CLI", + "License": "Open Source (Apache-2.0)", + "Description": "De-facto standard for building, sharing, and running applications in isolated containers.", + "PrimaryUseCase": "Local development and microservices packaging.", + "Ecosystem": "Docker Hub" + }, + "scores": { + "Ecosystem": 100, + "Usability": 95, + "Reliability": 99, + "Overall": 98 + }, + "prices": { + "amazon": { + "price": "Free", + "link": "https://www.docker.com/" + }, + "flipkart": { + "price": "Free", + "link": "https://www.docker.com/" + }, + "official": { + "price": "Free", + "link": "https://github.com/docker/engine" + } + }, + "image": "https://cdn.simpleicons.org/docker/white", + "reviews": [ + { + "user": "User40915", + "rating": 5, + "comment": "Incredible product! The accuracy is top tier. I've also noticed great improvements in accuracy. Highly recommend." + }, + { + "user": "User75030", + "rating": 4, + "comment": "Very great choice. The speed of scan is definitely a plus. However, the speed of scan could be a bit better. Overall very happy." + }, + { + "user": "User37984", + "rating": 3, + "comment": "Acceptable for the price, but fell short on UI. Maybe look around before committing." + }, + { + "user": "User65953", + "rating": 4, + "comment": "Very fantastic choice. The speed of scan is definitely a plus. However, the feature set could be a bit better. Overall very happy." + }, + { + "user": "User53128", + "rating": 5, + "comment": "Brilliant product! The accuracy is top tier. I've also noticed great improvements in accuracy. Highly recommend." + }, + { + "user": "User99609", + "rating": 5, + "comment": "Excellent product! The speed of scan is top tier. I've also noticed great improvements in feature set. Highly recommend." + } + ], + "benchmarks": { + "Value for Money": "101%", + "Feature Richness": "97%", + "Ease of Deployment": "116%", + "Community Support": "108%" + }, + "ratingStats": { + "1": 158, + "2": 57, + "3": 173, + "4": 577, + "5": 4808, + "total": 5773, + "avg": "4.7" + } + }, + { + "id": 422, + "title": "Podman", + "subtitle": "Daemonless container engine", + "category": "TOOLS", + "isNew": true, + "features": { + "Type": "Containerization", + "License": "Apache-2.0" + }, + "specifications": { + "Type": "Container Runtime", + "Platform": "Linux/Mac/Win", + "Architecture": "Daemonless", + "Rootless": "Yes", + "License": "Open Source (Apache-2.0)", + "Description": "A secure alternative to Docker that does not require a root daemon.", + "PrimaryUseCase": "Rootless container isolation for improved security.", + "Ecosystem": "RedHat / OCI" + }, + "scores": { + "Security": 98, + "Compatibility": 96, + "Architecture": 95, + "Overall": 96 + }, + "prices": { + "amazon": { + "price": "Free", + "link": "https://podman.io/" + }, + "flipkart": { + "price": "Free", + "link": "https://podman.io/" + }, + "official": { + "price": "Free", + "link": "https://podman.io/" + } + }, + "image": "https://cdn.simpleicons.org/podman/white", + "reviews": [ + { + "user": "User17225", + "rating": 4, + "comment": "Very incredible choice. The speed of scan is definitely a plus. However, the accuracy could be a bit better. Overall very happy." + }, + { + "user": "User85496", + "rating": 4, + "comment": "Very outstanding choice. The feature set is definitely a plus. However, the accuracy could be a bit better. Overall very happy." + }, + { + "user": "User30083", + "rating": 5, + "comment": "Brilliant product! The accuracy is top tier. I've also noticed great improvements in feature set. Highly recommend." + }, + { + "user": "User52699", + "rating": 2, + "comment": "Decent for the price, but fell short on feature set. Maybe look around before committing." + }, + { + "user": "User44731", + "rating": 5, + "comment": "Incredible product! The reliability is top tier. I've also noticed great improvements in feature set. Highly recommend." + } + ], + "benchmarks": { + "Value for Money": "94%", + "Feature Richness": "100%", + "Ease of Deployment": "111%", + "Community Support": "109%" + }, + "ratingStats": { + "1": 247, + "2": 55, + "3": 166, + "4": 556, + "5": 4540, + "total": 5564, + "avg": "4.6" + } + }, + { + "id": 423, + "title": "containerd", + "subtitle": "Standard container runtime", + "category": "TOOLS", + "isNew": false, + "features": { + "Type": "Containerization", + "License": "Apache-2.0" + }, + "specifications": { + "Type": "Container Runtime", + "Platform": "Linux/Win", + "Ecosystem": "CNCF", + "Focus": "Simplicity", + "License": "Open Source (Apache-2.0)", + "Description": "Industry-standard core container runtime with an emphasis on simplicity, robustness and portability.", + "PrimaryUseCase": "Base runtime used by Kubernetes and Docker." + }, + "scores": { + "Performance": 99, + "Reliability": 99, + "Ecosystem": 96, + "Overall": 98 + }, + "prices": { + "amazon": { + "price": "Free", + "link": "https://containerd.io/" + }, + "flipkart": { + "price": "Free", + "link": "https://containerd.io/" + }, + "official": { + "price": "Free", + "link": "https://containerd.io/" + } + }, + "image": "https://cdn.simpleicons.org/containerd/white", + "reviews": [ + { + "user": "User50276", + "rating": 4, + "comment": "Very great choice. The reliability is definitely a plus. However, the accuracy could be a bit better. Overall very happy." + }, + { + "user": "User22051", + "rating": 5, + "comment": "Brilliant product! The speed of scan is top tier. I've also noticed great improvements in reliability. Highly recommend." + }, + { + "user": "User89934", + "rating": 4, + "comment": "Very excellent choice. The speed of scan is definitely a plus. However, the speed of scan could be a bit better. Overall very happy." + }, + { + "user": "User56868", + "rating": 4, + "comment": "Very excellent choice. The feature set is definitely a plus. However, the reliability could be a bit better. Overall very happy." + }, + { + "user": "User42170", + "rating": 2, + "comment": "Decent for the price, but fell short on speed of scan. Maybe look around before committing." + } + ], + "benchmarks": { + "Value for Money": "113%", + "Feature Richness": "101%", + "Ease of Deployment": "112%", + "Community Support": "108%" + }, + "ratingStats": { + "1": 148, + "2": 54, + "3": 162, + "4": 542, + "5": 4519, + "total": 5425, + "avg": "4.7" + } + }, + { + "id": 424, + "title": "Kubernetes", + "subtitle": "Container orchestration system", + "category": "TOOLS", + "isNew": false, + "features": { + "Type": "Orchestration", + "License": "Apache-2.0" + }, + "specifications": { + "Type": "Orchestration", + "Platform": "Linux", + "Ecosystem": "Helm, Cloud Native", + "Scaling": "Automated", + "License": "Open Source (Apache-2.0)", + "Description": "Automates deployment, scaling, and management of containerized applications.", + "PrimaryUseCase": "Enterprise and cloud-scale container orchestration." + }, + "scores": { + "Scalability": 100, + "Ecosystem": 100, + "Complexity": 85, + "Overall": 95 + }, + "prices": { + "amazon": { + "price": "Free", + "link": "https://kubernetes.io/" + }, + "flipkart": { + "price": "Free", + "link": "https://kubernetes.io/" + }, + "official": { + "price": "Free", + "link": "https://kubernetes.io/" + } + }, + "image": "https://cdn.simpleicons.org/kubernetes/white", + "reviews": [ + { + "user": "User71250", + "rating": 2, + "comment": "Okay for the price, but fell short on accuracy. Maybe look around before committing." + }, + { + "user": "User86807", + "rating": 5, + "comment": "Brilliant product! The reliability is top tier. I've also noticed great improvements in UI. Highly recommend." + }, + { + "user": "User63805", + "rating": 5, + "comment": "Great product! The UI is top tier. I've also noticed great improvements in accuracy. Highly recommend." + }, + { + "user": "User42520", + "rating": 4, + "comment": "Very excellent choice. The accuracy is definitely a plus. However, the UI could be a bit better. Overall very happy." + }, + { + "user": "User10413", + "rating": 4, + "comment": "Very solid choice. The accuracy is definitely a plus. However, the UI could be a bit better. Overall very happy." + }, + { + "user": "User39835", + "rating": 5, + "comment": "Solid product! The accuracy is top tier. I've also noticed great improvements in UI. Highly recommend." + } + ], + "benchmarks": { + "Value for Money": "100%", + "Feature Richness": "99%", + "Ease of Deployment": "107%", + "Community Support": "103%" + }, + "ratingStats": { + "1": 426, + "2": 80, + "3": 242, + "4": 808, + "5": 6525, + "total": 8081, + "avg": "4.6" + } + }, + { + "id": 425, + "title": "Docker Swarm", + "subtitle": "Native clustering for Docker", + "category": "TOOLS", + "isNew": false, + "features": { + "Type": "Orchestration", + "License": "Apache-2.0" + }, + "specifications": { + "Type": "Orchestration", + "Platform": "Cross-platform", + "Integration": "Docker CLI", + "Setup": "Simple", + "License": "Open Source (Apache-2.0)", + "Description": "Swarm mode is built into the Docker Engine and is extremely easy to set up.", + "PrimaryUseCase": "Simple container orchestration for small/medium clusters.", + "Ecosystem": "Docker Engine" + }, + "scores": { + "Usability": 96, + "Simplicity": 98, + "Scalability": 88, + "Overall": 94 + }, + "prices": { + "amazon": { + "price": "Free", + "link": "https://docs.docker.com/engine/swarm/" + }, + "flipkart": { + "price": "Free", + "link": "https://docs.docker.com/engine/swarm/" + }, + "official": { + "price": "Free", + "link": "https://docs.docker.com/engine/swarm/" + } + }, + "image": "https://cdn.simpleicons.org/docker/white", + "reviews": [ + { + "user": "User78032", + "rating": 5, + "comment": "Outstanding product! The feature set is top tier. I've also noticed great improvements in UI. Highly recommend." + }, + { + "user": "User89363", + "rating": 4, + "comment": "Very brilliant choice. The speed of scan is definitely a plus. However, the speed of scan could be a bit better. Overall very happy." + }, + { + "user": "User47234", + "rating": 3, + "comment": "Average for the price, but fell short on feature set. Maybe look around before committing." + }, + { + "user": "User13472", + "rating": 5, + "comment": "Great product! The accuracy is top tier. I've also noticed great improvements in UI. Highly recommend." + }, + { + "user": "User60910", + "rating": 5, + "comment": "Fantastic product! The speed of scan is top tier. I've also noticed great improvements in reliability. Highly recommend." + }, + { + "user": "User22790", + "rating": 5, + "comment": "Brilliant product! The feature set is top tier. I've also noticed great improvements in accuracy. Highly recommend." + } + ], + "benchmarks": { + "Value for Money": "98%", + "Feature Richness": "97%", + "Ease of Deployment": "97%", + "Community Support": "93%" + }, + "ratingStats": { + "1": 486, + "2": 79, + "3": 238, + "4": 794, + "5": 6345, + "total": 7942, + "avg": "4.6" + } + }, + { + "id": 426, + "title": "Nomad", + "subtitle": "Simple/flexible workload orchestrator", + "category": "TOOLS", + "isNew": false, + "features": { + "Type": "Orchestration", + "License": "BUSL/MPL" + }, + "specifications": { + "Type": "Orchestration", + "Platform": "Cross-platform", + "Vendor": "HashiCorp", + "Workloads": "Containers, VMs, Binaries", + "License": "Open Source/BUSL", + "Description": "Orchestrates any type of application, not just containers.", + "PrimaryUseCase": "Mixed workloads (VMs + Containers + Edge) orchestration.", + "Ecosystem": "Consul, Vault" + }, + "scores": { + "Flexibility": 97, + "Simplicity": 94, + "Performance": 95, + "Overall": 95 + }, + "prices": { + "amazon": { + "price": "Free", + "link": "https://www.nomadproject.io/" + }, + "flipkart": { + "price": "Free", + "link": "https://www.nomadproject.io/" + }, + "official": { + "price": "Free", + "link": "https://www.nomadproject.io/" + } + }, + "image": "https://cdn.simpleicons.org/nomad/white", + "reviews": [ + { + "user": "User53161", + "rating": 4, + "comment": "Very great choice. The speed of scan is definitely a plus. However, the UI could be a bit better. Overall very happy." + }, + { + "user": "User12711", + "rating": 2, + "comment": "Acceptable for the price, but fell short on UI. Maybe look around before committing." + }, + { + "user": "User37501", + "rating": 3, + "comment": "Decent for the price, but fell short on speed of scan. Maybe look around before committing." + }, + { + "user": "User17451", + "rating": 4, + "comment": "Very solid choice. The UI is definitely a plus. However, the accuracy could be a bit better. Overall very happy." + } + ], + "benchmarks": { + "Value for Money": "97%", + "Feature Richness": "90%", + "Ease of Deployment": "100%", + "Community Support": "95%" + }, + "ratingStats": { + "1": 120, + "2": 22, + "3": 67, + "4": 225, + "5": 1819, + "total": 2253, + "avg": "4.6" + } + }, + { + "id": 427, + "title": "Ansible", + "subtitle": "Simple IT automation", + "category": "TOOLS", + "isNew": false, + "features": { + "Type": "Config Mgmt", + "License": "GPL-3.0" + }, + "specifications": { + "Type": "Automation", + "Platform": "Cross-platform", + "Language": "Python/YAML", + "Architecture": "Agentless", + "License": "Open Source (GPL-3.0)", + "Description": "Radically simple IT automation engine via SSH without agents.", + "PrimaryUseCase": "Configuration management and ad-hoc infrastructure logic.", + "Ecosystem": "Ansible Galaxy" + }, + "scores": { + "Usability": 98, + "Adoption": 99, + "Extensibility": 96, + "Overall": 98 + }, + "prices": { + "amazon": { + "price": "Free", + "link": "https://www.ansible.com/" + }, + "flipkart": { + "price": "Free", + "link": "https://www.ansible.com/" + }, + "official": { + "price": "Free", + "link": "https://www.ansible.com/" + } + }, + "image": "https://cdn.simpleicons.org/ansible/white", + "reviews": [ + { + "user": "User22252", + "rating": 4, + "comment": "Very incredible choice. The speed of scan is definitely a plus. However, the feature set could be a bit better. Overall very happy." + }, + { + "user": "User52227", + "rating": 5, + "comment": "Outstanding product! The feature set is top tier. I've also noticed great improvements in accuracy. Highly recommend." + }, + { + "user": "User13973", + "rating": 2, + "comment": "Okay for the price, but fell short on accuracy. Maybe look around before committing." + }, + { + "user": "User46642", + "rating": 4, + "comment": "Very fantastic choice. The UI is definitely a plus. However, the reliability could be a bit better. Overall very happy." + }, + { + "user": "User93881", + "rating": 4, + "comment": "Very excellent choice. The accuracy is definitely a plus. However, the reliability could be a bit better. Overall very happy." + } + ], + "benchmarks": { + "Value for Money": "95%", + "Feature Richness": "93%", + "Ease of Deployment": "116%", + "Community Support": "97%" + }, + "ratingStats": { + "1": 268, + "2": 98, + "3": 294, + "4": 983, + "5": 8190, + "total": 9833, + "avg": "4.7" + } + }, + { + "id": 428, + "title": "Puppet", + "subtitle": "Infrastructure delivery tooling", + "category": "TOOLS", + "isNew": false, + "features": { + "Type": "Config Mgmt", + "License": "Apache-2.0" + }, + "specifications": { + "Type": "Automation", + "Platform": "Cross-platform", + "Language": "Ruby/DSL", + "Architecture": "Agent-based", + "License": "Open Source (Apache-2.0)", + "Description": "Ensures servers are configured in their desired state continuously.", + "PrimaryUseCase": "Large scale infrastructure-as-code management.", + "Ecosystem": "Puppet Forge" + }, + "scores": { + "Scalability": 97, + "Reliability": 95, + "Usability": 85, + "Overall": 92 + }, + "prices": { + "amazon": { + "price": "Free", + "link": "https://puppet.com/" + }, + "flipkart": { + "price": "Free", + "link": "https://puppet.com/" + }, + "official": { + "price": "Free", + "link": "https://puppet.com/" + } + }, + "image": "https://cdn.simpleicons.org/puppet/white", + "reviews": [ + { + "user": "User57582", + "rating": 4, + "comment": "Very great choice. The feature set is definitely a plus. However, the UI could be a bit better. Overall very happy." + }, + { + "user": "User58895", + "rating": 3, + "comment": "Decent for the price, but fell short on UI. Maybe look around before committing." + }, + { + "user": "User74283", + "rating": 5, + "comment": "Outstanding product! The reliability is top tier. I've also noticed great improvements in reliability. Highly recommend." + }, + { + "user": "User55544", + "rating": 4, + "comment": "Very outstanding choice. The reliability is definitely a plus. However, the UI could be a bit better. Overall very happy." + } + ], + "benchmarks": { + "Value for Money": "101%", + "Feature Richness": "96%", + "Ease of Deployment": "111%", + "Community Support": "105%" + }, + "ratingStats": { + "1": 550, + "2": 70, + "3": 210, + "4": 702, + "5": 5491, + "total": 7023, + "avg": "4.5" + } + }, + { + "id": 429, + "title": "Chef", + "subtitle": "Infrastructure as code", + "category": "TOOLS", + "isNew": false, + "features": { + "Type": "Config Mgmt", + "License": "Apache-2.0" + }, + "specifications": { + "Type": "Automation", + "Platform": "Cross-platform", + "Language": "Ruby", + "Architecture": "Agent-based", + "License": "Open Source (Apache-2.0)", + "Description": "Transform infrastructure into code using Ruby dialects.", + "PrimaryUseCase": "Extremely customizable configuration enforcement.", + "Ecosystem": "Chef Supermarket" + }, + "scores": { + "Flexibility": 95, + "Extensibility": 96, + "Usability": 82, + "Overall": 91 + }, + "prices": { + "amazon": { + "price": "Free", + "link": "https://www.chef.io/" + }, + "flipkart": { + "price": "Free", + "link": "https://www.chef.io/" + }, + "official": { + "price": "Free", + "link": "https://www.chef.io/" + } + }, + "image": "https://cdn.simpleicons.org/chef/white", + "reviews": [ + { + "user": "User64324", + "rating": 5, + "comment": "Fantastic product! The reliability is top tier. I've also noticed great improvements in speed of scan. Highly recommend." + }, + { + "user": "User64424", + "rating": 5, + "comment": "Fantastic product! The feature set is top tier. I've also noticed great improvements in reliability. Highly recommend." + }, + { + "user": "User95051", + "rating": 5, + "comment": "Solid product! The speed of scan is top tier. I've also noticed great improvements in accuracy. Highly recommend." + }, + { + "user": "User59559", + "rating": 4, + "comment": "Very fantastic choice. The accuracy is definitely a plus. However, the accuracy could be a bit better. Overall very happy." + }, + { + "user": "User52261", + "rating": 2, + "comment": "Okay for the price, but fell short on reliability. Maybe look around before committing." + } + ], + "benchmarks": { + "Value for Money": "95%", + "Feature Richness": "101%", + "Ease of Deployment": "104%", + "Community Support": "101%" + }, + "ratingStats": { + "1": 239, + "2": 27, + "3": 82, + "4": 274, + "5": 2122, + "total": 2744, + "avg": "4.5" + } + }, + { + "id": 430, + "title": "Redmine", + "subtitle": "Flexible project management web app", + "category": "TOOLS", + "isNew": false, + "features": { + "Type": "Project Mgmt", + "License": "GPL-2.0" + }, + "specifications": { + "Type": "Issue Tracker", + "Platform": "Web", + "Language": "Ruby on Rails", + "Plugins": "Extensive", + "License": "Open Source (GPL-2.0)", + "Description": "Provides Gantt charts, calendar, wiki, forums, and role-based access.", + "PrimaryUseCase": "Cross-project issue tracking and traditional management.", + "Ecosystem": "Redmine Plugins" + }, + "scores": { + "Features": 94, + "Flexibility": 95, + "ModernUI": 70, + "Overall": 86 + }, + "prices": { + "amazon": { + "price": "Free", + "link": "https://www.redmine.org/" + }, + "flipkart": { + "price": "Free", + "link": "https://www.redmine.org/" + }, + "official": { + "price": "Free", + "link": "https://www.redmine.org/" + } + }, + "image": "https://cdn.simpleicons.org/redmine/white", + "reviews": [ + { + "user": "User98416", + "rating": 4, + "comment": "Very great choice. The speed of scan is definitely a plus. However, the UI could be a bit better. Overall very happy." + }, + { + "user": "User69267", + "rating": 5, + "comment": "Solid product! The accuracy is top tier. I've also noticed great improvements in feature set. Highly recommend." + }, + { + "user": "User92088", + "rating": 5, + "comment": "Brilliant product! The accuracy is top tier. I've also noticed great improvements in reliability. Highly recommend." + }, + { + "user": "User72026", + "rating": 5, + "comment": "Incredible product! The reliability is top tier. I've also noticed great improvements in feature set. Highly recommend." + }, + { + "user": "User77498", + "rating": 5, + "comment": "Great product! The UI is top tier. I've also noticed great improvements in feature set. Highly recommend." + }, + { + "user": "User43008", + "rating": 5, + "comment": "Great product! The UI is top tier. I've also noticed great improvements in UI. Highly recommend." + } + ], + "benchmarks": { + "Value for Money": "99%", + "Feature Richness": "95%", + "Ease of Deployment": "104%", + "Community Support": "88%" + }, + "ratingStats": { + "1": 726, + "2": 56, + "3": 168, + "4": 561, + "5": 4106, + "total": 5617, + "avg": "4.3" + } + }, + { + "id": 431, + "title": "Bugzilla", + "subtitle": "Robust defect tracking system", + "category": "TOOLS", + "isNew": false, + "features": { + "Type": "Project Mgmt", + "License": "MPL" + }, + "specifications": { + "Type": "Issue Tracker", + "Platform": "Web", + "Language": "Perl", + "UseCase": "Large Projects", + "License": "Open Source (MPL)", + "Description": "Used by organizations like Mozilla to track highly complex software defects.", + "PrimaryUseCase": "Heavy-duty software bug tracking.", + "Ecosystem": "Bugzilla Extensions" + }, + "scores": { + "Capability": 98, + "Speed": 90, + "ModernUI": 60, + "Overall": 83 + }, + "prices": { + "amazon": { + "price": "Free", + "link": "https://www.bugzilla.org/" + }, + "flipkart": { + "price": "Free", + "link": "https://www.bugzilla.org/" + }, + "official": { + "price": "Free", + "link": "https://www.bugzilla.org/" + } + }, + "image": "/logo-bugzilla.png", + "reviews": [ + { + "user": "User10803", + "rating": 5, + "comment": "Brilliant product! The UI is top tier. I've also noticed great improvements in speed of scan. Highly recommend." + }, + { + "user": "User41046", + "rating": 5, + "comment": "Great product! The accuracy is top tier. I've also noticed great improvements in feature set. Highly recommend." + }, + { + "user": "User49539", + "rating": 4, + "comment": "Very great choice. The reliability is definitely a plus. However, the accuracy could be a bit better. Overall very happy." + }, + { + "user": "User24737", + "rating": 4, + "comment": "Very fantastic choice. The UI is definitely a plus. However, the UI could be a bit better. Overall very happy." + }, + { + "user": "User63935", + "rating": 3, + "comment": "Good enough for the price, but fell short on accuracy. Maybe look around before committing." + } + ], + "benchmarks": { + "Value for Money": "83%", + "Feature Richness": "91%", + "Ease of Deployment": "85%", + "Community Support": "86%" + }, + "ratingStats": { + "1": 1228, + "2": 79, + "3": 238, + "4": 794, + "5": 5602, + "total": 7941, + "avg": "4.2" + } + }, + { + "id": 432, + "title": "Taiga", + "subtitle": "Agile project management platform", + "category": "TOOLS", + "isNew": false, + "features": { + "Type": "Project Mgmt", + "License": "AGPL-3.0" + }, + "specifications": { + "Type": "Issue Tracker", + "Platform": "Web", + "Language": "Python/Django", + "Framework": "Scrum/Kanban", + "License": "Open Source (AGPL-3.0)", + "Description": "Highly visual platform tailored strictly for agile methodologies.", + "PrimaryUseCase": "Scrum sprints and Kanban boards for dev teams.", + "Ecosystem": "Taiga Integrations" + }, + "scores": { + "Usability": 96, + "Aesthetics": 95, + "Features": 90, + "Overall": 94 + }, + "prices": { + "amazon": { + "price": "Free", + "link": "https://taiga.io/" + }, + "flipkart": { + "price": "Free", + "link": "https://taiga.io/" + }, + "official": { + "price": "Free", + "link": "https://taiga.io/" + } + }, + "image": "/images/taiga.png", + "reviews": [ + { + "user": "User21025", + "rating": 5, + "comment": "Solid product! The feature set is top tier. I've also noticed great improvements in reliability. Highly recommend." + }, + { + "user": "User42484", + "rating": 5, + "comment": "Fantastic product! The UI is top tier. I've also noticed great improvements in reliability. Highly recommend." + }, + { + "user": "User10394", + "rating": 4, + "comment": "Very great choice. The accuracy is definitely a plus. However, the reliability could be a bit better. Overall very happy." + }, + { + "user": "User83734", + "rating": 5, + "comment": "Brilliant product! The UI is top tier. I've also noticed great improvements in speed of scan. Highly recommend." + } + ], + "benchmarks": { + "Value for Money": "107%", + "Feature Richness": "90%", + "Ease of Deployment": "110%", + "Community Support": "101%" + }, + "ratingStats": { + "1": 500, + "2": 81, + "3": 245, + "4": 817, + "5": 6529, + "total": 8172, + "avg": "4.6" + } + }, + { + "id": 433, + "title": "SonarQube (Community)", + "subtitle": "Code quality and security", + "category": "TOOLS", + "isNew": false, + "features": { + "Type": "Code Quality", + "License": "LGPL-3.0" + }, + "specifications": { + "Type": "Static Analysis", + "Platform": "Web", + "Support": "15+ Languages", + "UseCase": "CI/CD Integration", + "License": "Open Source (LGPL-3.0)", + "Description": "Continuously inspects code quality to detect bugs, code smells and security vulnerabilities.", + "PrimaryUseCase": "Automated CI code review.", + "Ecosystem": "SonarSource" + }, + "scores": { + "Analysis": 98, + "Ecosystem": 96, + "Usability": 92, + "Overall": 95 + }, + "prices": { + "amazon": { + "price": "Free", + "link": "https://www.sonarsource.com/products/sonarqube/" + }, + "flipkart": { + "price": "Free", + "link": "https://www.sonarsource.com/products/sonarqube/" + }, + "official": { + "price": "Free", + "link": "https://www.sonarqube.org/" + } + }, + "image": "/images/sonarqube.png", + "reviews": [ + { + "user": "User70329", + "rating": 5, + "comment": "Brilliant product! The UI is top tier. I've also noticed great improvements in reliability. Highly recommend." + }, + { + "user": "User98625", + "rating": 4, + "comment": "Very great choice. The feature set is definitely a plus. However, the speed of scan could be a bit better. Overall very happy." + }, + { + "user": "User21200", + "rating": 4, + "comment": "Very incredible choice. The UI is definitely a plus. However, the accuracy could be a bit better. Overall very happy." + }, + { + "user": "User10455", + "rating": 5, + "comment": "Incredible product! The feature set is top tier. I've also noticed great improvements in feature set. Highly recommend." + }, + { + "user": "User48860", + "rating": 5, + "comment": "Excellent product! The UI is top tier. I've also noticed great improvements in reliability. Highly recommend." + }, + { + "user": "User68044", + "rating": 5, + "comment": "Brilliant product! The reliability is top tier. I've also noticed great improvements in accuracy. Highly recommend." + } + ], + "benchmarks": { + "Value for Money": "99%", + "Feature Richness": "105%", + "Ease of Deployment": "97%", + "Community Support": "99%" + }, + "ratingStats": { + "1": 369, + "2": 70, + "3": 210, + "4": 700, + "5": 5658, + "total": 7007, + "avg": "4.6" + } + }, + { + "id": 434, + "title": "ESLint", + "subtitle": "Pluggable JavaScript linter", + "category": "TOOLS", + "isNew": false, + "features": { + "Type": "Code Quality", + "License": "MIT" + }, + "specifications": { + "Type": "Linter", + "Platform": "Node.js", + "Language": "JS/TS", + "Customization": "High", + "License": "Open Source (MIT)", + "Description": "Find and fix problems in your JavaScript code.", + "PrimaryUseCase": "Enforcing JS/TS code standards and catching syntax bugs.", + "Ecosystem": "NPM rulesets" + }, + "scores": { + "Usability": 99, + "Ecosystem": 100, + "Speed": 95, + "Overall": 98 + }, + "prices": { + "amazon": { + "price": "Free", + "link": "https://eslint.org/" + }, + "flipkart": { + "price": "Free", + "link": "https://eslint.org/" + }, + "official": { + "price": "Free", + "link": "https://eslint.org/" + } + }, + "image": "https://cdn.simpleicons.org/eslint/white", + "reviews": [ + { + "user": "User54279", + "rating": 5, + "comment": "Fantastic product! The accuracy is top tier. I've also noticed great improvements in reliability. Highly recommend." + }, + { + "user": "User74144", + "rating": 5, + "comment": "Outstanding product! The feature set is top tier. I've also noticed great improvements in feature set. Highly recommend." + }, + { + "user": "User97834", + "rating": 4, + "comment": "Very great choice. The UI is definitely a plus. However, the UI could be a bit better. Overall very happy." + }, + { + "user": "User25025", + "rating": 5, + "comment": "Solid product! The reliability is top tier. I've also noticed great improvements in UI. Highly recommend." + }, + { + "user": "User11521", + "rating": 5, + "comment": "Solid product! The UI is top tier. I've also noticed great improvements in feature set. Highly recommend." + } + ], + "benchmarks": { + "Value for Money": "97%", + "Feature Richness": "91%", + "Ease of Deployment": "114%", + "Community Support": "106%" + }, + "ratingStats": { + "1": 89, + "2": 32, + "3": 96, + "4": 323, + "5": 2690, + "total": 3230, + "avg": "4.7" + } + }, + { + "id": 435, + "title": "Prettier", + "subtitle": "Opinionated code formatter", + "category": "TOOLS", + "isNew": false, + "features": { + "Type": "Code Quality", + "License": "MIT" + }, + "specifications": { + "Type": "Formatter", + "Platform": "Node.js", + "Language": "Multiple", + "Ecosystem": "Prettier Plugins", + "License": "Open Source (MIT)", + "Description": "Parses code and re-prints it with its own consistent style.", + "PrimaryUseCase": "Automatic code style homogenization over a repository." + }, + "scores": { + "Speed": 98, + "Consistency": 100, + "Adoption": 99, + "Overall": 99 + }, + "prices": { + "amazon": { + "price": "Free", + "link": "https://prettier.io/" + }, + "flipkart": { + "price": "Free", + "link": "https://prettier.io/" + }, + "official": { + "price": "Free", + "link": "https://prettier.io/" + } + }, + "image": "https://cdn.simpleicons.org/prettier/white", + "reviews": [ + { + "user": "User78961", + "rating": 5, + "comment": "Solid product! The accuracy is top tier. I've also noticed great improvements in speed of scan. Highly recommend." + }, + { + "user": "User39221", + "rating": 5, + "comment": "Great product! The speed of scan is top tier. I've also noticed great improvements in reliability. Highly recommend." + }, + { + "user": "User59393", + "rating": 4, + "comment": "Very brilliant choice. The reliability is definitely a plus. However, the accuracy could be a bit better. Overall very happy." + }, + { + "user": "User68122", + "rating": 4, + "comment": "Very solid choice. The reliability is definitely a plus. However, the speed of scan could be a bit better. Overall very happy." + }, + { + "user": "User14439", + "rating": 5, + "comment": "Fantastic product! The speed of scan is top tier. I've also noticed great improvements in feature set. Highly recommend." + }, + { + "user": "User93576", + "rating": 5, + "comment": "Fantastic product! The feature set is top tier. I've also noticed great improvements in UI. Highly recommend." + } + ], + "benchmarks": { + "Value for Money": "109%", + "Feature Richness": "101%", + "Ease of Deployment": "102%", + "Community Support": "102%" + }, + "ratingStats": { + "1": 169, + "2": 90, + "3": 271, + "4": 904, + "5": 7611, + "total": 9045, + "avg": "4.7" + } + }, + { + "id": 436, + "title": "Selenium", + "subtitle": "Browser automation framework", + "category": "TOOLS", + "isNew": false, + "features": { + "Type": "Testing", + "License": "Apache-2.0" + }, + "specifications": { + "Type": "Testing Web", + "Platform": "Cross-platform", + "Language": "Multiple", + "Support": "All major browsers", + "License": "Open Source (Apache-2.0)", + "Description": "Provides a playback tool for authoring tests without the need to learn a test scripting language.", + "PrimaryUseCase": "Automated end-to-end web testing across all browsers.", + "Ecosystem": "Selenium Grid" + }, + "scores": { + "Capability": 99, + "Ecosystem": 100, + "Speed": 80, + "Overall": 93 + }, + "prices": { + "amazon": { + "price": "Free", + "link": "https://www.selenium.dev/" + }, + "flipkart": { + "price": "Free", + "link": "https://www.selenium.dev/" + }, + "official": { + "price": "Free", + "link": "https://www.selenium.dev/" + } + }, + "image": "https://cdn.simpleicons.org/selenium/white", + "reviews": [ + { + "user": "User70814", + "rating": 2, + "comment": "Average for the price, but fell short on speed of scan. Maybe look around before committing." + }, + { + "user": "User36913", + "rating": 5, + "comment": "Solid product! The reliability is top tier. I've also noticed great improvements in accuracy. Highly recommend." + }, + { + "user": "User83806", + "rating": 3, + "comment": "Good enough for the price, but fell short on reliability. Maybe look around before committing." + }, + { + "user": "User92129", + "rating": 5, + "comment": "Solid product! The feature set is top tier. I've also noticed great improvements in UI. Highly recommend." + }, + { + "user": "User78903", + "rating": 4, + "comment": "Very brilliant choice. The reliability is definitely a plus. However, the feature set could be a bit better. Overall very happy." + }, + { + "user": "User31669", + "rating": 5, + "comment": "Outstanding product! The speed of scan is top tier. I've also noticed great improvements in UI. Highly recommend." + } + ], + "benchmarks": { + "Value for Money": "90%", + "Feature Richness": "101%", + "Ease of Deployment": "106%", + "Community Support": "102%" + }, + "ratingStats": { + "1": 509, + "2": 72, + "3": 218, + "4": 728, + "5": 5758, + "total": 7285, + "avg": "4.5" + } + }, + { + "id": 437, + "title": "Cypress", + "subtitle": "Next generation front end testing tool", + "category": "TOOLS", + "isNew": false, + "features": { + "Type": "Testing", + "License": "MIT" + }, + "specifications": { + "Type": "Testing Web", + "Platform": "Cross-platform", + "Language": "JavaScript", + "Focus": "E2E Testing", + "License": "Open Source (MIT)", + "Description": "Modern web automation built for the modern web directly in the browser architecture.", + "PrimaryUseCase": "Developer-oriented E2E and component testing.", + "Ecosystem": "Cypress Dashboard" + }, + "scores": { + "Usability": 98, + "Speed": 95, + "Features": 94, + "Overall": 96 + }, + "prices": { + "amazon": { + "price": "Free", + "link": "https://www.cypress.io/" + }, + "flipkart": { + "price": "Free", + "link": "https://www.cypress.io/" + }, + "official": { + "price": "Free", + "link": "https://www.cypress.io/" + } + }, + "image": "https://cdn.simpleicons.org/cypress/white", + "reviews": [ + { + "user": "User69159", + "rating": 5, + "comment": "Solid product! The UI is top tier. I've also noticed great improvements in reliability. Highly recommend." + }, + { + "user": "User55648", + "rating": 5, + "comment": "Outstanding product! The UI is top tier. I've also noticed great improvements in reliability. Highly recommend." + }, + { + "user": "User21500", + "rating": 5, + "comment": "Fantastic product! The reliability is top tier. I've also noticed great improvements in accuracy. Highly recommend." + }, + { + "user": "User54971", + "rating": 5, + "comment": "Excellent product! The accuracy is top tier. I've also noticed great improvements in UI. Highly recommend." + }, + { + "user": "User37707", + "rating": 5, + "comment": "Great product! The feature set is top tier. I've also noticed great improvements in feature set. Highly recommend." + } + ], + "benchmarks": { + "Value for Money": "97%", + "Feature Richness": "105%", + "Ease of Deployment": "101%", + "Community Support": "96%" + }, + "ratingStats": { + "1": 382, + "2": 86, + "3": 259, + "4": 865, + "5": 7060, + "total": 8652, + "avg": "4.6" + } + }, + { + "id": 438, + "title": "JUnit", + "subtitle": "Testing framework for Java", + "category": "TOOLS", + "isNew": false, + "features": { + "Type": "Testing", + "License": "EPL-2.0" + }, + "specifications": { + "Type": "Unit Testing", + "Platform": "Java", + "Architecture": "JUnit 5 Platform", + "UseCase": "TDD", + "License": "Open Source (EPL-2.0)", + "Description": "The most popular unit testing framework providing annotations for test execution.", + "PrimaryUseCase": "Test-Driven Development (TDD) for Java applications.", + "Ecosystem": "Maven/Gradle Test" + }, + "scores": { + "Ecosystem": 100, + "Stability": 99, + "Extensibility": 95, + "Overall": 98 + }, + "prices": { + "amazon": { + "price": "Free", + "link": "https://junit.org/" + }, + "flipkart": { + "price": "Free", + "link": "https://junit.org/" + }, + "official": { + "price": "Free", + "link": "https://junit.org/" + } + }, + "image": "https://cdn.simpleicons.org/junit5/white", + "reviews": [ + { + "user": "User61459", + "rating": 5, + "comment": "Incredible product! The reliability is top tier. I've also noticed great improvements in accuracy. Highly recommend." + }, + { + "user": "User90313", + "rating": 4, + "comment": "Very great choice. The UI is definitely a plus. However, the UI could be a bit better. Overall very happy." + }, + { + "user": "User39665", + "rating": 4, + "comment": "Very great choice. The speed of scan is definitely a plus. However, the reliability could be a bit better. Overall very happy." + }, + { + "user": "User14094", + "rating": 5, + "comment": "Great product! The accuracy is top tier. I've also noticed great improvements in UI. Highly recommend." + }, + { + "user": "User42030", + "rating": 4, + "comment": "Very incredible choice. The feature set is definitely a plus. However, the accuracy could be a bit better. Overall very happy." + }, + { + "user": "User95375", + "rating": 4, + "comment": "Very outstanding choice. The speed of scan is definitely a plus. However, the UI could be a bit better. Overall very happy." + } + ], + "benchmarks": { + "Value for Money": "100%", + "Feature Richness": "102%", + "Ease of Deployment": "115%", + "Community Support": "101%" + }, + "ratingStats": { + "1": 197, + "2": 71, + "3": 215, + "4": 719, + "5": 5991, + "total": 7193, + "avg": "4.7" + } + }, + { + "id": 439, + "title": "PostgreSQL", + "subtitle": "Advanced open source relational DB", + "category": "TOOLS", + "isNew": false, + "features": { + "Type": "Database", + "License": "PostgreSQL" + }, + "specifications": { + "Type": "RDBMS", + "Platform": "Cross-platform", + "Language": "C", + "ACID": "Yes", + "License": "Open Source (PostgreSQL License)", + "Description": "Highly robust relational database system known for strict standards compliance and scalability.", + "PrimaryUseCase": "Complex relational schemas and structured data integrity.", + "Ecosystem": "PostGIS, Citus" + }, + "scores": { + "Reliability": 100, + "Features": 99, + "Performance": 95, + "Overall": 98 + }, + "prices": { + "amazon": { + "price": "Free", + "link": "https://www.postgresql.org/" + }, + "flipkart": { + "price": "Free", + "link": "https://www.postgresql.org/" + }, + "official": { + "price": "Free", + "link": "https://www.postgresql.org/" + } + }, + "image": "https://cdn.simpleicons.org/postgresql/white", + "reviews": [ + { + "user": "User90940", + "rating": 3, + "comment": "Okay for the price, but fell short on feature set. Maybe look around before committing." + }, + { + "user": "User70013", + "rating": 5, + "comment": "Excellent product! The UI is top tier. I've also noticed great improvements in accuracy. Highly recommend." + }, + { + "user": "User26757", + "rating": 4, + "comment": "Very excellent choice. The reliability is definitely a plus. However, the UI could be a bit better. Overall very happy." + }, + { + "user": "User71676", + "rating": 5, + "comment": "Solid product! The accuracy is top tier. I've also noticed great improvements in reliability. Highly recommend." + } + ], + "benchmarks": { + "Value for Money": "108%", + "Feature Richness": "92%", + "Ease of Deployment": "103%", + "Community Support": "103%" + }, + "ratingStats": { + "1": 147, + "2": 53, + "3": 160, + "4": 536, + "5": 4467, + "total": 5363, + "avg": "4.7" + } + }, + { + "id": 440, + "title": "MySQL", + "subtitle": "Most popular open source DB", + "category": "TOOLS", + "isNew": false, + "features": { + "Type": "Database", + "License": "GPL-2.0" + }, + "specifications": { + "Type": "RDBMS", + "Platform": "Cross-platform", + "Language": "C/C++", + "Performance": "High", + "License": "Open Source (GPL-2.0)", + "Description": "Fast, reliable, and extremely popular database backend for web applications.", + "PrimaryUseCase": "General purpose relational data serving.", + "Ecosystem": "Oracle" + }, + "scores": { + "Scalability": 96, + "Adoption": 100, + "Usability": 92, + "Overall": 96 + }, + "prices": { + "amazon": { + "price": "Free", + "link": "https://www.mysql.com/" + }, + "flipkart": { + "price": "Free", + "link": "https://www.mysql.com/" + }, + "official": { + "price": "Free", + "link": "https://www.mysql.com/" + } + }, + "image": "https://cdn.simpleicons.org/mysql/white", + "reviews": [ + { + "user": "User96648", + "rating": 2, + "comment": "Good enough for the price, but fell short on accuracy. Maybe look around before committing." + }, + { + "user": "User56923", + "rating": 5, + "comment": "Incredible product! The UI is top tier. I've also noticed great improvements in accuracy. Highly recommend." + }, + { + "user": "User35634", + "rating": 5, + "comment": "Excellent product! The reliability is top tier. I've also noticed great improvements in accuracy. Highly recommend." + }, + { + "user": "User26810", + "rating": 5, + "comment": "Excellent product! The accuracy is top tier. I've also noticed great improvements in feature set. Highly recommend." + } + ], + "benchmarks": { + "Value for Money": "97%", + "Feature Richness": "102%", + "Ease of Deployment": "113%", + "Community Support": "101%" + }, + "ratingStats": { + "1": 282, + "2": 63, + "3": 191, + "4": 637, + "5": 5198, + "total": 6371, + "avg": "4.6" + } + }, + { + "id": 441, + "title": "MariaDB", + "subtitle": "Community-developed fork of MySQL", + "category": "TOOLS", + "isNew": false, + "features": { + "Type": "Database", + "License": "GPL-2.0" + }, + "specifications": { + "Type": "RDBMS", + "Platform": "Cross-platform", + "Language": "C/C++", + "StorageEngines": "Pluggable", + "License": "Open Source (GPL-2.0)", + "Description": "Created by original developers of MySQL with guarantees to stay open source.", + "PrimaryUseCase": "Drop-in replacement for MySQL with more features.", + "Ecosystem": "MariaDB Foundation" + }, + "scores": { + "Innovation": 95, + "Performance": 97, + "Compatibility": 98, + "Overall": 97 + }, + "prices": { + "amazon": { + "price": "Free", + "link": "https://mariadb.org/" + }, + "flipkart": { + "price": "Free", + "link": "https://mariadb.org/" + }, + "official": { + "price": "Free", + "link": "https://mariadb.org/" + } + }, + "image": "https://cdn.simpleicons.org/mariadb/white", + "reviews": [ + { + "user": "User71601", + "rating": 5, + "comment": "Outstanding product! The UI is top tier. I've also noticed great improvements in feature set. Highly recommend." + }, + { + "user": "User86811", + "rating": 4, + "comment": "Very fantastic choice. The accuracy is definitely a plus. However, the reliability could be a bit better. Overall very happy." + }, + { + "user": "User60225", + "rating": 4, + "comment": "Very solid choice. The UI is definitely a plus. However, the speed of scan could be a bit better. Overall very happy." + }, + { + "user": "User50978", + "rating": 4, + "comment": "Very great choice. The reliability is definitely a plus. However, the reliability could be a bit better. Overall very happy." + } + ], + "benchmarks": { + "Value for Money": "100%", + "Feature Richness": "99%", + "Ease of Deployment": "108%", + "Community Support": "96%" + }, + "ratingStats": { + "1": 291, + "2": 80, + "3": 242, + "4": 809, + "5": 6677, + "total": 8099, + "avg": "4.7" + } + }, + { + "id": 442, + "title": "Hoppscotch", + "subtitle": "Open source API development ecosystem", + "category": "TOOLS", + "isNew": true, + "features": { + "Type": "API Tool", + "License": "MIT" + }, + "specifications": { + "Type": "API Client", + "Platform": "Web/PWA", + "Architecture": "Vue.js", + "Identity": "Postman Alternative", + "License": "Open Source (MIT)", + "Description": "Lightweight web-based API request builder with real-time syncing.", + "PrimaryUseCase": "Rapid API testing and sharing within the browser.", + "Ecosystem": "Hoppscotch CLI" + }, + "scores": { + "Usability": 98, + "Speed": 99, + "Features": 92, + "Overall": 96 + }, + "prices": { + "amazon": { + "price": "Free", + "link": "https://hoppscotch.io/" + }, + "flipkart": { + "price": "Free", + "link": "https://hoppscotch.io/" + }, + "official": { + "price": "Free", + "link": "https://hoppscotch.io/" + } + }, + "image": "https://cdn.simpleicons.org/hoppscotch/white", + "reviews": [ + { + "user": "User98294", + "rating": 4, + "comment": "Very brilliant choice. The accuracy is definitely a plus. However, the speed of scan could be a bit better. Overall very happy." + }, + { + "user": "User81177", + "rating": 3, + "comment": "Good enough for the price, but fell short on reliability. Maybe look around before committing." + }, + { + "user": "User67047", + "rating": 4, + "comment": "Very solid choice. The accuracy is definitely a plus. However, the accuracy could be a bit better. Overall very happy." + }, + { + "user": "User55838", + "rating": 5, + "comment": "Fantastic product! The speed of scan is top tier. I've also noticed great improvements in UI. Highly recommend." + }, + { + "user": "User67260", + "rating": 4, + "comment": "Very incredible choice. The accuracy is definitely a plus. However, the reliability could be a bit better. Overall very happy." + }, + { + "user": "User52645", + "rating": 4, + "comment": "Very solid choice. The speed of scan is definitely a plus. However, the accuracy could be a bit better. Overall very happy." + } + ], + "benchmarks": { + "Value for Money": "97%", + "Feature Richness": "103%", + "Ease of Deployment": "106%", + "Community Support": "105%" + }, + "ratingStats": { + "1": 228, + "2": 51, + "3": 154, + "4": 515, + "5": 4202, + "total": 5150, + "avg": "4.6" + } + }, + { + "id": 443, + "title": "Insomnia", + "subtitle": "API platform for GraphQL/REST/gRPC", + "category": "TOOLS", + "isNew": false, + "features": { + "Type": "API Tool", + "License": "MIT" + }, + "specifications": { + "Type": "API Client", + "Platform": "Cross-platform", + "Support": "GraphQL, REST", + "Extensibility": "Plugins", + "License": "Open Source (MIT)", + "Description": "Desktop application to test APIs locally and efficiently with strong GraphQL support.", + "PrimaryUseCase": "REST/GraphQL API design and testing.", + "Ecosystem": "Insomnia Plugins" + }, + "scores": { + "Aesthetics": 96, + "Features": 95, + "Adoption": 90, + "Overall": 94 + }, + "prices": { + "amazon": { + "price": "Free", + "link": "https://insomnia.rest/" + }, + "flipkart": { + "price": "Free", + "link": "https://insomnia.rest/" + }, + "official": { + "price": "Free", + "link": "https://insomnia.rest/" + } + }, + "image": "https://cdn.simpleicons.org/insomnia/white", + "reviews": [ + { + "user": "User94072", + "rating": 4, + "comment": "Very fantastic choice. The speed of scan is definitely a plus. However, the speed of scan could be a bit better. Overall very happy." + }, + { + "user": "User36064", + "rating": 5, + "comment": "Outstanding product! The UI is top tier. I've also noticed great improvements in speed of scan. Highly recommend." + }, + { + "user": "User22832", + "rating": 5, + "comment": "Incredible product! The speed of scan is top tier. I've also noticed great improvements in speed of scan. Highly recommend." + }, + { + "user": "User22585", + "rating": 5, + "comment": "Incredible product! The feature set is top tier. I've also noticed great improvements in feature set. Highly recommend." + }, + { + "user": "User88549", + "rating": 4, + "comment": "Very outstanding choice. The UI is definitely a plus. However, the accuracy could be a bit better. Overall very happy." + }, + { + "user": "User60915", + "rating": 5, + "comment": "Solid product! The reliability is top tier. I've also noticed great improvements in reliability. Highly recommend." + } + ], + "benchmarks": { + "Value for Money": "100%", + "Feature Richness": "103%", + "Ease of Deployment": "106%", + "Community Support": "104%" + }, + "ratingStats": { + "1": 536, + "2": 87, + "3": 262, + "4": 875, + "5": 6993, + "total": 8753, + "avg": "4.6" + } + }, + { + "id": 444, + "title": "Bruno", + "subtitle": "Open-source IDE for exploring APIs", + "category": "TOOLS", + "isNew": true, + "features": { + "Type": "API Tool", + "License": "MIT" + }, + "specifications": { + "Type": "API Client", + "Platform": "Cross-platform", + "Storage": "Local Plain Text", + "Identity": "Postman Alternative", + "License": "Open Source (MIT)", + "Description": "Revolutionary API client that stores collections as plain text making it Git-friendly.", + "PrimaryUseCase": "Version-controlled API collections without cloud dependency.", + "Ecosystem": "Bruno CLI" + }, + "scores": { + "Privacy": 100, + "Usability": 94, + "Speed": 96, + "Overall": 97 + }, + "prices": { + "amazon": { + "price": "Free", + "link": "https://www.usebruno.com/" + }, + "flipkart": { + "price": "Free", + "link": "https://www.usebruno.com/" + }, + "official": { + "price": "Free", + "link": "https://www.usebruno.com/" + } + }, + "image": "https://cdn.simpleicons.org/bruno/white", + "reviews": [ + { + "user": "User78461", + "rating": 4, + "comment": "Very brilliant choice. The speed of scan is definitely a plus. However, the speed of scan could be a bit better. Overall very happy." + }, + { + "user": "User61200", + "rating": 2, + "comment": "Acceptable for the price, but fell short on accuracy. Maybe look around before committing." + }, + { + "user": "User63149", + "rating": 5, + "comment": "Great product! The reliability is top tier. I've also noticed great improvements in UI. Highly recommend." + }, + { + "user": "User25208", + "rating": 2, + "comment": "Acceptable for the price, but fell short on reliability. Maybe look around before committing." + } + ], + "benchmarks": { + "Value for Money": "102%", + "Feature Richness": "98%", + "Ease of Deployment": "100%", + "Community Support": "95%" + }, + "ratingStats": { + "1": 303, + "2": 85, + "3": 255, + "4": 851, + "5": 7018, + "total": 8512, + "avg": "4.7" + } + }, + { + "id": 445, + "title": "Prometheus", + "subtitle": "Monitoring system & time series DB", + "category": "TOOLS", + "isNew": false, + "features": { + "Type": "Monitoring", + "License": "Apache-2.0" + }, + "specifications": { + "Type": "Monitoring", + "Platform": "Linux", + "Ecosystem": "Exporters / Grafana", + "QueryLanguage": "PromQL", + "License": "Open Source (Apache-2.0)", + "Description": "Gathers multi-dimensional time series data using a pull model.", + "PrimaryUseCase": "Cloud-native service monitoring and alerting." + }, + "scores": { + "Scalability": 98, + "Features": 99, + "EaseOfSetup": 85, + "Overall": 94 + }, + "prices": { + "amazon": { + "price": "Free", + "link": "https://prometheus.io/" + }, + "flipkart": { + "price": "Free", + "link": "https://prometheus.io/" + }, + "official": { + "price": "Free", + "link": "https://prometheus.io/" + } + }, + "image": "https://cdn.simpleicons.org/prometheus/white", + "reviews": [ + { + "user": "User96981", + "rating": 5, + "comment": "Excellent product! The accuracy is top tier. I've also noticed great improvements in reliability. Highly recommend." + }, + { + "user": "User90432", + "rating": 5, + "comment": "Solid product! The speed of scan is top tier. I've also noticed great improvements in reliability. Highly recommend." + }, + { + "user": "User10903", + "rating": 4, + "comment": "Very brilliant choice. The speed of scan is definitely a plus. However, the feature set could be a bit better. Overall very happy." + }, + { + "user": "User58593", + "rating": 5, + "comment": "Brilliant product! The UI is top tier. I've also noticed great improvements in feature set. Highly recommend." + }, + { + "user": "User29211", + "rating": 5, + "comment": "Solid product! The reliability is top tier. I've also noticed great improvements in speed of scan. Highly recommend." + }, + { + "user": "User96781", + "rating": 2, + "comment": "Decent for the price, but fell short on speed of scan. Maybe look around before committing." + } + ], + "benchmarks": { + "Value for Money": "105%", + "Feature Richness": "89%", + "Ease of Deployment": "100%", + "Community Support": "100%" + }, + "ratingStats": { + "1": 557, + "2": 90, + "3": 272, + "4": 908, + "5": 7260, + "total": 9087, + "avg": "4.6" + } + }, + { + "id": 446, + "title": "Grafana", + "subtitle": "The open observability platform", + "category": "TOOLS", + "isNew": false, + "features": { + "Type": "Monitoring", + "License": "AGPL-3.0" + }, + "specifications": { + "Type": "Dashboarding", + "Platform": "Cross-platform", + "Integration": "Prometheus, TSDBs", + "Visuals": "Extensive", + "License": "Open Source (AGPL-3.0)", + "Description": "Allows you to query, visualize, alert on and understand your metrics no matter where they are stored.", + "PrimaryUseCase": "Interactive dashboards for metrics and logs.", + "Ecosystem": "Grafana Plugins" + }, + "scores": { + "Visualization": 100, + "Usability": 96, + "Ecosystem": 99, + "Overall": 98 + }, + "prices": { + "amazon": { + "price": "Free", + "link": "https://grafana.com/" + }, + "flipkart": { + "price": "Free", + "link": "https://grafana.com/" + }, + "official": { + "price": "Free", + "link": "https://grafana.com/" + } + }, + "image": "https://cdn.simpleicons.org/grafana/white", + "reviews": [ + { + "user": "User44092", + "rating": 5, + "comment": "Great product! The speed of scan is top tier. I've also noticed great improvements in speed of scan. Highly recommend." + }, + { + "user": "User59846", + "rating": 4, + "comment": "Very fantastic choice. The reliability is definitely a plus. However, the speed of scan could be a bit better. Overall very happy." + }, + { + "user": "User90963", + "rating": 5, + "comment": "Fantastic product! The speed of scan is top tier. I've also noticed great improvements in reliability. Highly recommend." + }, + { + "user": "User54873", + "rating": 5, + "comment": "Incredible product! The feature set is top tier. I've also noticed great improvements in accuracy. Highly recommend." + } + ], + "benchmarks": { + "Value for Money": "95%", + "Feature Richness": "95%", + "Ease of Deployment": "100%", + "Community Support": "98%" + }, + "ratingStats": { + "1": 92, + "2": 33, + "3": 101, + "4": 337, + "5": 2808, + "total": 3371, + "avg": "4.7" + } + }, + { + "id": 447, + "title": "Zabbix", + "subtitle": "Enterprise-class monitoring solution", + "category": "TOOLS", + "isNew": false, + "features": { + "Type": "Monitoring", + "License": "GPL-2.0" + }, + "specifications": { + "Type": "Monitoring", + "Platform": "Cross-platform", + "Scalability": "Enterprise", + "Agents": "Available", + "License": "Open Source (GPL-2.0)", + "Description": "Mature, network-heavy monitoring system with built-in UI and alerting.", + "PrimaryUseCase": "Server and network infrastructure monitoring.", + "Ecosystem": "Zabbix Integrations" + }, + "scores": { + "Capability": 97, + "Scalability": 96, + "ModernUI": 80, + "Overall": 91 + }, + "prices": { + "amazon": { + "price": "Free", + "link": "https://www.zabbix.com/" + }, + "flipkart": { + "price": "Free", + "link": "https://www.zabbix.com/" + }, + "official": { + "price": "Free", + "link": "https://www.zabbix.com/" + } + }, + "image": "https://icon-icons.com/download-file?file=https%3A%2F%2Fimages.icon-icons.com%2F2699%2FPNG%2F512%2Fzabbix_logo_icon_167937.png", + "reviews": [ + { + "user": "User58160", + "rating": 5, + "comment": "Excellent product! The speed of scan is top tier. I've also noticed great improvements in reliability. Highly recommend." + }, + { + "user": "User91370", + "rating": 2, + "comment": "Okay for the price, but fell short on UI. Maybe look around before committing." + }, + { + "user": "User34294", + "rating": 5, + "comment": "Outstanding product! The UI is top tier. I've also noticed great improvements in accuracy. Highly recommend." + }, + { + "user": "User17129", + "rating": 5, + "comment": "Incredible product! The feature set is top tier. I've also noticed great improvements in speed of scan. Highly recommend." + } + ], + "benchmarks": { + "Value for Money": "99%", + "Feature Richness": "89%", + "Ease of Deployment": "96%", + "Community Support": "96%" + }, + "ratingStats": { + "1": 830, + "2": 95, + "3": 286, + "4": 956, + "5": 7399, + "total": 9566, + "avg": "4.5" + } + }, + { + "id": 448, + "title": "Elasticsearch", + "subtitle": "Distributed, RESTful search/analytics engine", + "category": "TOOLS", + "isNew": false, + "features": { + "Type": "Log Mgmt", + "License": "Elastic/SSPL" + }, + "specifications": { + "Type": "Search Engine", + "Platform": "Cross-platform", + "Base": "Apache Lucene", + "Ecosystem": "Kibana, Logstash", + "License": "Open Source / Business", + "Description": "Provides a distributed, multitenant-capable full-text search engine.", + "PrimaryUseCase": "Log aggregation and extremely fast unstructured searches." + }, + "scores": { + "Speed": 99, + "Scalability": 98, + "Features": 97, + "Overall": 98 + }, + "prices": { + "amazon": { + "price": "Free", + "link": "https://www.elastic.co/" + }, + "flipkart": { + "price": "Free", + "link": "https://www.elastic.co/" + }, + "official": { + "price": "Free", + "link": "https://www.elastic.co/" + } + }, + "image": "https://cdn.simpleicons.org/elasticsearch/white", + "reviews": [ + { + "user": "User80297", + "rating": 5, + "comment": "Great product! The speed of scan is top tier. I've also noticed great improvements in accuracy. Highly recommend." + }, + { + "user": "User19048", + "rating": 4, + "comment": "Very brilliant choice. The UI is definitely a plus. However, the reliability could be a bit better. Overall very happy." + }, + { + "user": "User50590", + "rating": 5, + "comment": "Solid product! The feature set is top tier. I've also noticed great improvements in accuracy. Highly recommend." + }, + { + "user": "User47699", + "rating": 3, + "comment": "Good enough for the price, but fell short on reliability. Maybe look around before committing." + }, + { + "user": "User30266", + "rating": 5, + "comment": "Brilliant product! The UI is top tier. I've also noticed great improvements in speed of scan. Highly recommend." + } + ], + "benchmarks": { + "Value for Money": "102%", + "Feature Richness": "105%", + "Ease of Deployment": "99%", + "Community Support": "109%" + }, + "ratingStats": { + "1": 224, + "2": 82, + "3": 246, + "4": 821, + "5": 6844, + "total": 8217, + "avg": "4.7" + } + }, + { + "id": 449, + "title": "Logstash", + "subtitle": "Server-side data processing pipeline", + "category": "TOOLS", + "isNew": false, + "features": { + "Type": "Log Mgmt", + "License": "Elastic/SSPL" + }, + "specifications": { + "Type": "Data Pipeline", + "Platform": "Cross-platform", + "Input/Output": "Versatile", + "Ecosystem": "Elastic Stack", + "License": "Open Source / Business", + "Description": "Ingests data from a multitude of sources simultaneously, transforms it, and sends it to your favorite stash.", + "PrimaryUseCase": "Data parsing and routing for logging." + }, + "scores": { + "Capability": 96, + "Flexibility": 98, + "Performance": 88, + "Overall": 94 + }, + "prices": { + "amazon": { + "price": "Free", + "link": "https://www.elastic.co/logstash" + }, + "flipkart": { + "price": "Free", + "link": "https://www.elastic.co/logstash" + }, + "official": { + "price": "Free", + "link": "https://www.elastic.co/logstash" + } + }, + "image": "https://cdn.simpleicons.org/logstash/white", + "reviews": [ + { + "user": "User81998", + "rating": 4, + "comment": "Very solid choice. The UI is definitely a plus. However, the reliability could be a bit better. Overall very happy." + }, + { + "user": "User86794", + "rating": 4, + "comment": "Very brilliant choice. The UI is definitely a plus. However, the accuracy could be a bit better. Overall very happy." + }, + { + "user": "User82755", + "rating": 4, + "comment": "Very excellent choice. The speed of scan is definitely a plus. However, the speed of scan could be a bit better. Overall very happy." + }, + { + "user": "User15538", + "rating": 5, + "comment": "Excellent product! The speed of scan is top tier. I've also noticed great improvements in speed of scan. Highly recommend." + } + ], + "benchmarks": { + "Value for Money": "98%", + "Feature Richness": "99%", + "Ease of Deployment": "110%", + "Community Support": "107%" + }, + "ratingStats": { + "1": 379, + "2": 61, + "3": 185, + "4": 617, + "5": 4933, + "total": 6175, + "avg": "4.6" + } + }, + { + "id": 450, + "title": "Fluentd", + "subtitle": "Data collector for unified logging layer", + "category": "TOOLS", + "isNew": false, + "features": { + "Type": "Log Mgmt", + "License": "Apache-2.0" + }, + "specifications": { + "Type": "Data Pipeline", + "Platform": "Cross-platform", + "Language": "Ruby/C", + "Ecosystem": "Fluent Bit, Kubernetes", + "License": "Open Source (Apache-2.0)", + "Description": "Decouples data sources from backend systems by providing a unified logging layer.", + "PrimaryUseCase": "Cloud-native log collection and shipping." + }, + "scores": { + "Reliability": 98, + "Adaptability": 97, + "ResourceUsage": 90, + "Overall": 95 + }, + "prices": { + "amazon": { + "price": "Free", + "link": "https://www.fluentd.org/" + }, + "flipkart": { + "price": "Free", + "link": "https://www.fluentd.org/" + }, + "official": { + "price": "Free", + "link": "https://www.fluentd.org/" + } + }, + "image": "https://cdn.simpleicons.org/fluentd/white", + "reviews": [ + { + "user": "User20308", + "rating": 4, + "comment": "Very outstanding choice. The reliability is definitely a plus. However, the feature set could be a bit better. Overall very happy." + }, + { + "user": "User48184", + "rating": 5, + "comment": "Great product! The reliability is top tier. I've also noticed great improvements in UI. Highly recommend." + }, + { + "user": "User11792", + "rating": 5, + "comment": "Outstanding product! The UI is top tier. I've also noticed great improvements in accuracy. Highly recommend." + }, + { + "user": "User97568", + "rating": 4, + "comment": "Very brilliant choice. The accuracy is definitely a plus. However, the speed of scan could be a bit better. Overall very happy." + }, + { + "user": "User79284", + "rating": 5, + "comment": "Brilliant product! The reliability is top tier. I've also noticed great improvements in accuracy. Highly recommend." + }, + { + "user": "User40448", + "rating": 4, + "comment": "Very great choice. The speed of scan is definitely a plus. However, the UI could be a bit better. Overall very happy." + } + ], + "benchmarks": { + "Value for Money": "110%", + "Feature Richness": "94%", + "Ease of Deployment": "101%", + "Community Support": "92%" + }, + "ratingStats": { + "1": 507, + "2": 96, + "3": 288, + "4": 963, + "5": 7776, + "total": 9630, + "avg": "4.6" + } + }, + { + "id": 451, + "title": "Gitea", + "subtitle": "Painless self-hosted Git service", + "category": "TOOLS", + "isNew": false, + "features": { + "Type": "Code Hosting", + "License": "MIT" + }, + "specifications": { + "Type": "Forge", + "Platform": "Cross-platform", + "Language": "Go", + "Focus": "Lightweight", + "License": "Open Source (MIT)", + "Description": "Community managed, lightweight code hosting solution written in Go.", + "PrimaryUseCase": "Self-hosting Git repositories on low-power servers.", + "Ecosystem": "Forgejo" + }, + "scores": { + "Performance": 99, + "Simplicity": 96, + "Features": 88, + "Overall": 94 + }, + "prices": { + "amazon": { + "price": "Free", + "link": "https://gitea.io/" + }, + "flipkart": { + "price": "Free", + "link": "https://gitea.io/" + }, + "official": { + "price": "Free", + "link": "https://gitea.io/" + } + }, + "image": "https://cdn.simpleicons.org/gitea/white", + "reviews": [ + { + "user": "User62808", + "rating": 2, + "comment": "Good enough for the price, but fell short on reliability. Maybe look around before committing." + }, + { + "user": "User45395", + "rating": 5, + "comment": "Outstanding product! The speed of scan is top tier. I've also noticed great improvements in UI. Highly recommend." + }, + { + "user": "User59238", + "rating": 5, + "comment": "Brilliant product! The reliability is top tier. I've also noticed great improvements in UI. Highly recommend." + }, + { + "user": "User22944", + "rating": 4, + "comment": "Very solid choice. The UI is definitely a plus. However, the accuracy could be a bit better. Overall very happy." + } + ], + "benchmarks": { + "Value for Money": "95%", + "Feature Richness": "93%", + "Ease of Deployment": "97%", + "Community Support": "99%" + }, + "ratingStats": { + "1": 521, + "2": 84, + "3": 254, + "4": 848, + "5": 6782, + "total": 8489, + "avg": "4.6" + } + }, + { + "id": 452, + "title": "GitLab CE", + "subtitle": "Complete DevOps platform", + "category": "TOOLS", + "isNew": false, + "features": { + "Type": "Code Hosting", + "License": "MIT" + }, + "specifications": { + "Type": "Forge", + "Platform": "Linux", + "Ecosystem": "GitLab Runners", + "Scale": "Enterprise", + "License": "Open Source (MIT)", + "Description": "A single application for the entire DevSecOps lifecycle.", + "PrimaryUseCase": "Comprehensive enterprise-grade code repository and pipelines." + }, + "scores": { + "Features": 100, + "Scalability": 95, + "ResourceUsage": 75, + "Overall": 90 + }, + "prices": { + "amazon": { + "price": "Free", + "link": "https://about.gitlab.com/" + }, + "flipkart": { + "price": "Free", + "link": "https://about.gitlab.com/" + }, + "official": { + "price": "Free", + "link": "https://about.gitlab.com/install/" + } + }, + "image": "https://cdn.simpleicons.org/gitlab", + "reviews": [ + { + "user": "User65051", + "rating": 5, + "comment": "Incredible product! The accuracy is top tier. I've also noticed great improvements in UI. Highly recommend." + }, + { + "user": "User35916", + "rating": 5, + "comment": "Brilliant product! The reliability is top tier. I've also noticed great improvements in UI. Highly recommend." + }, + { + "user": "User81482", + "rating": 5, + "comment": "Solid product! The UI is top tier. I've also noticed great improvements in accuracy. Highly recommend." + }, + { + "user": "User62339", + "rating": 4, + "comment": "Very excellent choice. The feature set is definitely a plus. However, the speed of scan could be a bit better. Overall very happy." + }, + { + "user": "User95494", + "rating": 4, + "comment": "Very excellent choice. The reliability is definitely a plus. However, the reliability could be a bit better. Overall very happy." + } + ], + "benchmarks": { + "Value for Money": "104%", + "Feature Richness": "93%", + "Ease of Deployment": "108%", + "Community Support": "89%" + }, + "ratingStats": { + "1": 335, + "2": 35, + "3": 105, + "4": 351, + "5": 2686, + "total": 3512, + "avg": "4.4" + } + }, + { + "id": 453, + "title": "Nginx", + "subtitle": "High performance web server & reverse proxy", + "category": "TOOLS", + "isNew": false, + "features": { + "Type": "Web Server", + "License": "BSD-2-Clause" + }, + "specifications": { + "Type": "Web Server", + "Platform": "Cross-platform", + "Architecture": "Event-driven", + "Capability": "Load Balancer", + "License": "Open Source (BSD-2-Clause)", + "Description": "Known for its stability, rich feature set, simple configuration, and low resource consumption.", + "PrimaryUseCase": "High-traffic reverse proxy serving static content.", + "Ecosystem": "F5 Networks" + }, + "scores": { + "Performance": 100, + "Reliability": 99, + "Concurrency": 100, + "Overall": 100 + }, + "prices": { + "amazon": { + "price": "Free", + "link": "https://nginx.org/" + }, + "flipkart": { + "price": "Free", + "link": "https://nginx.org/" + }, + "official": { + "price": "Free", + "link": "https://nginx.org/" + } + }, + "image": "https://cdn.simpleicons.org/nginx/white", + "reviews": [ + { + "user": "User42179", + "rating": 5, + "comment": "Solid product! The accuracy is top tier. I've also noticed great improvements in speed of scan. Highly recommend." + }, + { + "user": "User46796", + "rating": 5, + "comment": "Outstanding product! The UI is top tier. I've also noticed great improvements in speed of scan. Highly recommend." + }, + { + "user": "User87478", + "rating": 5, + "comment": "Fantastic product! The reliability is top tier. I've also noticed great improvements in feature set. Highly recommend." + }, + { + "user": "User48059", + "rating": 5, + "comment": "Solid product! The accuracy is top tier. I've also noticed great improvements in accuracy. Highly recommend." + }, + { + "user": "User69069", + "rating": 5, + "comment": "Brilliant product! The accuracy is top tier. I've also noticed great improvements in feature set. Highly recommend." + } + ], + "benchmarks": { + "Value for Money": "98%", + "Feature Richness": "96%", + "Ease of Deployment": "105%", + "Community Support": "102%" + }, + "ratingStats": { + "1": 75, + "2": 73, + "3": 219, + "4": 733, + "5": 6233, + "total": 7333, + "avg": "4.8" + } + }, + { + "id": 454, + "title": "Apache HTTP Server", + "subtitle": "Most popular web server", + "category": "TOOLS", + "isNew": false, + "features": { + "Type": "Web Server", + "License": "Apache-2.0" + }, + "specifications": { + "Type": "Web Server", + "Platform": "Cross-platform", + "Architecture": "Process/Thread based", + "Modules": "Extensive", + "License": "Open Source (Apache-2.0)", + "Description": "A robust, commercial-grade, featureful HTTP server serving over 20% of internet traffic.", + "PrimaryUseCase": "Dynamic content processing and highly configurable routing.", + "Ecosystem": "Apache Foundation" + }, + "scores": { + "Features": 98, + "Ecosystem": 100, + "Configurable": 96, + "Overall": 98 + }, + "prices": { + "amazon": { + "price": "Free", + "link": "https://httpd.apache.org/" + }, + "flipkart": { + "price": "Free", + "link": "https://httpd.apache.org/" + }, + "official": { + "price": "Free", + "link": "https://httpd.apache.org/" + } + }, + "image": "https://cdn.simpleicons.org/apache", + "reviews": [ + { + "user": "User19377", + "rating": 4, + "comment": "Very great choice. The reliability is definitely a plus. However, the speed of scan could be a bit better. Overall very happy." + }, + { + "user": "User47039", + "rating": 3, + "comment": "Acceptable for the price, but fell short on feature set. Maybe look around before committing." + }, + { + "user": "User50539", + "rating": 4, + "comment": "Very incredible choice. The UI is definitely a plus. However, the UI could be a bit better. Overall very happy." + }, + { + "user": "User95422", + "rating": 5, + "comment": "Solid product! The feature set is top tier. I've also noticed great improvements in UI. Highly recommend." + } + ], + "benchmarks": { + "Value for Money": "109%", + "Feature Richness": "108%", + "Ease of Deployment": "111%", + "Community Support": "101%" + }, + "ratingStats": { + "1": 133, + "2": 49, + "3": 147, + "4": 490, + "5": 4085, + "total": 4904, + "avg": "4.7" + } + }, + { + "id": 455, + "title": "Vercel", + "subtitle": "Frontend Cloud & Next.js creator", + "category": "TOOLS", + "isNew": true, + "features": { + "Type": "Deployment", + "Subscription": "Freemium" + }, + "specifications": { + "Type": "Platform as a Service", + "Platform": "Web", + "Support": "Global Edge Network", + "License": "Proprietary Service", + "Description": "Vercel is the platform for frontend developers, providing the speed and reliability innovators need to create at the moment of inspiration.", + "PrimaryUseCase": "Zero-configuration deployment for frontend frameworks and serverless functions.", + "Ecosystem": "Next.js, React, Edge Functions", + "FreeTier": "Hobby (Free forever for non-commercial)", + "ProTier": "$20/mo per user (1TB Bandwidth)", + "EnterpriseTier": "Custom pricing (Enhanced Security, SLA)" + }, + "scores": { + "Reliability": 99, + "Speed": 100, + "EaseOfUse": 98, + "Overall": 99 + }, + "prices": { + "official": { + "price": "Freemium", + "link": "https://vercel.com/" + } + }, + "image": "https://cdn.simpleicons.org/vercel/white", + "reviews": [ + { + "user": "User36988", + "rating": 4, + "comment": "Very solid choice. The UI is definitely a plus. However, the speed of scan could be a bit better. Overall very happy." + }, + { + "user": "User21580", + "rating": 5, + "comment": "Fantastic product! The feature set is top tier. I've also noticed great improvements in speed of scan. Highly recommend." + }, + { + "user": "User88977", + "rating": 5, + "comment": "Solid product! The accuracy is top tier. I've also noticed great improvements in speed of scan. Highly recommend." + }, + { + "user": "User93370", + "rating": 2, + "comment": "Decent for the price, but fell short on feature set. Maybe look around before committing." + }, + { + "user": "User76804", + "rating": 5, + "comment": "Incredible product! The accuracy is top tier. I've also noticed great improvements in UI. Highly recommend." + }, + { + "user": "User84031", + "rating": 4, + "comment": "Very outstanding choice. The accuracy is definitely a plus. However, the UI could be a bit better. Overall very happy." + } + ], + "benchmarks": { + "Value for Money": "98%", + "Feature Richness": "101%", + "Ease of Deployment": "114%", + "Community Support": "105%" + }, + "ratingStats": { + "1": 79, + "2": 42, + "3": 126, + "4": 421, + "5": 3546, + "total": 4214, + "avg": "4.7" + } + }, + { + "id": 456, + "title": "Netlify", + "subtitle": "Connect everything. Build anywhere.", + "category": "TOOLS", + "isNew": false, + "features": { + "Type": "Deployment", + "Subscription": "Freemium" + }, + "specifications": { + "Type": "Platform as a Service", + "Platform": "Web", + "Support": "Jamstack", + "License": "Proprietary Service", + "Description": "A unified platform that automates your code to create high-performant, easily maintainable sites and web apps.", + "PrimaryUseCase": "Jamstack applications with automated edge deployments.", + "Ecosystem": "Gatsby, Nuxt, Edge CDN", + "FreeTier": "Starter (100GB Bandwidth, 300 build mins)", + "ProTier": "$19/mo per user (1TB Bandwidth)", + "EnterpriseTier": "Custom pricing (99.99% Uptime SLA)" + }, + "scores": { + "Reliability": 98, + "Speed": 97, + "EaseOfUse": 99, + "Overall": 98 + }, + "prices": { + "official": { + "price": "Freemium", + "link": "https://www.netlify.com/" + } + }, + "image": "https://cdn.simpleicons.org/netlify/white", + "reviews": [ + { + "user": "User42363", + "rating": 5, + "comment": "Incredible product! The UI is top tier. I've also noticed great improvements in reliability. Highly recommend." + }, + { + "user": "User54947", + "rating": 5, + "comment": "Outstanding product! The feature set is top tier. I've also noticed great improvements in feature set. Highly recommend." + }, + { + "user": "User71962", + "rating": 4, + "comment": "Very fantastic choice. The accuracy is definitely a plus. However, the accuracy could be a bit better. Overall very happy." + }, + { + "user": "User17901", + "rating": 3, + "comment": "Average for the price, but fell short on reliability. Maybe look around before committing." + }, + { + "user": "User79014", + "rating": 4, + "comment": "Very fantastic choice. The UI is definitely a plus. However, the reliability could be a bit better. Overall very happy." + }, + { + "user": "User77207", + "rating": 5, + "comment": "Excellent product! The feature set is top tier. I've also noticed great improvements in reliability. Highly recommend." + } + ], + "benchmarks": { + "Value for Money": "113%", + "Feature Richness": "91%", + "Ease of Deployment": "103%", + "Community Support": "95%" + }, + "ratingStats": { + "1": 106, + "2": 38, + "3": 116, + "4": 387, + "5": 3223, + "total": 3870, + "avg": "4.7" + } + }, + { + "id": 457, + "title": "Render", + "subtitle": "Unified Cloud to build and run all your apps", + "category": "TOOLS", + "isNew": true, + "features": { + "Type": "Deployment", + "Subscription": "Freemium" + }, + "specifications": { + "Type": "Cloud Platform", + "Platform": "Web / Backend", + "Support": "Docker, Node, Python", + "License": "Proprietary Service", + "Description": "Render is a unified cloud to build and run all your apps and websites with free TLS certificates, a global CDN, DDoS protection, private networks, and auto deploys from Git.", + "PrimaryUseCase": "Deploying full-stack applications, databases, and cron jobs effortlessly.", + "Ecosystem": "PostgreSQL, Redis, Web Services", + "FreeTier": "Individual (Static Sites, Free Web Services spin down)", + "ProTier": "Team $19/mo (Scale memory/CPU as needed)", + "EnterpriseTier": "Organization (SSO, Role-based access)" + }, + "scores": { + "Versatility": 95, + "Usability": 96, + "Value": 98, + "Overall": 96 + }, + "prices": { + "official": { + "price": "Freemium", + "link": "https://render.com/" + } + }, + "image": "https://cdn.simpleicons.org/render/white", + "reviews": [ + { + "user": "User89541", + "rating": 5, + "comment": "Brilliant product! The reliability is top tier. I've also noticed great improvements in UI. Highly recommend." + }, + { + "user": "User87511", + "rating": 4, + "comment": "Very incredible choice. The reliability is definitely a plus. However, the UI could be a bit better. Overall very happy." + }, + { + "user": "User30897", + "rating": 3, + "comment": "Good enough for the price, but fell short on accuracy. Maybe look around before committing." + }, + { + "user": "User63217", + "rating": 3, + "comment": "Average for the price, but fell short on UI. Maybe look around before committing." + } + ], + "benchmarks": { + "Value for Money": "95%", + "Feature Richness": "104%", + "Ease of Deployment": "114%", + "Community Support": "94%" + }, + "ratingStats": { + "1": 154, + "2": 34, + "3": 103, + "4": 346, + "5": 2824, + "total": 3461, + "avg": "4.6" + } + }, + { + "id": 458, + "title": "Heroku", + "subtitle": "Cloud application platform", + "category": "TOOLS", + "isNew": false, + "features": { + "Type": "Deployment", + "Subscription": "Paid" + }, + "specifications": { + "Type": "Platform as a Service", + "Platform": "Backend", + "Support": "Polyglot", + "License": "Proprietary Service", + "Description": "A platform as a service (PaaS) that enables developers to build, run, and operate applications entirely in the cloud.", + "PrimaryUseCase": "Simple container-based application hosting (Dynos).", + "Ecosystem": "Salesforce, Node, Ruby, Postgres", + "FreeTier": "No longer available. Starts at Eco ($5)", + "ProTier": "Standard Dynos ($25-$50/mo)", + "EnterpriseTier": "Private Spaces (Network isolation, compliance)" + }, + "scores": { + "Ecosystem": 99, + "Reliability": 95, + "Pricing": 70, + "Overall": 88 + }, + "prices": { + "official": { + "price": "Paid Plans", + "link": "https://www.heroku.com/" + } + }, + "image": "https://media2.dev.to/dynamic/image/width=320,height=320,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F123%2F38b10714-65da-4f1d-88ae-e9b28c1d7a5e.png", + "reviews": [ + { + "user": "User78720", + "rating": 4, + "comment": "Very solid choice. The UI is definitely a plus. However, the speed of scan could be a bit better. Overall very happy." + }, + { + "user": "User36510", + "rating": 4, + "comment": "Very great choice. The reliability is definitely a plus. However, the UI could be a bit better. Overall very happy." + }, + { + "user": "User66478", + "rating": 5, + "comment": "Solid product! The speed of scan is top tier. I've also noticed great improvements in speed of scan. Highly recommend." + }, + { + "user": "User14769", + "rating": 5, + "comment": "Brilliant product! The accuracy is top tier. I've also noticed great improvements in reliability. Highly recommend." + } + ], + "benchmarks": { + "Value for Money": "96%", + "Feature Richness": "95%", + "Ease of Deployment": "97%", + "Community Support": "96%" + }, + "ratingStats": { + "1": 298, + "2": 26, + "3": 79, + "4": 265, + "5": 1982, + "total": 2650, + "avg": "4.4" + } + }, + { + "id": 459, + "title": "AWS Amplify", + "subtitle": "Build extensible, full-stack web and mobile apps", + "category": "TOOLS", + "isNew": false, + "features": { + "Type": "Deployment", + "Subscription": "Pay-as-you-go" + }, + "specifications": { + "Type": "Cloud Platform", + "Platform": "Web / Mobile", + "Support": "AWS Cloud", + "License": "Proprietary Service", + "Description": "A set of purpose-built tools and features that lets frontend web and mobile developers quickly and easily build full-stack applications on AWS.", + "PrimaryUseCase": "Seamless integration of frontend code with AWS backend services (Auth, Storage, APIs).", + "Ecosystem": "AWS ecosystem, React Native, Vue", + "FreeTier": "Free tier limits for 12 months (1000 build mins, 15GB bandwidth)", + "ProTier": "Pay-as-you-go ($0.01/build min, $0.15/GB)", + "EnterpriseTier": "Part of AWS compliance, massive scale" + }, + "scores": { + "Scalability": 100, + "Features": 96, + "Complexity": 85, + "Overall": 94 + }, + "prices": { + "official": { + "price": "Pay-as-you-go", + "link": "https://aws.amazon.com/amplify/" + } + }, + "image": "https://i1.sndcdn.com/artworks-000570396638-6vixrq-t500x500.jpg", + "reviews": [ + { + "user": "User58802", + "rating": 5, + "comment": "Outstanding product! The accuracy is top tier. I've also noticed great improvements in accuracy. Highly recommend." + }, + { + "user": "User31083", + "rating": 5, + "comment": "Solid product! The UI is top tier. I've also noticed great improvements in UI. Highly recommend." + }, + { + "user": "User90170", + "rating": 5, + "comment": "Excellent product! The reliability is top tier. I've also noticed great improvements in speed of scan. Highly recommend." + }, + { + "user": "User21284", + "rating": 5, + "comment": "Fantastic product! The UI is top tier. I've also noticed great improvements in UI. Highly recommend." + } + ], + "benchmarks": { + "Value for Money": "105%", + "Feature Richness": "101%", + "Ease of Deployment": "96%", + "Community Support": "97%" + }, + "ratingStats": { + "1": 242, + "2": 39, + "3": 117, + "4": 393, + "5": 3142, + "total": 3933, + "avg": "4.6" + } + }, + { + "id": 501, + "title": "Corsair Vengeance RGB DDR5", + "subtitle": "Popular RGB DDR5", + "category": "MEMORY (RAM)", + "isNew": false, + "features": { + "Capacity": "32GB (2x16GB)", + "Speed": "6000MT/s" + }, + "specifications": { + "Capacity": "32GB (2x16GB)", + "Speed": "6000 MT/s", + "CAS": "CL36", + "Voltage": "1.35V", + "Profile": "XMP 3.0 / EXPO", + "RGB": "Yes (iCUE)" + }, + "scores": { + "Speed": 90, + "Reliability": 95, + "Value": 85, + "Aesthetics": 96, + "Overall": 92 + }, + "prices": { + "amazon": { + "price": "$110", + "link": "https://www.amazon.com/s?k=Corsair%20Vengeance%20RGB%20DDR5%2032GB%206000" + }, + "flipkart": { + "price": "₹11,000", + "link": "https://www.flipkart.com/search?q=Corsair%20Vengeance%20DDR5" + }, + "official": { + "price": "$120", + "link": "https://www.google.com/search?q=Corsair%20Vengeance%20RGB%20DDR5+official+site" + } + }, + "image": "https://www.vedantcomputers.com/image/cache/catalog/assets/product/corsair/ram/cmh32gx5m2b6000z30k/cmh32gx5m2b6000z30k-2-350x350.jpg", + "reviews": [ + { + "user": "User44374", + "rating": 5, + "comment": "Solid product! The stutter reduction is top tier. I've also noticed great improvements in stutter reduction. Highly recommend." + }, + { + "user": "User13979", + "rating": 5, + "comment": "Outstanding product! The EXPO profiles is top tier. I've also noticed great improvements in latency. Highly recommend." + }, + { + "user": "User87410", + "rating": 5, + "comment": "Solid product! The stutter reduction is top tier. I've also noticed great improvements in EXPO profiles. Highly recommend." + }, + { + "user": "User11199", + "rating": 5, + "comment": "Excellent product! The EXPO profiles is top tier. I've also noticed great improvements in EXPO profiles. Highly recommend." + }, + { + "user": "User53547", + "rating": 5, + "comment": "Excellent product! The RGB lighting is top tier. I've also noticed great improvements in latency. Highly recommend." + } + ], + "benchmarks": { + "AIDA64 Read": "96127 MB/s", + "AIDA64 Latency": "70.7 ns", + "Y-Cruncher PI": "13.1 sec" + }, + "ratingStats": { + "1": 712, + "2": 91, + "3": 273, + "4": 911, + "5": 7126, + "total": 9113, + "avg": "4.5" + } + }, + { + "id": 502, + "title": "G.Skill Trident Z5 RGB NEO", + "subtitle": "Optimized for AMD EXPO", + "category": "MEMORY (RAM)", + "isNew": true, + "features": { + "Capacity": "32GB (2x16GB)", + "Speed": "6000MT/s" + }, + "specifications": { + "Capacity": "32GB (2x16GB)", + "Speed": "6000 MT/s", + "CAS": "CL30", + "Voltage": "1.35V", + "Profile": "EXPO (AMD)", + "RGB": "Yes" + }, + "scores": { + "Speed": 95, + "Reliability": 94, + "Value": 88, + "Aesthetics": 98, + "Overall": 94 + }, + "prices": { + "amazon": { + "price": "$115", + "link": "https://www.amazon.com/s?k=G.Skill%20Trident%20Z5%20RGB%20NEO%2032GB" + }, + "flipkart": { + "price": "₹12,000", + "link": "https://www.flipkart.com/search?q=G.Skill%20Trident%20Z5%20NEO" + }, + "official": { + "price": "$130", + "link": "https://www.google.com/search?q=G.Skill%20Trident%20Z5%20NEO+official+site" + } + }, + "image": "https://m.media-amazon.com/images/I/61XlVUhmP+L.jpg", + "reviews": [ + { + "user": "User71426", + "rating": 4, + "comment": "Very incredible choice. The overclocking is definitely a plus. However, the overclocking could be a bit better. Overall very happy." + }, + { + "user": "User24138", + "rating": 4, + "comment": "Very solid choice. The RGB lighting is definitely a plus. However, the RGB lighting could be a bit better. Overall very happy." + }, + { + "user": "User71731", + "rating": 4, + "comment": "Very incredible choice. The stutter reduction is definitely a plus. However, the stutter reduction could be a bit better. Overall very happy." + }, + { + "user": "User30048", + "rating": 4, + "comment": "Very brilliant choice. The RGB lighting is definitely a plus. However, the EXPO profiles could be a bit better. Overall very happy." + } + ], + "benchmarks": { + "AIDA64 Read": "95555 MB/s", + "AIDA64 Latency": "69.8 ns", + "Y-Cruncher PI": "12.8 sec" + }, + "ratingStats": { + "1": 270, + "2": 44, + "3": 132, + "4": 440, + "5": 3520, + "total": 4406, + "avg": "4.6" + } + }, + { + "id": 503, + "title": "Kingston FURY Beast DDR5", + "subtitle": "Reliable performance", + "category": "MEMORY (RAM)", + "isNew": false, + "features": { + "Capacity": "32GB (2x16GB)", + "Speed": "5600MT/s" + }, + "specifications": { + "Capacity": "32GB (2x16GB)", + "Speed": "5600 MT/s", + "CAS": "CL40", + "Voltage": "1.25V", + "Profile": "XMP 3.0", + "RGB": "No" + }, + "scores": { + "Speed": 80, + "Reliability": 98, + "Value": 92, + "Aesthetics": 75, + "Overall": 86 + }, + "prices": { + "amazon": { + "price": "$90", + "link": "https://www.amazon.com/s?k=Kingston%20FURY%20Beast%20DDR5%2032GB" + }, + "flipkart": { + "price": "₹9,000", + "link": "https://www.flipkart.com/search?q=Kingston%20FURY%20Beast" + }, + "official": { + "price": "$100", + "link": "https://www.google.com/search?q=Kingston%20FURY%20Beast+official+site" + } + }, + "image": "https://m.media-amazon.com/images/I/71Y-MK6-fsL.jpg", + "reviews": [ + { + "user": "User52137", + "rating": 5, + "comment": "Great product! The latency is top tier. I've also noticed great improvements in EXPO profiles. Highly recommend." + }, + { + "user": "User84711", + "rating": 4, + "comment": "Very brilliant choice. The EXPO profiles is definitely a plus. However, the latency could be a bit better. Overall very happy." + }, + { + "user": "User75061", + "rating": 4, + "comment": "Very solid choice. The overclocking is definitely a plus. However, the latency could be a bit better. Overall very happy." + }, + { + "user": "User58255", + "rating": 2, + "comment": "Good enough for the price, but fell short on RGB lighting. Maybe look around before committing." + } + ], + "benchmarks": { + "AIDA64 Read": "80083 MB/s", + "AIDA64 Latency": "64.2 ns", + "Y-Cruncher PI": "12.3 sec" + }, + "ratingStats": { + "1": 993, + "2": 76, + "3": 230, + "4": 768, + "5": 5615, + "total": 7682, + "avg": "4.3" + } + }, + { + "id": 504, + "title": "Crucial Pro DDR5", + "subtitle": "No-nonsense stability", + "category": "MEMORY (RAM)", + "isNew": true, + "features": { + "Capacity": "32GB (2x16GB)", + "Speed": "5600MT/s" + }, + "specifications": { + "Capacity": "32GB (2x16GB)", + "Speed": "5600 MT/s", + "CAS": "CL46", + "Voltage": "1.1V", + "Profile": "JEDEC / XMP 3.0", + "RGB": "No" + }, + "scores": { + "Speed": 78, + "Reliability": 99, + "Value": 95, + "Aesthetics": 70, + "Overall": 86 + }, + "prices": { + "amazon": { + "price": "$85", + "link": "https://www.amazon.com/s?k=Crucial%20Pro%20DDR5%2032GB" + }, + "flipkart": { + "price": "₹8,500", + "link": "https://www.flipkart.com/search?q=Crucial%20Pro%20DDR5" + }, + "official": { + "price": "$95", + "link": "https://www.google.com/search?q=Crucial%20Pro%20DDR5+official+site" + } + }, + "image": "https://m.media-amazon.com/images/I/61EUuA9HiaL.jpg", + "reviews": [ + { + "user": "User97326", + "rating": 5, + "comment": "Incredible product! The stutter reduction is top tier. I've also noticed great improvements in overclocking. Highly recommend." + }, + { + "user": "User47817", + "rating": 2, + "comment": "Good enough for the price, but fell short on stutter reduction. Maybe look around before committing." + }, + { + "user": "User22062", + "rating": 5, + "comment": "Outstanding product! The RGB lighting is top tier. I've also noticed great improvements in RGB lighting. Highly recommend." + }, + { + "user": "User72638", + "rating": 5, + "comment": "Brilliant product! The overclocking is top tier. I've also noticed great improvements in overclocking. Highly recommend." + }, + { + "user": "User55045", + "rating": 4, + "comment": "Very great choice. The latency is definitely a plus. However, the stutter reduction could be a bit better. Overall very happy." + }, + { + "user": "User10121", + "rating": 3, + "comment": "Good enough for the price, but fell short on latency. Maybe look around before committing." + } + ], + "benchmarks": { + "AIDA64 Read": "80281 MB/s", + "AIDA64 Latency": "68.5 ns", + "Y-Cruncher PI": "11.0 sec" + }, + "ratingStats": { + "1": 488, + "2": 37, + "3": 112, + "4": 375, + "5": 2747, + "total": 3759, + "avg": "4.3" + } + }, + { + "id": 505, + "title": "TeamGroup T-Force Delta RGB", + "subtitle": "Striking aesthetics", + "category": "MEMORY (RAM)", + "isNew": false, + "features": { + "Capacity": "32GB (2x16GB)", + "Speed": "6400MT/s" + }, + "specifications": { + "Capacity": "32GB (2x16GB)", + "Speed": "6400 MT/s", + "CAS": "CL40", + "Voltage": "1.35V", + "Profile": "XMP 3.0", + "RGB": "Yes (120° Angle)" + }, + "scores": { + "Speed": 96, + "Reliability": 92, + "Value": 90, + "Aesthetics": 97, + "Overall": 94 + }, + "prices": { + "amazon": { + "price": "$105", + "link": "https://www.amazon.com/s?k=TeamGroup%20T-Force%20Delta%20RGB%2032GB" + }, + "flipkart": { + "price": "₹10,500", + "link": "https://www.flipkart.com/search?q=TeamGroup%20T-Force%20Delta" + }, + "official": { + "price": "$110", + "link": "https://www.google.com/search?q=TeamGroup%20T-Force%20Delta+official+site" + } + }, + "image": "https://m.media-amazon.com/images/I/71yyY+Y29WL.jpg", + "reviews": [ + { + "user": "User99531", + "rating": 5, + "comment": "Excellent product! The overclocking is top tier. I've also noticed great improvements in EXPO profiles. Highly recommend." + }, + { + "user": "User71358", + "rating": 5, + "comment": "Outstanding product! The latency is top tier. I've also noticed great improvements in EXPO profiles. Highly recommend." + }, + { + "user": "User63184", + "rating": 5, + "comment": "Solid product! The RGB lighting is top tier. I've also noticed great improvements in EXPO profiles. Highly recommend." + }, + { + "user": "User27713", + "rating": 5, + "comment": "Outstanding product! The EXPO profiles is top tier. I've also noticed great improvements in stutter reduction. Highly recommend." + }, + { + "user": "User14004", + "rating": 4, + "comment": "Very solid choice. The overclocking is definitely a plus. However, the latency could be a bit better. Overall very happy." + } + ], + "benchmarks": { + "AIDA64 Read": "91835 MB/s", + "AIDA64 Latency": "65.1 ns", + "Y-Cruncher PI": "13.8 sec" + }, + "ratingStats": { + "1": 187, + "2": 30, + "3": 90, + "4": 302, + "5": 2417, + "total": 3026, + "avg": "4.6" + } + }, + { + "id": 506, + "title": "Corsair Vengeance LPX DDR4", + "subtitle": "Classic DDR4 low profile", + "category": "MEMORY (RAM)", + "isNew": false, + "features": { + "Capacity": "16GB (2x8GB)", + "Speed": "3200MT/s" + }, + "specifications": { + "Capacity": "16GB (2x8GB)", + "Speed": "3200 MT/s", + "CAS": "CL16", + "Voltage": "1.35V", + "Profile": "XMP 2.0", + "RGB": "No" + }, + "scores": { + "Speed": 70, + "Reliability": 98, + "Value": 99, + "Aesthetics": 75, + "Overall": 86 + }, + "prices": { + "amazon": { + "price": "$40", + "link": "https://www.amazon.com/s?k=Corsair%20Vengeance%20LPX%20DDR4%2016GB" + }, + "flipkart": { + "price": "₹3,500", + "link": "https://www.flipkart.com/search?q=Corsair%20Vengeance%20LPX%20DDR4" + }, + "official": { + "price": "$45", + "link": "https://www.google.com/search?q=Corsair%20Vengeance%20LPX+official+site" + } + }, + "image": "https://m.media-amazon.com/images/I/71jGZ9WpjTL.jpg", + "reviews": [ + { + "user": "User14187", + "rating": 5, + "comment": "Solid product! The EXPO profiles is top tier. I've also noticed great improvements in overclocking. Highly recommend." + }, + { + "user": "User39766", + "rating": 5, + "comment": "Excellent product! The EXPO profiles is top tier. I've also noticed great improvements in RGB lighting. Highly recommend." + }, + { + "user": "User48327", + "rating": 5, + "comment": "Incredible product! The EXPO profiles is top tier. I've also noticed great improvements in stutter reduction. Highly recommend." + }, + { + "user": "User29244", + "rating": 5, + "comment": "Incredible product! The stutter reduction is top tier. I've also noticed great improvements in RGB lighting. Highly recommend." + } + ], + "benchmarks": { + "AIDA64 Read": "82706 MB/s", + "AIDA64 Latency": "67.0 ns", + "Y-Cruncher PI": "11.7 sec" + }, + "ratingStats": { + "1": 1154, + "2": 89, + "3": 268, + "4": 893, + "5": 6531, + "total": 8935, + "avg": "4.3" + } + }, + { + "id": 507, + "title": "G.Skill Ripjaws V DDR4", + "subtitle": "Best value DDR4", + "category": "MEMORY (RAM)", + "isNew": false, + "features": { + "Capacity": "32GB (2x16GB)", + "Speed": "3600MT/s" + }, + "specifications": { + "Capacity": "32GB (2x16GB)", + "Speed": "3600 MT/s", + "CAS": "CL18", + "Voltage": "1.35V", + "Profile": "XMP 2.0", + "RGB": "No" + }, + "scores": { + "Speed": 75, + "Reliability": 96, + "Value": 100, + "Aesthetics": 80, + "Overall": 88 + }, + "prices": { + "amazon": { + "price": "$65", + "link": "https://www.amazon.com/s?k=G.Skill%20Ripjaws%20V%2032GB" + }, + "flipkart": { + "price": "₹6,000", + "link": "https://www.flipkart.com/search?q=G.Skill%20Ripjaws%20V" + }, + "official": { + "price": "$70", + "link": "https://www.google.com/search?q=G.Skill%20Ripjaws%20V+official+site" + } + }, + "image": "https://m.media-amazon.com/images/I/618SEnJR1nL.jpg", + "reviews": [ + { + "user": "User53015", + "rating": 2, + "comment": "Average for the price, but fell short on latency. Maybe look around before committing." + }, + { + "user": "User67181", + "rating": 5, + "comment": "Solid product! The EXPO profiles is top tier. I've also noticed great improvements in stutter reduction. Highly recommend." + }, + { + "user": "User17014", + "rating": 2, + "comment": "Average for the price, but fell short on stutter reduction. Maybe look around before committing." + }, + { + "user": "User86497", + "rating": 4, + "comment": "Very brilliant choice. The RGB lighting is definitely a plus. However, the overclocking could be a bit better. Overall very happy." + } + ], + "benchmarks": { + "AIDA64 Read": "95409 MB/s", + "AIDA64 Latency": "64.7 ns", + "Y-Cruncher PI": "12.2 sec" + }, + "ratingStats": { + "1": 635, + "2": 56, + "3": 169, + "4": 565, + "5": 4228, + "total": 5653, + "avg": "4.4" + } + } +]; + +export const getQuestionsForCategory = (category) => { + switch(category) { + case 'SSD': + return [ + { label: "1. Ultra-fast Gen5 Speeds (Future proof)", recommendation: "Crucial T700" }, + { label: "2. Best mix of Gen4 speed & price", recommendation: "Samsung 990 Pro" }, + { label: "3. Maximum terabytes for the budget", recommendation: "Crucial MX500" } + ]; + case 'GRAPHICS CARDS': + return [ + { label: "1. Flawless 4K & Raytracing at max settings", recommendation: "NVIDIA RTX 4090" }, + { label: "2. Great 1440p gaming & good value", recommendation: "AMD Radeon RX 7800 XT" }, + { label: "3. Budget 1080p e-sports", recommendation: "AMD Radeon RX 7600" } + ]; + case 'CPUs': + return [ + { label: "1. 100% focused on maximizing gaming FPS", recommendation: "AMD Ryzen 7 7800X3D" }, + { label: "2. Heavy video editing and mixed rendering", recommendation: "Intel Core i9-14900K" }, + { label: "3. Good everyday value out of the box", recommendation: "Intel Core i5-13600K" } + ]; + case 'TOOLS': + return [ + { label: "1. I want to benchmark/test my hardware limits", recommendation: "CrystalDiskMark or Cinebench R24" }, + { label: "2. I need to figure out where my disk space went", recommendation: "WizTree" }, + { label: "3. I'm comparing the latest ecosystem AI features", recommendation: "Apple Intelligence vs Galaxy AI" } + ]; + case 'MEMORY (RAM)': + return [ + { label: "1. Flashy RGB DDR5 for new systems", recommendation: "G.Skill Trident Z5 RGB NEO" }, + { label: "2. Standard DDR5 without the lights", recommendation: "Crucial Pro DDR5" }, + { label: "3. Older system needing DDR4 upgrade", recommendation: "Corsair Vengeance LPX DDR4" } + ]; + default: + return [ + { label: "1. I want the absolute best hardware", recommendation: "NVIDIA RTX 4090" }, + { label: "2. I care mostly about storage", recommendation: "Samsung 990 Pro" }, + { label: "3. I just need to build a cheap PC", recommendation: "AMD Radeon RX 7600" } + ]; + } +}; + +export const generateAISummary = (product) => { + const totRev = product.ratingStats ? product.ratingStats.total : product.reviews.length; + const avgRating = product.ratingStats ? product.ratingStats.avg : (product.reviews.reduce((acc, curr) => acc + curr.rating, 0) / totRev).toFixed(1); + return `The ${product.title} is a highly regarded option in the ${product.category} space. Based on an AI analysis of over ${totRev.toLocaleString()} user reviews, it holds an average rating of ${avgRating} out of 5 stars. Users consistently praise its ${Object.keys(product.scores)[0]} score of ${product.scores[Object.keys(product.scores)[0]]}/100 and excellent performance. While a few reviewers noted minor concerns with ${Object.keys(product.scores)[2]}, the overall consensus is overwhelmingly positive, earning an impressive CompareXscore of ${product.scores.Overall}/100. It is a highly recommended choice for typical use cases.`; +}; diff --git a/teams/double-door-refrigerator/src/index.css b/teams/double-door-refrigerator/src/index.css new file mode 100644 index 0000000..583be02 --- /dev/null +++ b/teams/double-door-refrigerator/src/index.css @@ -0,0 +1,1066 @@ +@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=Inter:wght@400;500;600;700;800;900&display=swap'); + +:root { + --bg-deep: #060b18; + --bg-dark: #0F172A; + --bg-card: rgba(255, 255, 255, 0.04); + --bg-card-hover: rgba(255, 255, 255, 0.08); + --bg-glass: rgba(255, 255, 255, 0.06); + --bg-glass-strong: rgba(255, 255, 255, 0.10); + --border-glass: rgba(255, 255, 255, 0.08); + --border-glass-hover: rgba(0, 240, 255, 0.25); + + --text-main: #e2e8f0; + --text-light: #ffffff; + --text-muted: #94A3B8; + --text-dim: #64748b; + + --primary: #00F0FF; + --primary-glow: rgba(0, 240, 255, 0.15); + --primary-dark: #00c4d4; + --secondary: #94A3B8; + --tertiary: #087DD1; + --accent-pink: #ec4899; + + --footer-bg: #050a15; + + --glass-blur: blur(16px); + --glass-blur-strong: blur(24px); + + --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.3); + --shadow: 0 4px 12px rgba(0, 0, 0, 0.4); + --shadow-md: 0 8px 24px rgba(0, 0, 0, 0.4); + --shadow-lg: 0 16px 48px rgba(0, 0, 0, 0.5); + --shadow-glow: 0 0 30px rgba(0, 240, 255, 0.08); + --shadow-glow-strong: 0 0 40px rgba(0, 240, 255, 0.15); +} + +html.light { + --bg-deep: #e2e8f0; + --bg-dark: #f8fafc; + --bg-card: rgba(255, 255, 255, 0.6); + --bg-card-hover: rgba(255, 255, 255, 0.9); + --bg-glass: rgba(255, 255, 255, 0.4); + --bg-glass-strong: rgba(255, 255, 255, 0.85); + --border-glass: rgba(0, 0, 0, 0.08); + --border-glass-hover: rgba(8, 125, 209, 0.4); + + --text-main: #1e293b; + --text-light: #0f172a; + --text-muted: #475569; + --text-dim: #64748b; + + --primary: #087DD1; + --primary-glow: rgba(8, 125, 209, 0.15); + --primary-dark: #025591; + --secondary: #64748b; + --tertiary: #0088ff; + --accent-pink: #d946ef; + + --footer-bg: #e2e8f0; + + --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.05); + --shadow: 0 4px 12px rgba(0, 0, 0, 0.06); + --shadow-md: 0 8px 24px rgba(0, 0, 0, 0.08); + --shadow-lg: 0 16px 48px rgba(0, 0, 0, 0.12); + --shadow-glow: 0 0 30px rgba(8, 125, 209, 0.1); + --shadow-glow-strong: 0 0 40px rgba(8, 125, 209, 0.2); +} + +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +html { + scroll-behavior: smooth; +} + +body { + font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + background-color: var(--bg-dark); + color: var(--text-main); + line-height: 1.6; + transition: background-color 0.4s ease, color 0.4s ease; +} + +/* Base Theme Transitions */ +.header, .footer, .product-card, .compare-col, .dropdown-menu, .mission-section, .quiz-modal { + transition: background-color 0.4s ease, border-color 0.4s ease, box-shadow 0.4s ease, transform 0.4s cubic-bezier(0.4, 0, 0.2, 1); +} + +a { + text-decoration: none; + color: inherit; +} + +button { + cursor: pointer; + border: none; + font-family: inherit; +} + +input { + font-family: inherit; +} + +/* ─── Base Layout ─── */ +.app-container { + display: flex; + flex-direction: column; + min-height: 100vh; + position: relative; + overflow-x: hidden; +} + +.main-content { + flex: 1; +} + +/* ─── Typography ─── */ +.heading-xxl { + font-family: 'Space Grotesk', sans-serif; + font-size: 5rem; + font-weight: 700; + letter-spacing: -0.04em; + line-height: 1.05; + color: var(--text-light); +} + +.heading-xl { + font-family: 'Space Grotesk', sans-serif; + font-size: 3.5rem; + font-weight: 700; + letter-spacing: -0.025em; + line-height: 1.15; + color: var(--text-light); +} + +.heading-lg { + font-family: 'Space Grotesk', sans-serif; + font-size: 2.25rem; + font-weight: 600; + line-height: 1.2; + color: var(--text-light); +} + +.heading-md { + font-family: 'Space Grotesk', sans-serif; + font-size: 1.5rem; + font-weight: 600; + line-height: 1.4; + color: var(--text-light); +} + +.heading-sm { + font-family: 'Space Grotesk', sans-serif; + font-size: 1.125rem; + font-weight: 600; + color: var(--text-light); +} + +.text-lg { font-size: 1.125rem; } +.text-base { font-size: 1rem; } +.text-sm { font-size: 0.875rem; } + +/* ─── Buttons ─── */ +.btn { + display: inline-flex; + align-items: center; + justify-content: center; + padding: 0.75rem 1.5rem; + border-radius: 9999px; + font-weight: 600; + font-size: 0.9rem; + letter-spacing: 0.02em; + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); + position: relative; + overflow: hidden; +} + +.btn-primary { + background: linear-gradient(135deg, var(--primary) 0%, var(--tertiary) 100%); + color: #0F172A; + box-shadow: 0 4px 20px rgba(0, 240, 255, 0.25); +} + +.btn-primary:hover { + transform: translateY(-2px); + box-shadow: 0 8px 30px rgba(0, 240, 255, 0.4); + filter: brightness(1.1); +} + +.btn-primary:disabled { + opacity: 0.4; + cursor: not-allowed; + transform: none; + box-shadow: none; +} + +.btn-dark { + background: var(--bg-glass-strong); + color: var(--text-light); + border: 1px solid var(--border-glass); + backdrop-filter: var(--glass-blur); +} + +.btn-dark:hover { + background: var(--bg-glass-strong); + border-color: var(--primary); + transform: translateY(-2px); + box-shadow: var(--shadow-glow); + color: var(--primary); +} + +/* ─── Header ─── */ +.header { + position: fixed; + top: 0; + left: 0; + right: 0; + padding: 1rem 2rem; + display: flex; + justify-content: space-between; + align-items: center; + z-index: 1000; + color: var(--text-light); + background: var(--bg-glass-strong); + backdrop-filter: var(--glass-blur-strong); + -webkit-backdrop-filter: var(--glass-blur-strong); + border-bottom: 1px solid var(--border-glass); + transition: all 0.3s ease; +} + +.header-logo { + font-family: 'Space Grotesk', sans-serif; + font-size: 1.5rem; + font-weight: 700; + letter-spacing: -1px; + background: linear-gradient(135deg, var(--primary), var(--tertiary)); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; +} + +.header-nav { + display: flex; + gap: 2rem; + align-items: center; +} + +.nav-link { + font-size: 0.8rem; + font-weight: 500; + text-transform: uppercase; + letter-spacing: 1.5px; + transition: all 0.3s ease; + position: relative; + color: var(--text-muted); +} + +.nav-link:hover { + color: var(--primary); +} + +.nav-link::after { + content: ''; + position: absolute; + bottom: -4px; + left: 0; + width: 0; + height: 2px; + background: var(--primary); + transition: width 0.3s ease; + border-radius: 1px; +} + +.nav-link:hover::after { + width: 100%; +} + +.header-actions { + display: flex; + align-items: center; + gap: 1.5rem; + color: var(--text-muted); +} + +.header-actions > div { + transition: color 0.3s ease; +} + +.header-actions > div:hover { + color: var(--primary); +} + +/* ─── Dropdown ─── */ +.dropdown-container { + display: inline-block; +} + +.dropdown-menu { + position: absolute; + top: 100%; + left: 50%; + transform: translateX(-50%); + background: var(--bg-glass-strong); + backdrop-filter: var(--glass-blur-strong); + -webkit-backdrop-filter: var(--glass-blur-strong); + color: var(--text-main); + box-shadow: var(--shadow-lg); + border-radius: 12px; + border: 1px solid var(--border-glass); + padding: 0.5rem 0; + min-width: 200px; + z-index: 100; + margin-top: 0; + padding-top: 10px; +} + +.dropdown-menu::before { + content: ''; + position: absolute; + top: -5px; + left: 50%; + transform: translateX(-50%); + border-width: 0 5px 5px 5px; + border-style: solid; + border-color: transparent transparent var(--bg-glass-strong) transparent; +} + +.dropdown-item { + display: block; + padding: 0.75rem 1.5rem; + font-size: 0.85rem; + font-weight: 500; + color: var(--text-muted); + transition: all 0.2s ease; + cursor: pointer; +} + +.dropdown-item:hover { + background: var(--primary-glow); + color: var(--primary); +} + +/* ─── Hero Section ─── */ +.hero { + position: relative; + background: linear-gradient(155deg, var(--bg-deep) 0%, var(--bg-dark) 100%); + color: var(--text-light); + padding: 14rem 2rem 8rem; + text-align: center; + overflow: hidden; +} + +.hero::before { + content: ''; + position: absolute; + top: -50%; + left: -30%; + width: 80%; + height: 80%; + background: radial-gradient(ellipse, rgba(0, 240, 255, 0.06) 0%, transparent 70%); + animation: heroGlow1 8s ease-in-out infinite; + pointer-events: none; +} + +.hero::after { + content: ''; + position: absolute; + bottom: -30%; + right: -20%; + width: 60%; + height: 60%; + background: radial-gradient(ellipse, rgba(8, 125, 209, 0.06) 0%, transparent 70%); + animation: heroGlow2 10s ease-in-out infinite; + pointer-events: none; +} + +@keyframes heroGlow1 { + 0%, 100% { transform: translate(0, 0) scale(1); opacity: 0.6; } + 50% { transform: translate(5%, 10%) scale(1.15); opacity: 1; } +} + +@keyframes heroGlow2 { + 0%, 100% { transform: translate(0, 0) scale(1); opacity: 0.5; } + 50% { transform: translate(-8%, -5%) scale(1.2); opacity: 0.9; } +} + +.hero-content { + position: relative; + z-index: 2; + max-width: 800px; + margin: 0 auto; +} + +.hero-subtitle { + font-size: 1.25rem; + color: var(--text-muted); + margin-top: 1rem; + margin-bottom: 3rem; +} + +/* ─── Search ─── */ +.search-container { + display: flex; + align-items: center; + background: var(--bg-glass); + backdrop-filter: var(--glass-blur); + -webkit-backdrop-filter: var(--glass-blur); + border: 1px solid var(--border-glass); + border-radius: 9999px; + max-width: 600px; + margin: 0 auto; + padding: 0.25rem; + padding-left: 1.5rem; + box-shadow: var(--shadow-glow); + transition: all 0.3s ease; +} + +.search-container:focus-within { + border-color: var(--primary); + box-shadow: 0 0 30px rgba(0, 240, 255, 0.2); +} + +.search-input { + flex: 1; + border: none; + outline: none; + font-size: 1rem; + color: var(--text-light); + background: transparent; +} + +.search-input::placeholder { + color: var(--text-dim); +} + +/* ─── Wave Divider ─── */ +.wave-divider { + position: absolute; + bottom: -1px; + left: 0; + width: 100%; + overflow: hidden; + line-height: 0; + transform: rotate(180deg); +} + +.wave-divider svg { + position: relative; + display: block; + width: calc(100% + 1.3px); + height: 80px; +} + +.wave-divider .shape-fill { + fill: var(--bg-dark); +} + +/* ─── Product Grid ─── */ +.products-section { + padding: 4rem 2rem; + max-width: 1200px; + margin: 0 auto; +} + +.product-grid { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); + gap: 1.5rem; +} + +/* ─── Product Card — Liquid Glass ─── */ +.product-card { + background: var(--bg-glass); + backdrop-filter: var(--glass-blur); + -webkit-backdrop-filter: var(--glass-blur); + border: 1px solid var(--border-glass); + border-radius: 16px; + overflow: hidden; + transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); + position: relative; + display: flex; + flex-direction: column; +} + +.product-card::before { + content: ''; + position: absolute; + inset: 0; + border-radius: 16px; + background: linear-gradient(135deg, rgba(0, 240, 255, 0.03), transparent 50%); + pointer-events: none; + z-index: 0; +} + +.product-card:hover { + transform: translateY(-6px); + border-color: var(--border-glass-hover); + box-shadow: var(--shadow-glow-strong), var(--shadow-lg); + background: var(--bg-card-hover); +} + +.product-image-container { + position: relative; + width: 100%; + padding-top: 66%; + background: rgba(0, 0, 0, 0.3); + overflow: hidden; +} + +.product-image { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + object-fit: cover; + transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1); +} + +.product-card:hover .product-image { + transform: scale(1.08); +} + +.image-placeholder { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + display: flex; + align-items: center; + justify-content: center; + background: linear-gradient(135deg, rgba(0, 240, 255, 0.05), rgba(8, 125, 209, 0.05)); + color: var(--text-dim); + font-weight: 500; + font-size: 0.875rem; + border-bottom: 1px solid var(--border-glass); +} + +.product-info { + padding: 1.5rem; + position: relative; + z-index: 1; +} + +.product-title { + font-family: 'Space Grotesk', sans-serif; + font-size: 1.125rem; + font-weight: 600; + margin-bottom: 0.5rem; + line-height: 1.3; + color: var(--text-light); +} + +.product-subtitle { + font-size: 0.875rem; + color: var(--text-muted); +} + +.badge-new { + font-weight: 700; + font-size: 0.7rem; + text-transform: uppercase; + letter-spacing: 1px; + color: var(--primary); +} + +/* ─── Mission / Summary Section ─── */ +.mission-section { + padding: 6rem 2rem; + background: linear-gradient(180deg, var(--bg-dark) 0%, var(--primary-glow) 50%, var(--bg-dark) 100%); + text-align: center; + position: relative; +} + +.mission-content { + max-width: 800px; + margin: 0 auto; +} + +.mission-content p { + color: var(--text-muted); + margin-top: 1.5rem; + font-size: 1.125rem; + line-height: 1.7; +} + +.mission-actions { + margin-top: 3rem; + display: flex; + justify-content: center; + align-items: center; + gap: 1.5rem; +} + +.link-action { + font-weight: 600; + color: var(--primary); + display: inline-flex; + align-items: center; + gap: 0.5rem; + transition: all 0.3s ease; +} + +.link-action:hover { + color: var(--text-light); + text-shadow: 0 0 10px var(--primary-glow); +} + +/* ─── Footer ─── */ +.footer { + background: var(--footer-bg); + color: var(--text-main); + padding: 4rem 2rem; + border-top: 1px solid var(--border-glass); +} + +.footer-content { + max-width: 1200px; + margin: 0 auto; + display: grid; + grid-template-columns: repeat(4, 1fr) 2fr; + gap: 2rem; +} + +.footer-column h4 { + font-family: 'Space Grotesk', sans-serif; + font-size: 0.75rem; + text-transform: uppercase; + letter-spacing: 2px; + color: var(--primary); + margin-bottom: 1.5rem; +} + +.footer-links { + display: flex; + flex-direction: column; + gap: 1rem; +} + +.footer-link { + color: var(--text-dim); + font-size: 0.875rem; + transition: color 0.2s; +} + +.footer-link:hover { + color: var(--primary); +} + +.footer-brand { + text-align: right; +} + +.footer-logo { + font-family: 'Space Grotesk', sans-serif; + font-size: 2rem; + font-weight: 700; + letter-spacing: -1px; + margin-bottom: 0.5rem; + background: linear-gradient(135deg, var(--primary), var(--tertiary)); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; +} + +.social-icons { + display: flex; + justify-content: flex-end; + gap: 1rem; + margin-top: 1.5rem; +} + +.social-icon { + width: 36px; + height: 36px; + border-radius: 50%; + background: var(--bg-glass); + border: 1px solid var(--border-glass); + display: flex; + align-items: center; + justify-content: center; + color: var(--text-muted); + transition: all 0.3s ease; +} + +.social-icon:hover { + color: var(--primary); + border-color: var(--primary); + box-shadow: var(--shadow-glow); +} + +/* ─── Compare Bar (Floating) ─── */ +.compare-bar-fixed { + position: fixed; + bottom: 0; + left: 0; + width: 100%; + background: var(--bg-glass-strong); + backdrop-filter: var(--glass-blur-strong); + -webkit-backdrop-filter: var(--glass-blur-strong); + padding: 1rem 2rem; + display: flex; + justify-content: center; + align-items: center; + gap: 1.5rem; + z-index: 50; + border-top: 1px solid var(--border-glass); + box-shadow: 0 -8px 30px rgba(0, 0, 0, 0.3); + color: var(--text-light); +} + +.compare-item-chip { + padding: 0.5rem 1rem; + border-radius: 9999px; + background: var(--bg-glass); + border: 1px solid var(--border-glass); + display: inline-flex; + align-items: center; + gap: 0.5rem; + font-size: 0.85rem; + color: var(--text-main); + transition: all 0.2s ease; +} + +.compare-item-chip:hover { + border-color: var(--primary); +} + +.compare-item-chip button { + background: none; + color: var(--text-muted); + opacity: 0.6; +} + +.compare-item-chip button:hover { + opacity: 1; + color: var(--primary); +} + +/* ─── Compare Page Grid ─── */ +.compare-container { + max-width: 1200px; + margin: 2rem auto; + padding: 0 2rem; +} + +.compare-grid { + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 2rem; +} + +.compare-col { + background: var(--bg-glass); + backdrop-filter: var(--glass-blur); + -webkit-backdrop-filter: var(--glass-blur); + border: 1px solid var(--border-glass); + border-radius: 16px; + padding: 2rem; + text-align: center; + transition: all 0.3s ease; +} + +.compare-col:hover { + border-color: var(--border-glass-hover); + box-shadow: var(--shadow-glow); +} + +.compare-img { + width: 100%; + max-width: 200px; + margin: 0 auto 1.5rem; + aspect-ratio: 1; + object-fit: cover; + border-radius: 12px; +} + +.feature-list { + text-align: left; + margin-top: 2rem; +} + +.feature-list dt { + font-weight: 600; + margin-top: 1rem; + color: var(--text-light); + font-size: 0.9rem; +} + +.feature-list dd { + color: var(--text-muted); + font-size: 0.95rem; +} + +/* ─── AI Summary ─── */ +.ai-summary { + background: var(--bg-glass); + backdrop-filter: var(--glass-blur); + -webkit-backdrop-filter: var(--glass-blur); + border: 1px solid rgba(0, 240, 255, 0.15); + border-radius: 16px; + padding: 2rem; + margin-top: 1.5rem; + text-align: left; + position: relative; + overflow: hidden; +} + +.ai-summary::before { + content: ''; + position: absolute; + top: 0; + left: 0; + right: 0; + height: 2px; + background: linear-gradient(90deg, var(--primary), var(--tertiary), var(--primary)); + background-size: 200% 100%; + animation: shimmer 3s linear infinite; +} + +@keyframes shimmer { + 0% { background-position: -200% 0; } + 100% { background-position: 200% 0; } +} + +.ai-summary-header { + display: flex; + align-items: center; + gap: 0.5rem; + font-family: 'Space Grotesk', sans-serif; + font-weight: 700; + color: var(--primary); + margin-bottom: 0.75rem; + font-size: 1.1rem; +} + +.ai-summary p { + font-size: 0.95rem; + line-height: 1.7; + color: var(--text-muted); +} + +/* ─── Reviews Section ─── */ +.reviews-section { + margin-top: 2rem; + text-align: left; +} + +.review-card { + background: var(--bg-glass); + backdrop-filter: var(--glass-blur); + -webkit-backdrop-filter: var(--glass-blur); + border: 1px solid var(--border-glass); + padding: 1.5rem; + border-radius: 12px; + margin-bottom: 1rem; + transition: all 0.3s ease; +} + +.review-card:hover { + border-color: var(--border-glass-hover); + box-shadow: var(--shadow-glow); +} + +.review-header { + display: flex; + justify-content: space-between; + margin-bottom: 0.5rem; +} + +/* ─── Card Actions ─── */ +.card-actions { + display: flex; + justify-content: space-between; + padding: 1rem 1.5rem; + border-top: 1px solid var(--border-glass); + background: rgba(0, 0, 0, 0.15); + position: relative; + z-index: 1; +} + +.btn-icon { + background: none; + color: var(--text-dim); + transition: all 0.3s ease; +} + +.btn-icon:hover { + color: var(--primary); + filter: drop-shadow(0 0 6px rgba(0, 240, 255, 0.3)); +} + +.btn-icon.active { + color: var(--primary); + filter: drop-shadow(0 0 8px rgba(0, 240, 255, 0.4)); +} + +/* ─── Auth / Modal ─── */ +.auth-box { + max-width: 400px; + margin: 4rem auto; + background: var(--bg-glass-strong); + backdrop-filter: var(--glass-blur-strong); + -webkit-backdrop-filter: var(--glass-blur-strong); + border: 1px solid var(--border-glass); + padding: 2rem; + border-radius: 16px; + box-shadow: var(--shadow-lg); +} + +.form-group { + margin-bottom: 1rem; +} + +.form-input { + width: 100%; + padding: 0.75rem 1rem; + border: 1px solid var(--border-glass); + border-radius: 10px; + outline: none; + background: rgba(0, 0, 0, 0.3); + color: var(--text-light); + font-size: 0.95rem; + transition: all 0.3s ease; +} + +.form-input::placeholder { + color: var(--text-dim); +} + +.form-input:focus { + border-color: var(--primary); + box-shadow: 0 0 0 3px rgba(0, 240, 255, 0.1); +} + +.page-title { + padding: 2rem 2rem 0; + max-width: 1200px; + margin: 0 auto; +} + +/* ─── Quiz / Overlay Modal ─── */ +.quiz-overlay { + position: fixed; + inset: 0; + background: rgba(6, 11, 24, 0.7); + backdrop-filter: blur(8px); + -webkit-backdrop-filter: blur(8px); + display: flex; + justify-content: center; + align-items: center; + z-index: 100; +} + +.quiz-modal { + background: rgba(15, 23, 42, 0.95); + backdrop-filter: var(--glass-blur-strong); + -webkit-backdrop-filter: var(--glass-blur-strong); + border: 1px solid var(--border-glass); + padding: 2rem; + border-radius: 20px; + max-width: 500px; + width: 100%; + box-shadow: var(--shadow-lg), var(--shadow-glow); +} + +.quiz-options { + display: grid; + grid-template-columns: 1fr; + gap: 1rem; + margin-top: 1.5rem; +} + +.quiz-btn { + padding: 1rem; + border: 1px solid var(--border-glass); + border-radius: 12px; + text-align: left; + background: var(--bg-glass); + font-weight: 500; + color: var(--text-main); + transition: all 0.3s ease; +} + +.quiz-btn:hover { + border-color: var(--primary); + background: var(--primary-glow); + color: var(--primary); +} + +/* ─── Compare Nav ─── */ +.compare-nav { + display: flex; + justify-content: space-between; + align-items: center; + padding: 1rem 0; + border-bottom: 1px solid var(--border-glass); + margin-bottom: 2rem; +} + +/* ─── Responsive ─── */ +@media (max-width: 768px) { + .hero { + padding: 12rem 1rem 6rem; + } + .heading-xxl { + font-size: 3rem; + } + .heading-xl { + font-size: 2.5rem; + } + .header-nav { + display: none; + } + .footer-content { + grid-template-columns: 1fr 1fr; + } + .compare-grid { + grid-template-columns: 1fr; + } + .product-grid { + grid-template-columns: 1fr; + } +} + +/* ─── Utility Animations ─── */ +@keyframes fadeInUp { + from { + opacity: 0; + transform: translateY(20px); + } + to { + opacity: 1; + transform: translateY(0); + } +} + +@keyframes pulse-glow { + 0%, 100% { box-shadow: 0 0 20px rgba(0, 240, 255, 0.1); } + 50% { box-shadow: 0 0 40px rgba(0, 240, 255, 0.25); } +} + +/* ─── Scrollbar ─── */ +::-webkit-scrollbar { + width: 8px; +} + +::-webkit-scrollbar-track { + background: var(--bg-deep); +} + +::-webkit-scrollbar-thumb { + background: rgba(0, 240, 255, 0.15); + border-radius: 4px; +} + +::-webkit-scrollbar-thumb:hover { + background: rgba(0, 240, 255, 0.3); +} diff --git a/teams/double-door-refrigerator/src/index.js b/teams/double-door-refrigerator/src/index.js new file mode 100644 index 0000000..d563c0f --- /dev/null +++ b/teams/double-door-refrigerator/src/index.js @@ -0,0 +1,17 @@ +import React from 'react'; +import ReactDOM from 'react-dom/client'; +import './index.css'; +import App from './App'; +import reportWebVitals from './reportWebVitals'; + +const root = ReactDOM.createRoot(document.getElementById('root')); +root.render( + + + +); + +// If you want to start measuring performance in your app, pass a function +// to log results (for example: reportWebVitals(console.log)) +// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals +reportWebVitals(); diff --git a/teams/double-door-refrigerator/src/logo.svg b/teams/double-door-refrigerator/src/logo.svg new file mode 100644 index 0000000..9dfc1c0 --- /dev/null +++ b/teams/double-door-refrigerator/src/logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/teams/double-door-refrigerator/src/reportWebVitals.js b/teams/double-door-refrigerator/src/reportWebVitals.js new file mode 100644 index 0000000..5253d3a --- /dev/null +++ b/teams/double-door-refrigerator/src/reportWebVitals.js @@ -0,0 +1,13 @@ +const reportWebVitals = onPerfEntry => { + if (onPerfEntry && onPerfEntry instanceof Function) { + import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { + getCLS(onPerfEntry); + getFID(onPerfEntry); + getFCP(onPerfEntry); + getLCP(onPerfEntry); + getTTFB(onPerfEntry); + }); + } +}; + +export default reportWebVitals; diff --git a/teams/double-door-refrigerator/src/setupTests.js b/teams/double-door-refrigerator/src/setupTests.js new file mode 100644 index 0000000..8f2609b --- /dev/null +++ b/teams/double-door-refrigerator/src/setupTests.js @@ -0,0 +1,5 @@ +// jest-dom adds custom jest matchers for asserting on DOM nodes. +// allows you to do things like: +// expect(element).toHaveTextContent(/react/i) +// learn more: https://github.com/testing-library/jest-dom +import '@testing-library/jest-dom';